Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I once had a PM who told me coding was just a stepping stone to them in their career. I couldn’t understand, I thought they must not have been a “natural” like me.

Fast forward a few years, after taking on more mentorship roles, then staff responsibilities, then slipping into project oversight roles… She was so right. Coding was a great stepping stone.

Several years ago my father got promoted to some leadership role. In our conversation about it, he told me he had asked to get back closer tech, but his boss declined and said tech specialists are a dime a dozen. Technical leadership is very expensive to find though, and once you find one you don’t let them go back to the production line.

I still occasionally answer an SO question or make a few commits on personal pet projects, but lately I’m just as likely to go fishing instead or make edits to OpenStreetMap.

Programming really is a special kind of career. I can’t imagine making it the only one I ever tried though.



> "Several years ago my father got promoted to some leadership role. In our conversation about it, he told me he had asked to get back closer tech, but his boss declined and said tech specialists are a dime a dozen. Technical leadership is very expensive to find though, and once you find one you don’t let them go back to the production line."

Ah, the foundational myth of middle management.


Middle managers are a dime a dozen. However a good technical lead - who can contribute to the engineering team's discussions _and_ lead the team are very very hard to find.


Hot take: I think good middle managers are more rare than good technical leads.

"But my manager sucks!" Yes, probably. Part of the reason managers have a bad reputation is that there are so few good ones, and so many bad or mediocre ones, that most people deal with bad ones their entire career. And, since a good manager looks a lot like leadership material if you squint, the great ones often get Peter Principled into being mediocre bosses.

But when you do find a good manager, you realize they have a very specific skill set that is incredibly rare and difficult to master. They multiply the effectiveness of everyone on their team, including those good technical leads, but also the juniors and seniors.


Really?

IMO there's an awful lot, they just ask for mid 200,000s.


I've met plenty of engineering leaders being paid double that who are not "good at their job."

It's a hard job to do well; it requires you care about technical details but also deal almost exclusively with people. It's a rare person who naturally fits into the "extrovert engineer" role and corporations are shitty about training those who don't fit yet to practice the right behaviors.

Plus, if engineering is "design with constraints" then you are given the extra restraint of headcount and finances.


Where are these people located and how can I take their jobs.

$400,000k for dev + fun at parties, sign me up


Don't even have to take their jobs. Here's one example[1] from the OP's former employer:

> The base pay range for this role is between $196,000 and $299,000, and your base pay will depend on your skills, qualifications, experience, and location. ... employees are eligible for discretionary restricted stock unit awards, and can purchase stock at a discount if voluntarily participating in the Employee Stock Purchase Plan.

[1]: https://careers.apple.com/en-us/details/200442275/aiml-engin...


Can’t see your link, it just asks me to sign into AppleConnect


Aww jeez, and I cant edit the comment. Here's a working link: https://jobs.apple.com/en-us/details/200442275/aiml-engineer...


Key word is "good" here.


The most important part of your comment is the distinction between 'management' and 'lead'. Leadership is critically important and very hard to find. Ideally you find a leader who doesn't mind managing, though you're getting into unicorn territory.


We are special and unique, that is why we were chosen not them.


I'm guessing the same story was told 600 years ago in Spain:

"My father, an Inquisitor himself, told me of the time when the Grand Inquisitor promoted him. Ordinary priests are a dime a dozen, the great man said, but it takes special skill to be an Inquisitor. And that's why you never let them go back to the pulpit when you do find a good one."


I’m not sure I follow the analogy here, are you implying technical leadership is committing heinous crimes against humanity?


It’s a joke on the original anecdote’s timeless formula of double-filtered appeal to patriarchal authority (the father relaying the wisdom of the boss to the son).


Isn't there a matriarchal equivalency anyway? I always see this sort of comparison made. Any sort of -archy society seems like it'll go to shit.


Or cleansing Christendom of its heresy? Or showing in the wrong sketch, quite contrary to expectations.


