For most of us in the industry, developing software is a dream job.
We like to tinker with stuff, try out new technology, solve those little puzzles that come up every day.
But after a while the work might start to become less exciting. Having to learn the newest, hottest framework to stay employable. An endless row of Jira tickets waiting to get done in sprint after sprint. Overhearing higher-ups calling us resources one more time. Meetings, meetings, meetings and mis-management that we, in our wisdom, could see coming from a mile away.
We get bored, so we start polishing our resumes and finally move somewhere else. It’s nice for a while, new challenges, but after a while the same stuff crops up again. Dysfunctional companies seem to be the norm, not the exception.
Nobody wants to complain since we get paid handsomely, come into the air-conditioned office at 10am and no one cares if we leave early, as long as the work got done.
But isn’t there more to our career? Every company is looking for skilled tech people, aren’t they? So how come we have so little say and the business guys are making all the decisions (and get the big bucks)?
Let’s see what choice we have besides completely quitting the industry and becoming a monk in Tibet.
These are the options I came up with. If you know of something else, let me know!
Options as an employee
Stay a Developer but shake things up
The easiest option is to keep doing what you’re doing but different (bear with me). If you work in a big, enterprisey company and you feel your contributions don’t matter much, apply for a job at a startup.
Change the Type of Company
You’re working at a startup and feel like you’re spinning too many plates without improving at your core tech skills? Try a bigger, more specialised company that has lots of talented engineers who can push you.
Change Your Tech Stack
You’re a backend dev and want to see quicker feedback of what you’re working on? Try some frontend work for a change (and choose a side in the holy war of CSS-in-JS).
You’re a frontend dev and are bored of pushing pixels? Teach yourself some Kotlin or Ruby.
Here are some of the fields you could choose:
Skills needed: Java, Kotlin, Ruby, Python or any other of the server-side languages.
Skills needed: Docker and Kubernetes are a given. Might also need Ansible or Chef or Terraform or CloudFormation or… You could also focus on a cloud provider (AWS, Google Cloud or Azure).
Go after the current hype
Have some fun and teach yourself the current hot stuff. When I doubt look at what Google is doing as many companies follow them blindly and pay good money for someone that knows this stuff. Nowadays that would probably be Kubernetes, Augmented Reality, Machine Learning (might need a PhD for that), Big Data (is that still a thing?) or Blockchain (lol).
There are lots of other programming fields but those are the fields I know the most about. Now let’s talk about some real career change.
Go into Product Management
What is it about?
Not to be confused with the role of Product Owner in a Scrum team, a Product Manager’s job is to make sure the company builds the right product and to drive the development forward. It’s all about strategy here.
What does that mean?
You have to wear many hats: Talk to (potential and current) customers to find out what to build (especially important if you work at a startup before product-market fit). Develop a product roadmap and prioritize which feature to build first. Conduct research about what competitors are doing or plan to do and stay on top of your industry.
- You get a say in where the company is heading.
- You learn a lot about marketing and business and lots of other things.
- Product Management is arguably the best job to prepare you for founding a company yourself or taking over as a CEO somewhere.
- It’s a lot of work. Don’t do this if you want a cushy 40 hour job. There’s always more to do, to research, to learn, to analyse.
- If something goes wrong, you’re the one to blame. Developers didn’t get the feature ready in time? Bad planning by the PM. Communication between company divisions didn’t work? Pm’s fault.
As crazygringo writes on Hacker News: “if you want to be a PM then you’d better enjoy meetings, slides, people, and communicating & convincing all day long, day-in day-out. If those make you say an enthusiastic “yes that’s me!” then jump right in. If not… you’re gonna have a bad time…”
- Anything by John Cutler
- The blog of Product Plan
- The website of Ken Norton
- How to Hire a Product Manager
- This udemy course
Go into Management
Many developers would rather become homeless than go into management. “Management doesn’t add any value, they are just running from one meeting to the next, trying to look busy.” But that’s exactly why you can make an impact here. Replace an ineffective manager and your marginal value is much higher than replacing a semi-competent developer.
- The Manager’s Path by Camille Fournier
- High Output Management by Andy Grove
- Anything by Peter Drucker
- Dev to Manager Interviews
- High Performance Organizations Reading List
Do Your Own Thing
Now we are leaving the safe shelter life of employment and cross over into what looks like real “freedom” from employment.
If you want to keep programming but want a bit more diversity, then this might be for you. Most freelance development gigs you find are actually what is called staff augmentation. Here a company needs more (temporary) man-power and looks for outside help. The contract might go 3 months, 6 months or any other number of months and you support the development of the product for this time. The modalities are very flexible (remote work, how many hours per week, etc) and negotiable.
The other type of freelancing would be creating a deliverable, like a website or an app, on your own. This takes more careful planning from both sides but especially from you. It’s notoriously hard to estimate the time and effort of development and if you’re way off target your effective hourly rate might suffer, especially if you negotiated a fixed price for the project.
If you’re fed up with doing real work for a living and accumulated some niche expertise you can try giving advice for money in the form of consulting. Your engagements will be shorter but higher paid unless you do the implementation work yourself.
Books by Alan Weiss
Build a Lifestyle Business
A lifestyle business is a company you build with the explicit goal of not growing for growth’s sake. To build something that supports your lifestyle.
Maybe you’re fine with you being the only employee and it generating a couple thousand dollar a month.
Maybe you’d like it to generate \$1 million in revenue with a handful of employees that all work remotely from home. You can make the rules.
It’s the idea of the 4 hour workweek but only after lots of work to get if off the ground.
- Indie Hackers
- Company of One
- Start Small Stay Small
- The E-Myth Revisited
- Signal v. Noise
- Startups for the Rest of Us
Found a Company and Change the World
Last but not least, how about a shot at leaving a real legacy? Definitely a more interesting life goal than joining Google.
There are so many important and interesting problems still out there, waiting to be solved. And programmers are in a unique situation to solve many of them. See Y-Combinator’s Request for Startups.
Build something valuable with artificial intelligence. Create a solution to slow down climate change. Improve education, the energy sector or transportation with technology. Create meaningful jobs, not the other kind.
Be like Elon!
- Request for Startups
- Zero to One
- Anything by Paul Graham
- 80000 hours
- I sometimes post notes from interesting talks and books on this blog like my posts about Startup Sales and Building a MVP
The world is your oyster. Don’t be afraid of trying something new. Even if you tried building a startup and failed, there’s always demand for good developers if you want to go back to regular employment.