{"id":418,"date":"2026-08-23T14:06:34","date_gmt":"2026-08-23T14:06:34","guid":{"rendered":"https:\/\/talently.tech\/en\/blog\/open-source-hiring-first-paid-engineer\/"},"modified":"2026-08-23T14:06:56","modified_gmt":"2026-08-23T14:06:56","slug":"open-source-hiring-first-paid-engineer","status":"publish","type":"post","link":"https:\/\/talently.tech\/en\/blog\/open-source-hiring-first-paid-engineer\/","title":{"rendered":"Open-source hiring: choosing your first paid engineer"},"content":{"rendered":"<span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Reading Time: <\/span> <span class=\"rt-time\"> 6<\/span> <span class=\"rt-label rt-postfix\">minutes<\/span><\/span>\n<p>Your project has 3,000 stars, 60 people who have merged something, and a Discord that goes off at 2am. You have funding for exactly one engineer. This is not a normal first hire, and running a normal hiring process for it is the most common way founders of open-source companies burn six months and end up with a very good engineer who freezes the moment their work becomes visible to strangers.<\/p>\n\n\n\n<div class=\"tldr\">\n<h2>TL;DR<\/h2>\n<ul><li><strong>Your first paid engineer must be able to operate in public:<\/strong> ship code, triage issues, and answer strangers under their real name, without a comms review.<\/li><li><strong>Source from your contributor graph, not a funnel.<\/strong> A project with ~3k stars typically has 40-80 unique contributors a year, 8-15 with real depth, and 2-4 who are actually hireable.<\/li><li><strong>Public work history collapses your interview loop.<\/strong> Skip the take-home entirely. You already have 6 to 40 hours of their unpaid, reviewed, merged work.<\/li><li><strong>Hire the builder, not the maintainer.<\/strong> At 5 people you need shipping velocity; a pure maintainer optimizes the queue you do not yet have.<\/li><li><strong>Comp reality:<\/strong> your candidate&#8217;s alternative is a $180k-$260k corporate open-source job. In LATAM, a top-decile contributor lands at $70k-$110k USD\/year plus 0.25%-0.75% equity, so you sell what a Big Tech offer does not include: their name on the commits.<\/li><li><strong>LATAM works here for a reason that is not cost:<\/strong> UTC-3 to UTC-6 overlaps the US workday, and community response is a live, same-day job.<\/li><\/ul>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\" id=\"the-job-is-8220engineer-who-can-be-perceived8221\">The job is \u201cengineer who can be perceived\u201d<\/h2>\n\n\n<p>Write the role honestly and it looks strange: 60% writing code, 20% reviewing other people&#8217;s code in public, 10% writing docs and release notes, 10% answering questions from people who are frustrated and not paying you. That last 20% is the filter almost nobody screens for.<\/p>\n\n\n\n<p>Plenty of excellent engineers cannot do it. Not because they lack skill. Reviewing a stranger&#8217;s messy PR at 4pm on a Friday with a tone that keeps them contributing is an emotional-labor skill, and it is orthogonal to systems design. A closed-source company can hire a brilliant introvert and route all external communication through a founder. You cannot. Your first hire&#8217;s PR comments are your brand.<\/p>\n\n\n\n<p>So screen for it explicitly. The strongest predictor: has this person ever <strong>maintained anything with strangers in it<\/strong>? A 400-star side project where they handled 30 outside PRs tells you more than three years at a FAANG. Read their review comments and look for someone who closes a wontfix issue in a way that leaves the reporter feeling respected.<\/p>\n\n\n<h2 class=\"wp-block-heading\" id=\"source-from-your-contributor-graph-not-a-job-board\">Source from your contributor graph, not a job board<\/h2>\n\n\n<p>You already ran a nine-month, unpaid, real-world work trial on dozens of people. Use the data. Rank every human who has touched the repo in the last 18 months on four signals.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Signal<\/th><th>What good looks like<\/th><th>Where to find it<\/th><\/tr><\/thead><tbody><tr><td><strong>Issue triage quality<\/strong><\/td><td>Reproduces bugs unprompted, writes minimal repros, correctly labels duplicates<\/td><td>Issues tab, filtered by commenter<\/td><\/tr><tr><td><strong>PR review tone<\/strong><\/td><td>Reviews other contributors&#8217; PRs; disagrees without condescension<\/td><td><code>is:pr reviewed-by:username<\/code><\/td><\/tr><tr><td><strong>Docs contributions<\/strong><\/td><td>Fixed docs after fixing code; wrote a migration note nobody asked for<\/td><td><code>git log --author<\/code> on <code>\/docs<\/code><\/td><\/tr><tr><td><strong>Depth over breadth<\/strong><\/td><td>3+ merged PRs, at least one touching core, not just typo fixes<\/td><td>Contributors graph<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>The funnel math narrows fast, and that works in your favor. A project at ~3k stars typically shows <strong>40-80 unique contributors per year<\/strong>. Strip out one-off typo and dependency-bump PRs and you are at <strong>8-15 people with real depth<\/strong>. Of those, most are happily employed, in a wrong timezone, or students. You end up with <strong>2-4 genuinely hireable names<\/strong>. That is a complete candidate list, and you should treat it as a list of four people you personally reach out to, not a pipeline.<\/p>\n\n\n\n<p>The outreach is not a recruiter email. It is the founder saying: &#8220;You have merged five PRs into the scheduler. We are hiring one person. I think it should be you.&#8221; That message gets answered far more often than cold sourcing does, because you are not asking them to prove anything.<\/p>\n\n\n<h2 class=\"wp-block-heading\" id=\"what-to-do-with-an-interview-loop-when-the-work-is-already-public\">What to do with an interview loop when the work is already public<\/h2>\n\n\n<p>Delete the take-home. It is redundant and mildly insulting to someone with 20 merged PRs, and asking for it is a signal that you have not read their work. This is the biggest structural difference between open-source hiring and everything else: <strong>the evaluation already happened, asynchronously, over months.<\/strong><\/p>\n\n\n\n<p>Replace the loop with three conversations, total 3-4 hours:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>A code walkthrough of their own PR<\/strong> (60 min). Pick their gnarliest merged contribution. Ask why they made the tradeoffs. You get design reasoning, communication, and honesty about what they would change, with zero contrived setup.<\/li>\n\n\n\n<li><strong>A live triage session<\/strong> (60 min). Open your actual issue backlog, unfiltered. Ask them to sort 15 issues into ship-now \/ needs-repro \/ wontfix, and draft two replies. You will learn more in an hour than from any algorithm round.<\/li>\n\n\n\n<li><strong>A roadmap conversation with the founder<\/strong> (60-90 min). Where does the project go once it has to make money? Watch for whether they can hold &#8220;open source&#8221; and &#8220;commercial&#8221; in the same head without flinching.<\/li>\n<\/ol>\n\n\n\n<p>If you must run a technical exercise, make it a real ticket, paid, timeboxed at 4 hours. Contributors who already work for free will notice, and respect, that you started paying the moment it became work you directed.<\/p>\n\n\n<h2 class=\"wp-block-heading\" id=\"maintainer-vs-builder-hire-the-builder\">Maintainer vs. builder: hire the builder<\/h2>\n\n\n<p>Your most visible community member is probably a maintainer archetype: reviews everything, keeps the queue clean, deeply protective of the project&#8217;s scope. Hiring them first feels obvious. At a 5-person company it is usually wrong.<\/p>\n\n\n\n<p>A maintainer optimizes for <strong>stability, queue health, and saying no<\/strong>. A builder optimizes for <strong>shipping the thing that makes the company survive<\/strong>: the managed cloud version, the enterprise auth layer, the thing that turns stars into revenue. At seed stage you need someone who will ship a rough hosted control plane in six weeks, not someone who will spend that time refactoring the plugin API.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><\/th><th>Maintainer-first<\/th><th>Builder-first<\/th><\/tr><\/thead><tbody><tr><td>Best when<\/td><td>15k+ stars, issue queue &gt;200 open, community is the bottleneck<\/td><td>Pre-revenue, product surface is the bottleneck<\/td><\/tr><tr><td>Ships in 90 days<\/td><td>Cleaner repo, faster PR turnaround<\/td><td>A shippable commercial surface<\/td><\/tr><tr><td>Risk<\/td><td>Runway spent on hygiene<\/td><td>Community backlog grows, resentment builds<\/td><\/tr><tr><td>Typical fit<\/td><td>Hire #3-#5<\/td><td><strong>Hire #1<\/strong><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Most of the strongest candidates from your contributor graph are 70\/30 builders who happen to have maintainer instincts. Hire that, and explicitly cap community work at one afternoon a week for the first six months. Write the cap into the offer conversation so nobody is surprised when triage gets deprioritized.<\/p>\n\n\n<h2 class=\"wp-block-heading\" id=\"comp-and-equity-against-a-fat-corporate-opensource-job\">Comp and equity against a fat corporate open-source job<\/h2>\n\n\n<p>Be clear-eyed about the alternative. Companies with open-source program offices pay senior engineers <strong>$180k-$260k base plus meaningful RSUs<\/strong> to work on open source with no revenue pressure. You cannot beat that on cash, and you should not pretend to.<\/p>\n\n\n\n<p>What you can offer: ownership of the roadmap, their name in the release notes, and equity that means something. Realistic bands for this role:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>US senior, open-source-fluent:<\/strong> $170k-$210k + 0.5%-1.5% equity at seed<\/li>\n\n\n\n<li><strong>LATAM senior, open-source-fluent (top decile):<\/strong> $70k-$110k USD\/year + 0.25%-0.75% equity<\/li>\n\n\n\n<li><strong>LATAM mid-level with strong contributor history:<\/strong> $45k-$70k USD\/year + 0.15%-0.4%<\/li>\n<\/ul>\n\n\n\n<p>Two rules. First, <strong>do not lowball a contributor because they worked for free<\/strong>. It poisons the relationship and the community will hear about it. Second, give real equity with a documented strike price and a 90-day post-termination exercise window at minimum. Someone leaving a stable job for a 5-person company with a public GitHub graph is taking visible risk, so put the upside in writing.<\/p>\n\n\n<h2 class=\"wp-block-heading\" id=\"why-latam-specifically-fits-this-role\">Why LATAM specifically fits this role<\/h2>\n\n\n<p>The usual nearshore argument is cost and overlap. For this hire, overlap is not a convenience. It is the job. Community response ages fast. An issue answered within 4 hours reads as a healthy project; the same answer 26 hours later reads as abandonware. An engineer at UTC-3 (Brazil, Argentina, Uruguay), UTC-5 (Colombia, Peru), or UTC-6 (Mexico) covers the US morning and afternoon live, which is when your US and European users are both awake.<\/p>\n\n\n\n<p>The contributor pools are real, not hypothetical. Brazil consistently ranks in the global top 10 by GitHub contributor count, and Argentina, Colombia and Mexico have dense communities around the Python, Rust, Elixir and JS ecosystems. There is a decent chance two of the four names on your shortlist are already in the region.<\/p>\n\n\n\n<p>Contributor-sourced hires also start faster, and that gap compounds. A cold senior hire typically merges their first meaningful PR in <strong>3-4 weeks<\/strong>. Someone from your contributor graph merges in <strong>2-5 days<\/strong>, because they already have the repo cloned, the dev environment working, and opinions about the code.<\/p>\n\n\n<h2 class=\"wp-block-heading\" id=\"frequently-asked-questions\">Frequently Asked Questions<\/h2>\n\n<h3 class=\"wp-block-heading\" id=\"what-if-none-of-our-contributors-are-hireable\">What if none of our contributors are hireable?<\/h3>\n\n\n<p>That happens often at under 1,000 stars. Widen to adjacent projects: contributors to your direct dependencies, your language ecosystem, or a competitor&#8217;s repo. Screen the same way: read their issue comments and reviews before you read their resume.<\/p>\n\n\n<h3 class=\"wp-block-heading\" id=\"should-the-first-hire-be-fulltime-or-start-as-a-contractor\">Should the first hire be full-time or start as a contractor?<\/h3>\n\n\n<p>A paid 4-6 week trial on real tickets works well and both sides usually want it, since the candidate is often leaving a stable job. Keep it short and scoped, pay market rate for the hours, and commit to a decision date. Open-ended contributor-with-a-stipend arrangements tend to stall.<\/p>\n\n\n<h3 class=\"wp-block-heading\" id=\"how-do-we-evaluate-someone-with-a-great-github-profile-but-no-professional-experience\">How do we evaluate someone with a great GitHub profile but no professional experience?<\/h3>\n\n\n<p>Public work covers code quality and collaboration; it does not cover reliability under deadline or scope negotiation. Probe those directly: ask about a time they had to ship something incomplete, and how they decided what to cut. Weight the triage session heavily.<\/p>\n\n\n<h3 class=\"wp-block-heading\" id=\"do-we-need-to-tell-the-community-we-hired-one-of-them\">Do we need to tell the community we hired one of them?<\/h3>\n\n\n<p>Yes, and quickly. Announce it in the same channel where the work happens, state plainly that the person is now paid, and clarify what does not change about the license and governance. Silence here is what generates suspicion that the project is being quietly captured.<\/p>\n\n\n<h3 class=\"wp-block-heading\" id=\"will-a-paid-engineer-demotivate-volunteer-contributors\">Will a paid engineer demotivate volunteer contributors?<\/h3>\n\n\n<p>Only if the paid person starts absorbing all the interesting work. Protect the good-first-issue queue, keep design discussions in public issues rather than internal Slack, and have the new hire review contributor PRs rather than rewriting them.<\/p>\n\n\n<h3 class=\"wp-block-heading\" id=\"how-much-of-the-role-should-be-community-work\">How much of the role should be community work?<\/h3>\n\n\n<p>For hire #1, cap it at roughly 20%: one afternoon a week plus daily triage under 30 minutes. If community demand exceeds that consistently, the answer is better docs and issue templates, not more of your one engineer&#8217;s time.<\/p>\n","protected":false},"excerpt":{"rendered":"<p><span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Reading Time: <\/span> <span class=\"rt-time\"> 6<\/span> <span class=\"rt-label rt-postfix\">minutes<\/span><\/span>Your project has 3,000 stars and funding for exactly one engineer. Why a normal hiring process is the wrong tool, and what to run instead.<\/p>\n","protected":false},"author":3,"featured_media":212,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[5],"tags":[],"class_list":["post-418","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-talent-acquisition"],"_links":{"self":[{"href":"https:\/\/talently.tech\/en\/blog\/wp-json\/wp\/v2\/posts\/418","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/talently.tech\/en\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/talently.tech\/en\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/talently.tech\/en\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/talently.tech\/en\/blog\/wp-json\/wp\/v2\/comments?post=418"}],"version-history":[{"count":2,"href":"https:\/\/talently.tech\/en\/blog\/wp-json\/wp\/v2\/posts\/418\/revisions"}],"predecessor-version":[{"id":420,"href":"https:\/\/talently.tech\/en\/blog\/wp-json\/wp\/v2\/posts\/418\/revisions\/420"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/talently.tech\/en\/blog\/wp-json\/wp\/v2\/media\/212"}],"wp:attachment":[{"href":"https:\/\/talently.tech\/en\/blog\/wp-json\/wp\/v2\/media?parent=418"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/talently.tech\/en\/blog\/wp-json\/wp\/v2\/categories?post=418"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/talently.tech\/en\/blog\/wp-json\/wp\/v2\/tags?post=418"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}