ryer.io

AI Catalog Item Effective Version MR Progress and Career Reflections

TL;DR

  • MR241835 adds an effective version field to the AI catalog item model/GraphQL resolver and has passed maintainer backend and database review
  • Learned about batch loading, GitLab’s batch loading lazy loaders, and result/force promises in GraphQL
  • Discovered Postgres.ai, a tool for generating query plans to explain Postgres performance
  • This backend work resolves a long-standing front-end challenge with version management and version display
  • Reflecting on goals to own the full stack, go deep vertically then broaden horizontally, aiming to become a senior developer and eventually a staff engineer

Backend Work on MR241835

I’ve been working on back-end changes, and MR241835 adds an effective version field to the AI catalog item model or GraphQL resolver—it’s a type. I’m proud that it has passed maintainer back-end review as well as a maintainer level database review. Along the way, I learned a lot about batch loading and how GraphQL works, specifically with the GraphQL gem and GitLab’s batch loading lazy loaders, plus result promises and force promises and how to use them. I also came across a tool called Postgres.ai that helps generate a query plan to explain Postgres performance. I’ve worked with Postgres before but hadn’t really explained a query or tried to understand its performance constraints, so this was helpful.

Full-Stack Impact and Career Goals

I’m proud of myself and hope this gets merged, because it’s a significant piece of back-end work that also resolves a front-end challenge we’ve had for months with version management and version display. I’ve had continuity with version management, implementing the front-end while also helping with fairly major optimizations on the back-end—major within a project vertical around how we display and choose which version to show on both front-end and back-end. Having my hand on both sides is strong support for my case as a full-stack developer. I want to really understand the GitLab system, own that full stack, then broaden horizontally across verticals once I have a good vertical understanding, so I can integrate things and own bigger projects. My goal is to see deeply enough into an implementation that I can identify specialists to help deliver things, setting me up to become a senior developer, and eventually aiming for staff engineer so I can stay in the technical realm rather than moving into management.