Did you know software engineers make $13,000 per year more than software developers on average?1 It’s even more than that (a $22,000 difference) in California.

Same job, right? You build software. Get some specs, build some software, make shit work. But the market clearly believes there’s a difference.

It took 18 months, but I think I finally understand the difference. There’s a binary question you can answer to see if you’re a software engineer or a software developer.

Let’s role-play!

Manager Bob: Our business has a problem. We spend a lot of money on acquiring users, but they drop out of onboarding before their ah-ha moment2. We’ve identified three drop-off points where we lose 50% of our users. Our design and product people came up with a new onboarding flow that aims to fix this problem. It took weeks to design, and we think it’s really good.

You: Uh-oh.

Manager Bob: We tried to reuse old components as much as possible, but the overall onboarding experience is completely new. We also changed some business processes to facilitate these improvements and get rid of unnecessary steps. That might have implications beyond onboarding.

You: Oh yeah, it definitely will. How did you reuse components exactly?

Manager Bob: We used the same semantics as before and tweaked the design to fit our new flow. That’s not hard to build, is it? To be honest, you’ll just have to figure it out anyway. This needs to happen. We can’t keep wasting ad spend like this.

You: Right, yeah. No, we can’t.

Manager Bob: How can we get this out as soon as possible?

I have yet to meet a coder-at-heart who wouldn’t break a sweat in this situation. My initial reaction is always something like “You want to do what? Holy shit.”

You get an amorphous blob of a project. What you do next defines you as an engineer or a developer. If you can take the amorphous blob and turn it into:

  • action steps
  • sub-projects
  • a staggered delivery plan (perhaps)
  • opportunities for work in parallel
  • a clear Thing To Do First™
  • a well-defined Thing That Says You’re Done™

…then you are an engineer. If somebody else has to do that, then you’re a developer.

Or maybe the difference lies in the size of that amorphous blob you can begin with. ?

PS: This is what an engineer looks like per Wikipedia. It’s a shame software engineers don’t get slide rules.

  1. The hard data I have is from salary distributions of engineers/developers/programmers on H1B visas. Here’s a tweetable recap that links to source. I haven’t been able to find hard data for jobs that don’t involve immigration. ↩︎

  2. In UX, the a-ha moment is the first time a user says “A-ha! That’s how this app makes my life better”. Read Kathy Sierra’s Badass book for more. ↩︎

Learned something new? Want to improve your skills?

Join over 10,000 engineers just like you already improving their skills!

Here's how it works 👇

Leave your email and I'll send you an Interactive Modern JavaScript Cheatsheet 📖right away. After that you'll get thoughtfully written emails every week about React, JavaScript, and your career. Lessons learned over my 20 years in the industry working with companies ranging from tiny startups to Fortune5 behemoths.

PS: You should also follow me on twitter 👉 here.
It's where I go to shoot the shit about programming.