The Principal Developer
sizovs.net
sizovs.net
If you want business oriented developers, you need to change your company's culture.
I have once been asked to work towards becoming one. I was asking for a salary augmentation after I had just doubled my workload during the previous year. I had upgraded to doing both front-end and back-end. My CTO told me that no matter how good at coding I would become, that's not what generates money and unless my value increased my salary wouldn't move.
He wanted me to become a better mentor, to be better at juggling budgets and at dealing with clients.
He also tracked my time to the minute and I wasn't allowed to do anything but code. Taking an hour to think about a problem before tackling it was frowned upon.
They will never promote any developer into that position, their company culture is the opposite of that.
I ended up leaving and found a nice company that actually rewards productivity and allows people to breath between tasks.
On the other hand, I do think that not every developer is meant for that kind of work, there are lots of developers that think only about coding...
How does being a better mentor "generate money"? If your workload "doubled", that means you were doing the work of 2 people, no? (or similar). it doesn't generate money, but that saves money they might otherwise have spent.
Unless "dealing with clients" means "getting them to spend more money", "dealing with clients" doesn't generate more money (and... depending on how its done, can be a financial loss).
On "taking an hour... before tackling..." - that hour is tackling the problem, no? Just with a "code after it's been thought about some" approach, but it's tackling it all the same.
> If you want business oriented developers, you need to change your company's culture.
Woah, so true. I'm inclined to say that unless tech leadership (CTO, engineering directors, etc.) specifically work setup training and mentoring programs to help engineers move up the ranks, then any sort of technical career track is just useful fiction for recruiting and nothing more.
Likewise, if you want people to take initiative outside of the scope of their current responsibilities, you must provide them slack to do so.
Even if someone is wrong about something, why take joy in their failures or in beating them at something? Wouldn't it be better to take joy in their successes? It's not the point of the article, but it is jarring to me.
You simply cannot define what makes a "senior/principle/lead" engineer. It depends on what the company needs.
If you're building a highly-technical thing (e.g. an OS) then your needs may be entirely different than building something low-tech and customer facing.
Any attempt to say that skill X matters more than Y for promotion (skill/IQ/social-skills/niceness/politics) is necessarily a drastic oversimplification.
Also, the idea that promotions are based on a skills is an absurd pretense. It's as much a function of creating a pretty org-chart as anything. To point - In open-source you may see a project of 3 principles and nobody else. You'd never see this in a company because the org chart doesn't look like a pretty tree.
I would agree that building a highly-technical piece of infrastructure will require a different skill set than building an enterprise-y "forms and reports" style application.
But if you're going to give someone the latitude to decide what kinds of problems they are going to solve (an not merely the latitude on how to solve it) you are going to want some communication skills and some awareness of how those problems relate to the overall goals of the business.
Now I tend to think that even in these higher level positions, technical skill still matters a lot. Architecture Astronauts are a plague and can create unnecessarily complex problems that the senior grunts have to deal with.
However, the importance of "soft skills" does grow as one move's up the ranks.
For me, the biggest take-away was that the CTO had failed to cultivate talented employees for promotion.
1. Develop new technology that can be sold to customers with a wide understanding of the company's business model (engineer + salesperson) This would be different than an application engineer, because the application engineer uses the company's current tech to solve issues.
2. Fix problems in a multi-disciplinary technical pipeline (engineer + manager).
3. Develop new technologies that save engineering or business time on large scale. This could be creating a new process, or a new toolchain for a problem specific domain. It could also be optimizing or re-architecting a very large code base. (engineer ^ 2)
So yeah while moving Jira's from left to right is a good skill to have. The first two require more soft skills, sure, but the last one is really writing more jiras, and communicating to other engineers how to solve a problem. So even it is not free of soft skills.
Too often engineers want it all -they want the responsibility of a new grad coder with the title of an architect.
If you start looking at senior engineering roles in line with the cousins in management or sales you realise you need a much more broad background to reach those top levels.
If “the most successful career path” is defined by financial compensation, it should be no surprise that those techies that also master the broader art of business and management add more value to the organization and are thus compensated accordingly.
Would they be able to replace that very senior distributed systems engineer? Maybe, but more likely it’s a different type of value added to the organization.
In a lot of ways it's better to be a sr. dev or tech lead than middle management. The starting salary at any company is higher, you're more sought after, and you are usually keeping a valuable skill up to date. Where as project managers usually add value through their knowledge of the organization and application which is less transferable. My LinkedIn is peppered with lots of smart and capable project managers who didn't quite make it to upper management(usually because they weren't sharks) so they switched out of software or are stuck at jobs they don't like.
This only works in a relatively small niche, like consulting bodyshop where billable hour is the only metric.
A coder that works on some internal software, database, in infosec, design is not making any money. A game developer who created a beautiful realistic-looking reflection, a web designer that eliminated possibility of XSS attack, an embedded engineer that spent extra week designing FADEC in such a way that race conditions cannot freeze it, how much money did they make?
A single business/mentor oriented senior+ engineer is an unbelievably effective force multiplier. One engineer can then take 2-3 very jr engineers and drive a small cost effective team. Such a team needs little product support given its lead is product oriented, and the technical architecture is unified as more junior engineers follow the leads standards to grow and learn from them.
On top of that in 2-3 years those jr engineers often become exceptionally effective business/tech focused engineers themselves.
Disclaimer: For this to work you need to either be a very small company and/or have a culture that doesnt use the product team/department as a wall between business and tech.
Of course, none of this actually happened. It's just a made up story from some nobody tech influencer. There's a kernel of truth, which is that focus on larger business of objectives are important to keep in mind if you want to have a big impact. But there's a lot of BS wrapped around that kernel in this article.
In Slack or chat today is kind of boring, developers are too obsessed with tools to the level that I wonder these people had done anything useful. No one mentions what kind of apps they build.
Developers or engineers should make more.
Speaking up about things that are wrong in other departments or decisions made by your "superiors"? You're not a team player.
Spending time helping other developers instead of crushing Jira tickets? We need to talk about your performance.
Going outside of your team to coordinate things with the rest of the business? You're cutting the product owner's grass (or interfering with management of some other team).
Discussion here: https://news.ycombinator.com/item?id=19128489