I want to start off this article being very clear: I am 100% pro coding bootcamp. I think they are fantastic ideas, and I think they make more sense than getting a computer science degree later in your career. You’d have to pay a truckload and spend 4 years at a traditional university. The bootcamp is faster […]
A buddy of mine, we’ll call him Jim, took a job at software company X a year ago. What followed was unpleasant. He was given a straightforward assignment in the beginning: design and code a new micro service to deal with analytics reporting for their business analysts. The analysts were using multiple Excel spreadsheets at […]
This is a follow up to a post I wrote a couple of years ago: How to Avoid the Software Salary Ceiling.
For better or worse, I didn’t follow my own advice. I unexpectedly got promoted into management, and that’s what I’ve been doing since.
My pay increased by around 30% which was better than any single raise I ever got as an individual contributor. I wrote about management here.
So do I still believe you can avoid the software salary ceiling by specializing?
This is one of those software engineering ideas that I would normally warn you about. So many people use MapReduce that it seems foolhardy to use something else.
But in this case, it turned out well. The project was a success, and we were able to accomplish our goals more quickly and with fewer resources than it would have taken with a MapReduce cluster.
I work on 3d Warehouse for Trimble SketchUp (formerly Google).
One of our focuses over the last year has been analytics – both for our customers and for our own internal use. Most business intelligence providers are expensive – anywhere from 100-500K per year. Even with that price point, it’s still cheaper than engineering time, so that was originally the path we took.
As of February of 2017, I’ve been an engineering manager for a year. I’ve been doing it for long enough to get a feel for it, and now I can start to talk about how being a manager is different from a normal software developer.
Over the last year, my team fluctuated between 7 and 9 people. I have two tech leads who handle a lot of the day to day technical decision making, but the general people management falls on me.
I still try to code a couple of days a week.
I’ve read arguments about how you should stop coding completely, and focus only on the team. I’ve read others saying you shouldn’t stop coding because then your technical ability will atrophy, and you’ll lose respect.
I believe in the latter. I think it’s important to not let your skills atrophy, not only because of respect, but also if you ever need to look for a job as a regular programmer again.
In general, I think companies should have “technical” managers when dealing with software. Someone who used to do programming professionally can call bullshit. If a task is taking way longer than it should, only a technical manager can spot that something is wrong.
Software is unpredictable, and sometimes a project takes 3X as long as you think it will. Only a trained eye can see if that delay is acceptable, or if it’s the result of someone not doing their job or making the wrong decisions.
Let’s go over some of the advantages and challenges of the job of a manager.