No one expects the Spanish Inquisition


Nobody expects the technical inquisition!


I suppose that takes us back to "Beware of the Believers"

https://www.youtube.com/watch?v=eaGgpGLxLQw


> Technical leadership is very expensive to find though, and once you find one you don’t let them go back to the production line.

I have a friend at our company who is a gifted programmer. He was moved into a management position. He discovered that he hated working in a leadership position. He tried to get them to move him back to an individual contributor position. They refused. He said, move me back or I quit. It took them more than a year to transition him back to an individual contributor role. That was a few years ago and he has been happily plugging along ever since. He says that even after he transitioned back, they kept coming to him to get his opinion on issues, the only way he got them to stop was to completely refuse to respond.


I feel it's completely acceptable to wish to stay in an IC position, but to refuse outright to give advise or share the experience (it's hard to tell from your short paragraph) seems... odd?

It's acceptable to want to stay in a specific role, but I am not certain I feel it's acceptable to eschew an increasing responsibility or mentoring role as you gain experience. That way lies the "genius programmer that works alone and writes code no one else wunderstands".


Saying “no” is the correct answer.

It’s the same as not solving chat request bypassing prioritization.

The company is full of incentives to ask that guy for guidance/things, if he doesn’t say no most or all of the time, he simply won’t have time for his IC role, and would remain a lead just not in name.

It’s hard that it comes to that extreme measure, but if his requests aren’t being heard, it’s either that or leaving. The company has to let him be an IC or explicitly tell him that he can’t stay there as IC, are at least negotiate some timme allocation for those requests and log them


Another simple trick if you don't like saying "no": become a freelancer.

It will never ever occur to anybody in the company that a freelance software dev could possibly be put into a management role, so they won't ask. As opposed to an employed software dev.

Bonus if you're in the EU/UK: in most countries in the EU this will even lead to tax breaks and higher before-tax hourly rates. To the point that you'll make (way) more than your "higher"-up(s).


> It will never ever occur to anybody in the company that a freelance software dev could possibly be put into a management role...

If by "freelancer" you mean "contractor", then this statement is false. I had worked at multiple places in the UK where this happened, I suppose mostly because paying these people a salary would have required an disproportionate amount of money (as opposed to a standard daily rate) - UK taxes are very high in the top bracket.

If by "freelancer" you mean a real freelancer (the guy who has multiple short gigs at the same time, and needs to be constantly on the lookout for new opportunities) then that is already half of a management position, even if you don't have anyone reporting for you.

It is true though that as a contractor one can reasonably easily avoid management duties, and enjoy not having to worry about company politics. The downside is that it is easy to end up in a place where you have to accept that comparably junior people dictate architecture and some tech decisions which you discarded 10 years ago as ineffective, stupid, fad, or all of the above (TDD being a typical example). The upside is that your time at each place is limited anyway, and there is always something to learn...


>TDD being a typical example

Shots fired! I love tests, but I mostly agree with you. The whole idea of 'write your tests first' is great if everything is precisely defined. I find it odd I haven't seen more pragmatism around unit testing in the blogosphere. It's TDD or death out there.


Where not everything is precisely defined but "you know the right outcome when you see it" is where I think snapshot test driven development really shines:

https://hitchdev.com/hitchstory/approach/snapshot-test-drive...

E.g. "define API call -> don't define API response -> write the code that spits out the correct response -> auto-rewrite the test according to the response and commit".


> Bonus if you're in the EU/UK: in most countries in the EU this will even lead to tax breaks and higher before-tax hourly rates.

Having been a contractor in the UK for 5 years, I don't think this is true. Between VAT, Company and Dividend tax, the taxman (HMRC) always gets his share.


I think it's one thing to push back on repeated requests for your input/opinion outside of your role in a way that makes you a "de facto" leader. But I think it's wholly another if you're the person with the best insight, and there is need for your knowledge to be shared. Coders are knowledge workers, not widget makers - they're paid for what they know and can do with that knowledge. This doesn't need to mean you become a manager, join committees, get added to ever-increasing cross-functional project teams.


