Software engineering salaries come from one of 3 budgets. Which budget pays your salary shapes your day-to-day and influences your career trajectory.
I think this is like a business law of physics. Nobody needs to make a conscious choice for the pattern to emerge.
The 3 budgets are:
- sales/marketing
- research and development
- maintenance
This framing can be useful when thinking about your career vision and positioning statement. I thought of it while reflecting on why some opportunities make my subconscious scream even if they sound good on paper.
Sales/marketing budget
When you belong to the growth org, your results are easy to quantify and measure. You do a thing and number goes up.
These are your growth engineers, sales engineers, devrels, etc. Folk who make sure existing products get sold, people know about their features, and buyers adopt your tools into their workflows.
The budget wants immediate impact.
This can be good. Measurable impact means you always know your ROI, you're close to the money, and your work directly makes money. Yay!
But when you're easy to measure, you're also easy to compare. This invites stack ranking employees and creating internally competitive cultures. Joe vs Jane instead of Joe and Jane vs the problem.
The work tends to be short-term focused. You're chasing the next experiment, client, or marketing fad. Like running on a treadmill.
You're only as good as the multiplier a company gets on pouring money into your bucket. This can lead to a revolving door effect as companies seek to optimize.
Research and development
Research and development (R&D) employs the most engineers. Usually under the umbrella of a product org. Larger companies may have actual research and science orgs.
These are your product engineers, researchers, architects, etc. People who build what your company sells or explore what your company might sell, if it works.
The budget wants growth over time.
This leads to a calmer environment. You're looking to balance retention and features that attract new people. Sometimes you dip towards growth and build features that improve activation (users going from signup to active use). Or you can dip towards research and explore new product lines.
Companies with proper research departments have folks working on ideas that won't be productized for years.
This is really 2 budgets in a trench-coat. Development is different from research. But the commonality is a focus on long-term results.
The shortest period you care about is a quarter. Your work is meant to become an asset and provide value for years to come. Any shorter experiments are meant as stepping stones.
Your work is harder to measure, but the company sees you as an investment. You build what they're selling and the better the product the better the sales and retention.
Maintenance
Maintenance has largely been subsumed by development. That's because of what this budget wants βΒ cost optimization.
These are your sysadmins, folks keeping old systems running, sometimes platform engineers. The company sees this work as pure cost and wants to minimize.
You'll see this role smeared into product development at many, if not most, companies. Unvalued work that someone will do when they get annoyed enough.
Companies hate this budget so much they'll even try to convince you that having time for NFR work (non-functional requirements) is a special treat for engineers. "We give you a generous 2 days every sprint to take care of shit that's annoying! Why aren't you happy!??"
π
Building internal tools can fall into this category. That unloved admin dashboard that runs the company but never quite gets priority.
Why this matters
Which budget your work belongs to shapes your day-to-day. Growth is measurable and churny. Research is chill and fuzzy. Development is valued and builds over time. Maintenance is always on the chopping block.
~Swizec
Continue reading about The 3 budgets
Semantically similar articles hand-picked by GPT-4
- The Buxton Index β why some are hard to work with
- Own your career like an expert
- Why engineers are worth so much
- What if engineers were paid like athletes
- Are you the engineer who scoffs at high salary numbers?
Become a *true* Senior Engineer
Get promoted, earn a bigger salary, work for top companies
Getting that senior title is easy. Just stick around. Being a true senior takes a new way of thinking. Do you have it?
The Senior Minset email crash course
Get a free chapter from the Senior Engineer Mindset book and a sample audiobook chapter, followed by a Senior Mindset 101 email course.
You'll get insights to apply at your work right away.
Have a burning question that you think I can answer? Hit me up on twitter and I'll do my best.
Who am I and who do I help? I'm Swizec Teller and I turn coders into engineers with "Raw and honest from the heart!" writing. No bullshit. Real insights into the career and skills of a modern software engineer.
Want to become a true senior engineer? Take ownership, have autonomy, and be a force multiplier on your team. The Senior Engineer Mindset ebook can help π swizec.com/senior-mindset. These are the shifts in mindset that unlocked my career.
Curious about Serverless and the modern backend? Check out Serverless Handbook, for frontend engineers π ServerlessHandbook.dev
Want to Stop copy pasting D3 examples and create data visualizations of your own? Learn how to build scalable dataviz React components your whole team can understand with React for Data Visualization
Want to get my best emails on JavaScript, React, Serverless, Fullstack Web, or Indie Hacking? Check out swizec.com/collections
Did someone amazing share this letter with you? Wonderful! You can sign up for my weekly letters for software engineers on their path to greatness, here: swizec.com/blog
Want to brush up on your modern JavaScript syntax? Check out my interactive cheatsheet: es6cheatsheet.com
By the way, just in case no one has told you it yet today: I love and appreciate you for who you are β€οΈ