Mark Pollmann's blog

Career Options for Developers

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:
Frontend development
Skills needed: JavaScript and/or TypeScript, some framework like React or Vue and CSS
Backend development
Skills needed: Java, Kotlin, Ruby, Python or any other of the server-side languages.
Mobile Development
Swift or Objective-C for iOS, Java or Kotlin for Android, JavaScript/TypeScript for React Native.
DevOps
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.

Pros

  • 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.

Cons

  • 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…”

Recommended Reading

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.

Recommended Reading

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.

Freelance

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.

Recommended Reading

Don’t call yourself a programmer

Consulting

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.

Recommended Reading

Erik Dietrich’s blog

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.

Recommended Reading

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!

Recommended Reading

Conclusion

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.