> But I think it's wholly another if you're the person with the best insight, and there is need for your knowledge to be shared.

But what if you whole day is doing just that? and you just want to spend some time writing some code? Companies are always in need of people to write the code, so there will always be other jobs, obviously it won't pay as much, but self fulfillment is important.

I'm with you, the trade is about theory building, removing ambiguity from requirements, and the update of these, code is just a tool. Still it fells nice building something, it feels nice to see something you build working in prod / to customers. Once base needs are met, it's fine for people to not want more responsibility than necessary.


> , but to refuse outright to give advise or share the experience

I think there's mentoring and leadership. These are different. I sure can mentor and help people to better think/program but don't ask me to push a team to meet a deadline they don't want to meet because they warned the marketing department 2 months before that they wouldn't do it. Been there, done that. Once in that position, you're pushing people, you become the bad guy and you have to explain that it's "for the good of the company, because they have to see the big picture, etc", IOW "screw you, I'm the boss". For that you need to be crazy enough to think that what you want is more important than what other humans-like-you are. OK, leadership is not always that and most often, you have to gather enough trust from your team so that from time to time, you can be a pusher. But if you don't have trust and you are always pushed to push, well, welcome to hell, and say goodbye to your health.

It's very different than "let's work together to find the best possible way to solve a problem, taking all the necessary time to produce something reliable".


> I feel it's completely acceptable to wish to stay in an IC position, but to refuse outright to give advise or share the experience (it's hard to tell from your short paragraph) seems... odd?

I think it depends on how much time they expected him to take out of his days. My girlfriend resigned from a job after becoming a go-to person for everything and everyone. It caused her to not have time for her own work, effectively being way underpaid, and being stressed all the time.


Yes, this happens. If one behaves like a pleasant, helpful individual (as one should!), it's a risk. There are only so many hours in the day!

My advice for any such person is to find a way to redirect questions to other capable people (when you're overloaded), or to reframe answers to be more educational. I'm not perfect at it but I'm trying.

Some helpful tips:

- If you're going to give someone instruction, ask them to share their screen while you walk them through the steps. They are far more likely to remember it this way.

- Avoid short answers. Be annoyingly informative when appropriate. Yes, I'm happy to tell you about XYZ but not without giving you way more than you bargained for!

Consider these scenarios. In each scenario, which option would you pick?

A: Look at my notes and figure it out for myself OR get an answer from Annie in 5 seconds

B: Look at my notes and figure it out for myself OR be accosted by Annie for a 30-minute video call where I'm asked to screen share my way through the steps

I think B is more likely to produce self-reliant teammates.


It can be explained by social anxiety issues, as these people typically prefer to sit in a corner coding and be left alone. Probably a self-reinforcing condition that's difficult to get out of. Just one example I can think of.


This is how toxic middle management is born. Management is not seen as a skill of its own but as a title that obviously everyone should strive for.

Also, "acceptable"? By whom? Why should I care what they think? I want to be engineering software. If they don't like that, they can either deal with it or let me go. Good thing there's plenty of developer jobs as well as corporate bozos to take the coveted management positions.


Rule of thumb is the worse an engineer is the sooner they try to make a dash into management or other non-coding role. Doing the job you're not cut for is incredibly stressful and humiliating.

It is important though to not compensate for the humiliation with smugness to those who are good at their job.


It happens before entering the workforce too. I can't tell you how many of my classmates left the EE department for the business school riiiight around the time when circuit parameters went from being scalars to vectors


A cost of bad technical leadership is making it look like all talent is the same.


wouldn't leadership value leadership? us vs them mentality? There are software eng at my company who are much much more valuable than some of the leadership


or you're probably not that good programmer...?


Or they are better at both then you, but value different things.

Who can tell?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: