Good friend of mine is on the job hunt, but has come to the realization that he doesn't want to be a VP/engineering manager, he just wants to code. His concern is getting stuck at lower salary ceilings. Any advice I can share back?
One of the best pieces of advice I ever got was from the Dilbert cartoonist. His advice that you can either be in the top 5% at one thing or the top 25% at two things.<p>Most engineers I mentor make the "mistake" of only focusing on being good at "programming". There is nothing wrong with it, but I'd argue that there is a much lower ceiling than if you were an expert at both programming in general and some niche topic.<p>In my case I'd say math is the other leg I specialize in, with market micro structure being a close third.<p>In the general case it could be something like SEO, visual design, or a particular industry like logistics.<p>The other way to make more is to be closer to the money. If you are developing a product then you are considered a cost center, ie a negative on cash flow not a positive. Sales on the other hand is often the canonical example of a boundless upper limit on compensation as they can directly draw a line from incoming revenue to themselves.<p>Don't be a programmer, be an engineer who can solve real world business problems. Even better be able to draw a straight line from your work to incoming revenue!
How low is he worried about?<p>$200k+ (total comp) for an IC isn't rare. Google, Facebook, Netflix, etc. will all get an experienced senior engineer well into that range.
As a full-time employee in the purely technical track, greater responsibility and pay would come through architectural and design roles.<p>If he really just wants to code, the best way to maximize income would just be develop a career as a consultant rather than a staff engineer. The biggest opportunities for writing code for a ton of money are in a few intense roles, usually associated with R&D on a core product. It's not easy to stumble into those opportunities, and if your friend had the skills to go down that path, he'd already know.
It depends how good he is... At a top company, a top "coding" engineer can make a lot of money. But, many people who are not even close to "top" think they are in fact, "top".
There's room between "he just wants to code" and management. Primary skills I'd focus on are learning strong communication skills and understanding the business, and dev-ops.
It can be done but you still have to work hard to achieve this. For example you will have to make a name for yourself outside of your regular work. For example become a Microsoft MVP or similar. Contribute or create projects that are recognised by people in your industry.<p>Effectively you have to become like a well known actor. So that when someone is starting a project ('movie') they want to hire you for it no matter the cost.
In 99% of software engineering positions, the ability to code, above a certain threshold, matters less than your ability to communicate, your domain knowledge, your professionalism, and your ability to ship.<p>If he "just wants to code," he's going to get stuck. If he wants to be a software professional, the sky is the limit for skilled individuals.