Graduate Max Woolf to backend maintainer from trainee
Hey GitLab backend maintainers
For those who haven't met me yet, I'm Max Woolf, a Senior Backend Engineer in the Manage::Compliance group. I have been a professional software engineer since 2012 and have worked at GitLab since April 2020.
I have been a trainee backend maintainer since 2020-06-30 (~10 months) but I have reviewed MRs since my first week of employment. I have been a user and an administrator of GitLab since 2018.
Since starting at GitLab, becoming a backend maintainer has been a target of mine. I really enjoy reviewing code, teaching and mentoring others and have a keen eye for detail. I see it as a step towards my goal of becoming a staff engineer at GitLab in the future.
Maintainers: Please either approve this MR, or provide feedback on things you feel I should address before you'd feel comfortable approving.
High level review stats
- Reviews completed: ~110
- Percentage merged with no further comments from maintainers (most of these were non-blocking comments): 56%
Maintainer level review examples
My trainee issue is full of links to reviews I have completed and I have added discussion to most of the interesting ones.
Some of the more interesting reviews are included here:
- Exporting Audit Events as CSV
- MR <> Jira association attributes to MR widget serializer
- Add support for Compliance Pipeline configuration location
- Add dismissedBy field to vulnerability object in GraphQL
- Update Audit Events navigation and visibility - This led to a huge increase in feature usage.
- Add admin users vue app wrapper - Maintainer praised focus on spec improvements.
- Add admin users serializer and entity
- Cleanup some unused issuable helper methods - Maintainer added praise saying that they would've missed the issue themselves
- Fix date range filters on audit event export - Suggested a fix that the maintainer was unaware of
Feature development examples
- I have authored around 90 merge requests that have been merged.
Some of the larger features I have been the primary engineer on are below
(Obviously all of these were a team effort, but these are ones that I had a significant hand in building.)
-
Custom Compliance Frameworks
- Group owners can now define their own compliance framework labels that are available to all projects in that group and all subgroups. This is tied nicely in to the enforced compliance pipelines which force projects to run other CI jobs to ensure compliance within particular framework rules.
- The implementation of this feature required input at all levels of the application from additions to the GraphQL API, new database tables and indices and I even turned my hand at writing some Vue.
-
Export Merge Requests to CSV
- A fairly common requirement amongst compliance-minded organizations. This was an implementation identical to merge request CSV exports so I was able to encapsulate a lot of the shared logic in "Issuable" classes, rather than separate Issue and MergeRequest ones.
-
Various refactoring of Audit Events
- Prior to this change, much of the data about audit events was stored in structured text, rather than database columns which caused issues with performance and made filtering and sorting audit events very difficult.
- Much of this change was database-level.
-
External API approval gates (Incomplete)
- Implemented a new set of approval rules that allows external services to approve merge requests.
-
PAT API endpoints
- Added new REST API endpoints to administer personal access tokens.
Developer checklist
-
Before this MR is merged -
Mention @gitlab-org/maintainers/rails-backend
, if not done (this issue template should do this automatically) -
Assign this issue to your manager
-
-
After this MR is merged -
Request a maintainer from the #backend_maintainers
Slack channel to add you as an Owner togitlab-org/maintainers/rails-backend
-
Consider adding 'backend maintainer' to your Slack notification keywords
-
Manager checklist
-
Before this MR is merged -
The MR has been open for 5 working days -
More than half of the existing maintainers approve the MR -
There are no blocking concerns raised (if there are, please follow https://about.gitlab.com/handbook/engineering/workflow/code-review/#how-to-become-a-project-maintainer)
-
-
After this MR is merged -
Announce the good news in the relevant channels listed in https://about.gitlab.com/handbook/engineering/#keeping-yourself-informed
-