<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Arjun Singh</title>
    <description>The latest articles on DEV Community by Arjun Singh (@arjun_singh_a5b4eae905df3).</description>
    <link>https://dev.to/arjun_singh_a5b4eae905df3</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2280979%2Faf4e582d-1ee3-4d0d-b46a-61e083acc232.png</url>
      <title>DEV Community: Arjun Singh</title>
      <link>https://dev.to/arjun_singh_a5b4eae905df3</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/arjun_singh_a5b4eae905df3"/>
    <language>en</language>
    <item>
      <title>My First GitLab Hackathon: 13 Merge Requests, 4 Merges, and What Actually Scores Points</title>
      <dc:creator>Arjun Singh</dc:creator>
      <pubDate>Tue, 13 Oct 2026 07:32:29 +0000</pubDate>
      <link>https://dev.to/arjun_singh_a5b4eae905df3/my-first-gitlab-hackathon-13-merge-requests-4-merges-and-what-actually-scores-points-50o3</link>
      <guid>https://dev.to/arjun_singh_a5b4eae905df3/my-first-gitlab-hackathon-13-merge-requests-4-merges-and-what-actually-scores-points-50o3</guid>
      <description>&lt;p&gt;I joined the October 2026 GitLab community hackathon with zero prior GitLab contributions. Two weeks later I sit in 4th place with 13 merge requests across &lt;code&gt;gitlab-org/gitlab&lt;/code&gt;, the contributor platform app, and the container registry. Here's what worked, what didn't, and what I'd tell anyone starting today.&lt;/p&gt;

&lt;h2&gt;
  
  
  Start with the rules — literally
&lt;/h2&gt;

&lt;p&gt;My score showed &lt;strong&gt;0 for the first days&lt;/strong&gt; despite open MRs. The fix: sign in at contributors.gitlab.com/hackathon and accept the hackathon rules. No acceptance, no points — it really is that binary. Second rule that matters: &lt;strong&gt;get assigned to an issue on the contributor platform before opening an MR&lt;/strong&gt;, or the MR scores nothing. I made every MR traceable to an issue from then on.&lt;/p&gt;

&lt;h2&gt;
  
  
  Small, linked MRs beat big ones
&lt;/h2&gt;

&lt;p&gt;My highest-effort work — a post-deployment migration deleting orphaned project group links (&lt;a href="https://gitlab.com/gitlab-org/gitlab/-/merge_requests/259047" rel="noopener noreferrer"&gt;!259047&lt;/a&gt;) with database-reviewer back-and-forth on batch sizes and query plans — is still unmerged. Meanwhile these small ones all merged within days:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://gitlab.com/gitlab-org/developer-relations/contributor-success/contributors-gitlab-com/-/merge_requests/2860" rel="noopener noreferrer"&gt;JSON 400 for malformed API bodies&lt;/a&gt; — one &lt;code&gt;rescue_from&lt;/code&gt; + a request spec.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://gitlab.com/gitlab-org/developer-relations/contributor-success/contributors-gitlab-com/-/merge_requests/2862" rel="noopener noreferrer"&gt;Rails logger to STDOUT in dev&lt;/a&gt; — a single initializer (after a reviewer proved my first approach would double-log in CI and I pivoted).&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://gitlab.com/gitlab-org/gitlab/-/merge_requests/261007" rel="noopener noreferrer"&gt;Exact-one strings for scanner health counts&lt;/a&gt; and &lt;a href="https://gitlab.com/gitlab-org/gitlab/-/merge_requests/258697" rel="noopener noreferrer"&gt;deduplicating bypassable security policies&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each linked merged MR is worth ~130 points (20 created + 20 commits + 60 merged + 30 issue-linked). Four of those is 520+ points. Volume of &lt;em&gt;merged&lt;/em&gt; small work is the whole game — open MRs score nothing until they land.&lt;/p&gt;

&lt;h2&gt;
  
  
  Reviewers are the bottleneck — manage them
&lt;/h2&gt;

&lt;p&gt;Almost every delay I hit was a person, not code: maintainers OOO, 13-deep review queues, a security review with an internal-only verdict I couldn't even read. What helped:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Ping with context, not "bump".&lt;/strong&gt; "Both threads addressed in &lt;code&gt;e5313f1c&lt;/code&gt;, pipeline green — could you re-review?" gets answers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Answer every thread the same day.&lt;/strong&gt; My fastest merge (!2860) went from review comment to fix to merge in about 5 hours.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Docs-only MRs fly.&lt;/strong&gt; Two of my quickest wins were single-paragraph doc fixes (&lt;a href="https://gitlab.com/gitlab-org/gitlab/-/issues/606169" rel="noopener noreferrer"&gt;#606169&lt;/a&gt;, &lt;a href="https://gitlab.com/gitlab-org/gitlab/-/merge_requests/261715" rel="noopener noreferrer"&gt;scan policy precedence&lt;/a&gt;). Docs lint is fast and technical writers review quickly.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Find work where the labels are
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;quick win&lt;/code&gt; label on &lt;code&gt;gitlab-org/gitlab&lt;/code&gt; issues is a goldmine — I pulled 41 unassigned ones in one query. ESLint-violation issues in one codebase area (Duo Chat) are perfect batch work: same pattern, same reviewers, three MRs. And check assignees first — half the good ones are already taken by people running the same playbook.&lt;/p&gt;

&lt;h2&gt;
  
  
  The scoreboard, honestly
&lt;/h2&gt;

&lt;p&gt;Top 3 from 4th needs ~3,300 more points, roughly 25 merged MRs at my current mix. The leaders got there differently: #1 banked 2,000 Translate points and 5,000+ Plan points. Code alone won't catch that — I'm adding translations and this post (content = 200 points) to the mix. Lesson: read the scoring rubric on day one, not day ten.&lt;/p&gt;

&lt;p&gt;If you're on the fence about contributing: the community review culture is genuinely welcoming, the triage bots route you to reviewers automatically, and small fixes are celebrated. Just accept the rules first.&lt;/p&gt;

</description>
      <category>gitlab</category>
      <category>opensource</category>
      <category>hackathon</category>
    </item>
  </channel>
</rss>
