Jack

The open source tax on new grads

I feel like the tech world might have a problem.

What a bold take these days, I know...

But hear me out. As someone who recently graduated with a computer science degree and is getting increasingly fed up with the state of the job market, let me vent for a second.

Every week brings a new LLM, a new coding model, or a new agentic harness promising to relieve us lethargic meatbags of our hobbies and careers. The benchmarks go up, the context windows get bigger, and another chunk of the software development process gets handed over to an increasingly capable autocomplete box. At least, that seems to be what hiring managers think.

I'm not even particularly anti-AI. I use these tools. They're useful, sometimes incredibly so. Pretending they aren't changing software development would be stupid. But it's hard not to notice the timing if you're trying to enter the industry right now; the barrier to producing software is collapsing at roughly the same time that the barrier to getting paid to produce it seems to be going up. All of this immediately after I finished my degree!

Five years and tens of thousands of dollars later, the advice for breaking into the field increasingly seems to boil down to doing more software development for free.

Conventional employment doesn't exactly feel like the safe, boring alternative anymore either. Between layoffs, reorganizations, hiring freezes, return-to-office mandates, and the general restlessness of the major tech companies, the traditional career path feels a lot less certain than it did when I started my degree.

Increasingly, it feels like the exciting alternative is to just go build something yourself.

Start a company. Find a problem. Ship a product. Raise some money. Become one of those suspiciously productive people on Twitter who announces a new company on Monday and somehow has 20k users by the end of the week.

Simple.

Except for the fact that starting a company requires having something worth building, the time to build it, and enough runway to survive while you figure out whether anyone actually wants it. None of those things are particularly easy to come by.

It was never easy to break through in the world of tech startups, of course. But it feels like the bar for making something genuinely novel keeps rising. An enormous amount of software already exists, and when something new does appear, it's increasingly difficult to distinguish a thoughtful new product from the endless torrent of wrappers, clones, generated landing pages, and AI-assisted "slop" being shipped every day.

You don't just have to build something good, you have to build something good enough for somebody to notice. That's always involved luck. Probably more than we'd like to admit.

Tech seems like one of those fields where a huge part of succeeding is simply working as hard as you reasonably can to increase your surface area for luck: build things, publish them, write about them, meet people, contribute somewhere, send the application, make the stupid little tool you wish existed, and hope one of those things eventually collides with the right person at the right time. The trouble is that increasing your surface area for luck takes time.

This brings me to open source.

I'm not going to say that "only rich people can accomplish anything in open source." That isn't really true. But there's a problem I think we have to acknowledge:

Open source makes software free. It does not make the labour required to produce software free.

That distinction gets glossed over constantly. The romantic picture of open source is basically: a bunch of hackers scratching their own itches, collaborating because they enjoy it, and collectively building things no corporation could have planned. That still happens. Git, Linux, ffmpeg, Neovim, and countless libraries and weird little tools are evidence that it isn't bullshit.

Still, there's an uncomfortable economic prerequisite hiding underneath it:

Someone has to be able to afford the time.

That's fine if you're independently wealthy, employed by a company that pays you to work on OSS, successful enough to attract sponsorship, an influencer whose projects generate content, or simply comfortable enough in your career that spending six months building something ambitious is a rational bet.

But if you're in my shoes, or the shoes of thousands like me, as a nearly broke new grad trying to land a first SWE job, those same six months are six months without any income.

I don't even have it that bad, all things considered. I'm fortunate to have a family who will always support me, and to live in the greatest country on earth with very little to actually worry about day to day. Still, I'd rather not spend the next five years mowing fields while waiting for someone to decide I'm finally qualified enough to centre a div.

There's a nasty feedback loop underneath all of this, too. People who already have money, reputation, industry connections, or an audience can afford to build ambitious things: the Mitchell Hashimotos, DHHs, and Primeagens of the world.

I'm not here to hate on any of them. I love all of them (some more than others), and I'll be the first to admit they built their own success. But building ambitious things gives them more reputation, connections, investment opportunities, and money, which makes the next ambitious thing easier to build.

Nearly every tech influencer today had a stable career for a while before branching off to do their own thing. They accumulated experience, money, connections, credibility, or an audience first. In other words, they already had a pretty large surface area for their luck.

