Article summary
- Public work is real evidence. A side project shows what a developer chose to build when nobody was paying them, which is the one thing a resume cannot carry.
- An empty profile leaves less to go on rather than nothing, because the work history and what shipped there still carry evidence.
- Employers own the code written for them, so a developer at a defense, health, or finance company often has nothing they are allowed to publish.
- Free time is unevenly distributed. A developer with two young children and a demanding job can be excellent and have an empty profile.
- Reading an empty profile as either normal or disqualifying produces bad calls. It is a gap in the evidence, and the size of the gap depends on why it is there.
Is an empty GitHub profile a red flag?
An empty GitHub profile is a gap in the evidence rather than a verdict. It removes one source of information about a developer and leaves the others intact. Some excellent developers have empty profiles for reasons that reflect well on them. Some weak candidates have full profiles that fall apart under the checks covered in what green squares and stars mean.
The two easy answers are both wrong. "Everyone should have public work" disqualifies a large share of strong developers, including many of the most senior ones. "Public work means nothing" throws away the one form of evidence that can be read directly instead of taken on the candidate's word. The honest position sits between: an empty profile narrows what can be read, and how much it narrows depends on why the profile is empty.
What is public work evidence of?
Public work is evidence of choices made under no pressure. Everything in a work history was shaped by an employer: the problem, the tools, the deadline, the standard the code had to meet. A public repository a developer built on their own has none of that shaping. They picked the problem because it interested them, picked the tools because they wanted to use them, and took it exactly as far as they cared to.
That makes it a different kind of evidence from anything else in the file. A resume says what a developer was assigned. Public code says what they do when nobody assigns anything. The two can agree or disagree, and both patterns are informative. A backend developer whose personal repositories are all small games has range the resume never mentioned. A developer whose public work extends their day job shows an appetite that survived eight hours of doing it for money.
Public work is also checkable in a way a resume line never is. A hundred cooks and a public square covered the mechanics: every change is recorded with a name and a date, so a claim about public code can be confirmed by looking. That property is what the rest of this lesson weighs the absence of.
What do weekend and side projects show that a resume cannot?
A side project is software a developer builds outside work, on their own time, because they wanted it to exist. It has no manager, no deadline, and no paycheck behind it, and each missing pressure makes the project more revealing. Side projects range from a fifty-line script that renames files to a tool with thousands of users, and the size matters less than what the project shows.
It shows taste. The problem a developer picks with total freedom says what they find worth solving, and the way they build it says what they think good work looks like when nobody is checking. It shows curiosity: a developer whose side projects use tools their job never touched is learning on their own initiative, which is the trait that keeps a developer current across a whole career. And it shows finishing habits. Anyone can start a project on a free Saturday. A project with a README, working instructions, and fixes applied months after the start was carried past the fun part, and carrying work past the fun part is most of professional software.
No resume line holds any of this. A resume records what was assigned and completed for pay. The gift economy lesson covered why developers give work away at all; a side project is that motivation made visible in one person, small enough to read in full.
Why does an employed developer have nothing to publish?
Employers own the code their developers write for them. That is standard in employment contracts across the industry, and it means the work a developer does forty hours a week belongs to the company, lives in private repositories, and can never appear on a public profile. A developer can spend a decade building serious systems and have every line of it locked away, because every line was done for an employer who owns it.
Some industries lock it tighter. Defense contractors, banks, health systems, and government agencies treat code as sensitive material, and many forbid employees from publishing anything technical at all, including personal projects that resemble their work. A developer who spent ten years in those industries often has an empty profile as a condition of employment. The seniority that makes a candidate attractive is the same thing that emptied the profile: the more responsibility they held over proprietary systems, the less of their output was ever theirs to show.
The absence runs in a surprising direction
Who has free evenings, and who does not?
Side projects are made of free time, and free time is unevenly distributed. A developer with two young children, an aging parent, or a demanding on-call rotation has evenings that are already spoken for. A twenty-four-year-old with no dependents can put twenty hours a week into public code without giving anything up. Both can be excellent developers. Only one of them has the raw hours a public portfolio is built from.
The distribution follows life stage more than skill. Public activity tends to peak early in a career, when time is abundant and a portfolio still opens doors, and thins out through the years when families grow and jobs grow with them. So the empty profiles cluster among developers in their thirties and forties, which is also where the deepest experience clusters. Treating public volume as a proxy for ability quietly filters for people with empty calendars, and that filter runs against seniority, against caregivers, and against anyone whose life is full outside work.
The positive reading holds in both directions. A full profile from a developer with a demanding life means they carved the hours out of something, which says how much the craft matters to them. An empty one from the same person means the hours went to their family or their health, which says nothing about the work at all.
What does an empty profile take out of the read?
It removes the one channel that could be read directly. With public work, claims can be checked against the record: the repository is there, the changes are dated and named, and the checks that separate authored work from copies can be run by anyone. With an empty profile, every technical claim rests on the candidate's own account and whatever the interview process can verify. The evidence still exists; it moved from documents into conversation.
It also removes the free preview of taste. Pinned repositories and personal projects show how a developer thinks before anyone has spoken to them. Without that preview, the first real read of the person happens later in the process and costs an interviewer's hour instead of a sourcing minute.
The gap has a size, and the resume tells you the size
What carries the evidence when there is no public work?
The work history carries it, read for what shipped rather than for what is listed. A resume line names an employer and a title. Underneath it sits the real evidence: what the system did, who used it, how many of them, what the developer was accountable for, and what broke along the way. Those facts exist for every developer who has held a job, public profile or none, and they are the same facts a strong engineer volunteers when describing work they are proud of.
Scale and consequence are the useful axes. A developer who kept a payments system running for a bank can say what went wrong at 2am and what changed afterward, and that account carries the same kind of weight a public repository does: specific, dated, and hard to fake in detail. Talks, writing, and internal tools they can describe from memory all serve the same role. The anchor guide to reading profiles and resumes puts this read in sequence with the rest, and shipped, owned, migrated goes deep on the resume words that carry the most weight when the resume is all there is.
The summary that survives contact with real pipelines: public work is real evidence and worth reading wherever it exists. Its absence is a fact with several explanations, most of them benign and some of them favorable. The blank page removes one channel and points the read at the others, and the others are usually enough.
FAQs
Is an empty GitHub profile a red flag?
It is a gap in the evidence rather than a verdict. Public work shows what a developer builds when nobody is paying them, and without it the read leans entirely on the work history and what shipped there.
What does a side project tell you about a developer?
It shows what they find interesting with no manager, no deadline, and no paycheck involved. That is taste, curiosity, and finishing habits, and no resume line carries any of it.
Why do some strong developers have no public code?
Employers own the code written for them, and in defense, health, and finance almost none of it can be published. Others have full lives outside work and spend their free hours elsewhere.
Does public activity on GitHub matter?
Yes. It is one of the few things about a developer that can be read directly rather than taken on their word, and it shows interest that nobody paid for.
What carries the evidence when a profile is empty?
The work they shipped at their employers: what the system did, how many people used it, what they were accountable for, and what broke along the way.
Should an empty profile count against a candidate?
The gap is worth understanding rather than counting against them. A candidate who spent ten years in regulated industries and a candidate with free evenings and nothing built are the same empty profile for two different reasons.