Fear, short-sightedness, and closed mindedness are the only things that can screw you long-term in this field. Everything else is surmountable.

Beginner devs are most often guilty of short-sightedness. I’ve seen more than one beginner dev I’ve advised leap at the first job offered to them without considering its long term potential. Here’s a hypothetical to illustrate the decision. You have two offers:

Offer A: $135K/year, non-tech sigma-tier company with a lazy dev team.

Offer B: $100K/year, tech startup, with an obsessive dev team.

Almost unwaveringly new devs pick Offer A being lured in by the “good work life balance” and money. This is a monumental blunder. Let’s wargame each offer and it’s potential futures.

Offer A. You have $35K extra in your pocket and you feel like a rockstar, you were only making $70K a year in your job before this. Your surprised to learn how much more goes to taxes now that you make more money. You briefly consider voting Republican next election. Work is initially great, it’s low stress and you’re maintaining a legacy product. PHP is new to you but it’s primarily what’s used on your platform so you learn it quickly and begin to forget the little TypeScript you learned while doing interview prep. Your manager never bothered to learn git so you just work out of a shared folder in Dropbox. When it’s time to deploy, you copy-paste the code to a CMS and it goes live on the site. You get bored about a year and a half after starting. Upon starting interviews for new jobs, you realize nobody gives a s••• that you know PHP and one interviewer audibly chuckled at you when you mentioned that you use Dropbox for version management. You will now have to spend 20-30 hours outside of your full time job to learn these things, or accept that you will work low-paying, crappy software jobs for the rest of your career.

Offer B. You don’t feel much better off than when you were making 70K before this. Work is intense. They pretty much toss a laptop at you on day one and tell you to get your local dev environment set up by end of day. A mid-level dev who is supposed to be your “onboarding buddy” helps you intermittently but keeps getting pulled into meetings. After bombarding Google with queries all day you manage to get your dev environment up and running by 7PM. You’re dog tired but you now know like ten things about Ruby on Rails and yarn that you didn’t when you woke up this morning. Four months into the job, there’s an intellectual debate between the two lead devs in your department where somehow it’s eventually decided that you’ll rebuild the entire application in Golang and NextJS. F••• , you just started to feel competent in Ruby. You ramp up quick to help with the migration effort and your team pulls the project off in about three months. Shortly after your two year work anniversary you decide that you need to work somewhere with a bit more structure. You get offers from three FAANG companies and one unicorn startup because you have worn so many hats over the past two years. You are well rounded, you are starting to get a sense of what “good software development” looks like and hiring managers aren’t terrified that you’re going to come in and f••• up the good thing that they have going like that one applicant that thought Dropbox was a version management system.

The choice is yours. FWIW I know the details because I’ve accepted each type of offer. I don’t like to think of life experiences in terms of write-offs, but Offer A was a “scared straight” scenario for me about how s••••• software development culture could be. No, we didn’t actually use Dropbox, we used a network hard drive to save all of our code to 🤣.

I recently removed social share links from my site. If you enjoyed what you read, please take the time to tell one person directly about this blog.