Where should aspiring programmers choose to work?
[I say ‘choose’ because anyone who’s worked with great programmers understands that they worth far more than average ones. Sometimes 50x as much. That’s because great programmers can architect effective systems that are scalable and able to do what’s unimaginable for other programs.]
While this post is about people who work to become great programmers, I think it applies to most fields, including sales and design.
The Silicon Valley dream has thousands of programmers filling desks and beanbags at companies like Apple, Google, and Facebook.
These big names receive an overwhelming number of applications each day. I mean, if you’re new in the industry and have the opportunity, then why now work there? It would be a valuable learning experience.
However, it might not be the best option for someone who wants to matter. Or for a programmer who doesn’t just want to be another number or cog in the system.
Freedom and control
The first challenge of working in a large organisation is a lack of freedom. Not just the freedom to plan your day and projects, but to try new things, take risks, push boundaries and launch things that might not work.
You may also have no control over what you work on and how you get the job done.
If you’re part of a hundred-person team working on an existing piece of software, you will undoubtedly learn a lot. But the areas you have control over, responsibility for, the ability to change—are small indeed.
However, when organisations grow, the default choice is to create systems based on programming jobs that don’t need brilliant engineers.
The most reliable way to build a scalable organisation is to complete projects using easily sourced (and replaceable) workers. This setup means less freedom for the people who do the work and more control for the organisation.
When faced with the loss of freedom and control, many talented people demand an increase in security and benefits. That’s one big reason (irony alert) that fast-growing companies go public. They want more freedom to pay their teams handsomely.
This move, however, puts the company’s future in the hands of Wall Street, which will happily exchange stock price growth for the banality of predictable. This, of course, leads to programmers losing even more freedom and control.
An industrialised organisation can change the world, but they’re going to do it with or without you.
Finding a balance
As talented outliers like Marco Arment have shown us, the alternative is to take a good idea (like Tumblr or Overcast) and turn it into something extraordinary.
The challenge here is that finding a great idea is a lot of work (and a distinct skill), and so is turning it into a company that succeeds.
Programmers who do both those jobs are often left fighting for the time to do the programming they love to do. (Mark Zuckerberg decided to give up serious programming at Facebook, while Yahoo’s Dave Filo chose not to).
The alternative? Be as active in finding the right place to work as great founders are in finding you.
The goal might not be to find a famous company or even a lucrative gig. Instead, you can reach your potential by joining a budding startup or a vibrant organisation.
You can truly compound your growth within a powerful agent of change that regularly puts you on the spot.
With great freedom…
As the saying goes:
With great freedom comes great responsibility.
Start-up environments need you to go beyond your job every day and continually hone your skills to improve.
You’re giving up the security and structure of a large organisation to gain the freedom and fulfilment of working in a robust team.
You’ll need to find clients, bosses, or a team where you are respected, challenged and given freedom and control to do impactful work.
If I were a great programmer, I would take the time to figure out what my ideal day must look like. Then, I would visit events, start-up weekends, VC firms and other places where good ideas and people are found.
The best jobs are usually the most difficult to find. So, I hope this post inspires new ideas and gets you going on the right track.
Check out one of my earlier posts for more thoughts on entrepreneurship and the challenges of finding fulfilling work.