Meanwhile, someone trying to acquire those same safety nets in the first place gets told something like: "just contribute to open source! Build something cool! The success will follow from there!"

Great. With what fucking time?

Not that I want this to turn into some sort of pity party, but I'm out here waking up at 4:30 to cut grass, trying to maintain hobbies and grinding on personal projects in the few free hours I have per day. And aside from some personal growth, for whatever that's worth, it can feel like I'm getting nothing in return for the effort. I guess maybe this is just what it means to grow up?

Either way, that's where I think the usual advice to new grads starts to feel a little absurd. Open source was never supposed to be an unpaid internship programme for an industry that stopped wanting to train its own juniors.

There's an adjacent irony in the current junior SWE market that might actually be the stronger point here:

The industry increasingly expects beginners to demonstrate the output of experienced engineers, before giving them the opportunity to become experienced engineers.

  • A CS degree isn't enough anymore, so build side projects.
  • Side projects aren't enough on their own. They need real users.
  • Good luck getting users when you don't have a platform to reach them.
  • Oh, and while you're at it, teach yourself everything your expensive yet apparently useless school didn't: distributed systems, cloud infrastructure, CI/CD, containers, security, observability, databases, frontend design, and now AI tooling.
  • Then contribute to somebody else's software for free so you can prove that you know how to work on "real" software, too.

All of that for the privilege of being considered for a Junior Software Engineer position.

Meanwhile, the mechanism that traditionally turned inexperienced programmers into experienced ones was rather straightforward: companies just hired inexperienced programmers. Often times for no reason other than keeping them out of their competitor's payroll, whether you were competent or not.

That's the part that bothers me more than any LLM benchmark. AI might change how many programmers the industry needs, and it will almost certainly change what those programmers spend their time doing. Nobody really knows where that settles yet.

But right now, companies seem increasingly reluctant to absorb the cost of turning juniors into seniors. Instead, that cost gets pushed onto the juniors themselves: get the degree, learn the tools, build the portfolio, find the users, contribute to open source, and somehow pay rent while you're doing it.

Open source starts looking less like a community and more like an entrance fee.

Except... the fee isn't just the money.

It's mainly the time.

Reality check: is that really true, though?

Don't get me wrong: "meaningful open-source work" doesn't require building the next Docker or starting a VC-backed company. One person building a genuinely useful 4k-line CLI can make a real impact. So can someone fixing an irritating compiler bug, maintaining a Neovim plugin used by thousands of people, writing an unusually good library, or contributing consistently to one established project.

In fact, small-scale open source is probably where the original premise still works best. You don't need capital to build a good terminal utility. You do need it to turn that utility into a company that scales and employs a dozen engineers.

Those two things have become weirdly conflated because tech culture mostly celebrates projects once they become businesses. Someone quietly maintaining an excellent library used by 40k developers doesn't usually get a TechCrunch write-up. Someone raises $18 million to put an AI chatbot in front of PostgreSQL, and suddenly they're a visionary founder.

That selection effect makes open source look far more plutocratic than the ecosystem actually is.

That said, plenty of important maintainers aren't wealthy at all, which leads to the opposite failure mode: critical infrastructure maintained by one exhausted person after work, fielding GitHub issues from billion-dollar corporations asking when they'll fix a bug.

And maybe that's the contradiction at the centre of all of this.

Open source is supposed to democratize access to software. Anyone can use it. Anyone can study it. Anyone can change it. Anyone can contribute. But contributing seriously requires access to the one resource that open source can't democratize:

Free time.

And the more I think about it, the same constraint applies to nearly every alternative we're told exists when the normal career path isn't working.

Can't find a job? Build a portfolio. Portfolio isn't enough? Contribute to open source. Open source isn't getting you noticed? Build a product. Product isn't getting traction? Start a company. Company isn't getting traction? Build another one.

Every step supposedly increases your surface area for luck. And maybe it does. But every step also requires more of the same finite resource from the people who generally have the least of it to spare.

The software is free. The developer's rent is not.


That's enough yapping for now. In other news, Redox is currently in the process of a large rewrite. Once that's done, you can expect another devlog update post about it. Because, yea... it's been too long since the last one (again).