7 ms·
I think you're an above average developer working at a below average company. This could be the root of all your problems. Nothing is more frustrating than work
by ctvo 4y ago
I think you're an above average developer working at a below average company. This could be the root of all your problems. Nothing is more frustrating than working with peers you know aren't carrying their weight.
Do you want to be an engineering leader? This is what you are, regardless of your official title at your company. Engineering leaders are judged by how much better they make everyone else. You may hear the term force multiplier used. Say you are really a 10x engineer, how much more effective are you if you could improve the efficiency of 350 developers by 10%? Mentor, teach, help establish culture, make systemic changes to help your peers become more effective.
Regardless, I think you're a bad fit for your current company and its culture. And yes, many of us have worked in environments, like a startup, where we knew we were critical to success. Fail to deliver and a funding round wouldn't go through and people would lose their jobs. It's stressful, but I hope you're adequately compensated.
- 100011_100001 4y agoThe pivot I have been debating is to become a Lead Development Manager with the express purpose of enabling everyone else, removing obstacles, creating better processes etc. My problem is that I love code much more than talking to people all day. I have been mentoring Jr Devs for a while now in an official capacity which helps. I like the idea of "make systemic changes to help your peers become more effective". So that's something I will have to think about.
- spullara 4y agoDon't do it.
- e40 4y agoHonestly, your impact will be greater if you become a development lead. I know this because I've watched it happen many times, not because I'm one. I've had lead developers report to me and good ones can really have a great impact. The tooling, procedures, technical debt, etc. All will be positively impacted by someone like you.
- nrmitchi 4y agoThis is also a common theme in a lot of "Platform Engineering" style roles (but not all of them, because it's an overloaded term). The output of your actual code is systems to empower others, and paving the "clean path". Support and education is also a very common piece of success.
- phkahler 4y agoGet involved in the hiring process. You should be able to screen candidates well and if the company really is full of sub-par developers (doubt it but maybe) you will bring that up a bit. If you need tips on interviewing shoot me an email (same ID at g mail) it's easy for a good engineer once you know what to look for and how. BTW that's not isolation you're feeling. It's responsibility, respect, and frustration. You didn't ask for the first two, you earned them.
- dawwido 4y agoHey, could you please share publicly your tips on interviewing and spotting good engineer? Thank you. It would make a valuable HN post on it's own
- webmaven 4y agoNote that in my experience, heuristics for spotting good engineers tend not to work unless you yourself are a good engineer. You don'tnecessarily have to be the same kind of good, though that's obviously the least effort, and tends to overemphasize other points of similarity that are conflated with the "goodness". Specialists and Generalists tend not to respect each other, for example. Folks with CS degrees and autodidacts likewise (though both can have impostor syndrome comparing themselves to the other). There are also three personality types (or cultural types) suited to different maturity stages of the system being worked on (which also implies different processes, BTW): Pioneers, Settlers, and Town Planners[0][1]. Many businesses tend to collect one or two of the three types. Pioneers+Settlers is viable, as is Settlers+Town Planners. Orgs that only have Pioneers+Town Planners tend to have interesting pilot programs that never get successfully rolled out. [0] https://blog.gardeviance.org/2015/03/on-pioneers-settlers-town-planners-and.html https://blog.gardeviance.org/2015/03/on-pioneers-settlers-to... [1] https://swardley.medium.com/what-culture-is-right-for-you-ba892f1f3bc5 https://swardley.medium.com/what-culture-is-right-for-you-ba...
- omarhaneef 4y agoIf you want to just code, just code. I accept you're a gifted coder, and that you're better than your peers. Good, then do exactly that. Being good at mentoring people is only vaguely correlated with being good at code. IMHO, the main factor that will make you good at something is caring about it, and if you don't want to talk to people you'll waste your skills. There is someone out there who would love to talk to people, worry about their development, figure out how to best use your skills and so forth. Let them do it.
- leaflets2 4y ago> There is someone out there who would love to ... Let them do it It seems to me, though, that OP vastly much better at that, than the others available. And that his co-workers have noticed this too.
- lumost 4y agosounds like a good time to work on a harder problem :) OP is crushing it on their product. Given the OPs description, we can also infer that the OP works somewhere that commits correlate with output well. A few interesting questions that come to mind. 1 - Does OP feel like they are doing the same things over and over again? 2 - Does OP want to work with better/more skilled engineers? 3 - Is OP setting the technical direction? Do they want to? Being the top coder by commits in a group of 350 is a super power, however many "Hard" software problems are resistant to code throughput as a fix. There are extremely difficult software problems that take years to produce the ~1k line solution.
- netghost 4y agoHaving been at times a manager and other times and IC, there are some great opportunities in each role, and it really depends on your organization. If you haven't read it, "Staff Engineer" outlines some of the ways more experienced engineers continue to grow and provide value without becoming managers. I'd say the first half of it is worth a read to see if it sparks anything for you. I will say that it gets lonelier as you go along either track. Reach out to peers if you have any. If not, try to reach out to folks outside of engineering. It's a tricky path, and I wish you the best.
- twelve40 4y agoJust move to a more intense company, or internal group, or a startup. I'm not familiar with how good you are, or your company, but I can almost guarantee there is a lot of stuff out there much more intense than the current place. And you can totally remain an IC if that's what you like.
- thisisbrians 4y agoMaybe consider a Staff Engineer type role at an established and well-respected firm? Still mostly IC if you can land the right role, I think, but more focused on the meta stuff that enabled the whole team like tools and automation. Would love input from others as I've not actually worked in such a role before.
- scarface74 4y agoThis is the same attitude I see on Reddit. Just because someone is a top performer at a no name enterprise corp dev shop doesn’t translate to tech companies and no offense is intended. I spent my entire career until I was 46 two years ago at no name enterprise dev shops.
- bigbizisverywyz 4y ago+1 to your comment. I suspect they are feeling stressed because they're the main goto person on the product, and with enough random bobble heads running around trying to commit sacrilege on your codebase it quickly becomes a problem of control to maintain the quality you've so strongly instilled vs allowing the product to progress. Their best path to get out of this bind I'd say is to slowly try to make themselves redundant on that product, choose a victim dev to be your successor and gradually disengage. Possibly a new product or project will be started and then they're free to get involved in that instead. Also learn how to interview new candidates and get involved at that level, getting good (even better than you) coworkers is a great way to influence the whole company culture and make your work life much more pleasant.
- ASalazarMX 4y agoTo be fair, OP's speed of progress involved aptitude and diligence, even if you discard smarts. It's true that when you work five years at a code base, you probably become an authority in it because at some point it is yours too, but I've known developers who would never achieve that state. That being said, tech megacorps are stressful environments, and OP looks like he has his plate full just accepting that he's become the de-facto lead developer. OP built his own niche market, why not dial it back a bit from eleven and learn to enjoy it?
- icedchai 4y agoIf you do that, you may never write another line of code again (especially in a large organization.) I like mentorship, helping people figure stuff out, giving technical advice etc. I don't like going to zoom meetings all day, which is what "leadership" in today's modern world has become.
- rapind 4y agoFor a non “Valley” perspective, your work situation sounds fine TBH. You are already the defacto dev lead (making it official could mean meetings). Hobbies, sports, instruments, hell even a book club. Get social outside of work. Treat it the same as you’ve been treating your career (dig in and get good). You’ll find you make friends outside of work, but often at work too, as you may have hobbies in common with others at your job. This will naturally lead to a good work balance, because you may end up wanting to clock out early to get back to your hobby. You’re in a great negotiating position to reduce your hours when that happens.
- sayrer 4y agoGet a job at a big company, like Google or Microsoft etc. There is always someone smarter.
- siculars 4y ago+1
- ASalazarMX 4y agoOTOH, OP is invaluable to his current company. If he's being paid well and manages some balance, this could be a healthier environment than a mega corporation. If you want to balance life and work, small or medium companies are the best, specially with the clout he has.
- manmal 4y agoMaybe you can write software to help make others more efficient, by empowering them to do more by themselves. Give people superpowers they don’t have at other orgs. Things coming to mind: - Code editor plugins (or web or mobile apps) tailored to your org‘s workflows - Language changes in case your org is using an OSS lang - Libraries for often-used functionality - DSLs that let your org‘s PMs encode behavior themselves - Small utility apps (web or mobile) that facilitate more effective communication - Dev tools for your stack, eg if you don’t have hot reloading yet, that’s a huge enabler - Test data generators - You mentioned that you setup automation. Take it a level further and let other devs create scripts by preparing an environment (maybe an IDE) for that
- actionfromafar 4y agoBe careful with the kind of tools that increase abstraction in the code base itself. It can easily tip into a situation where it will have to be all ripped out when the OP leaves the company. Or worse, remains as a cargoculted mystery. There are no hard and fast rules, but stuff that increases the productivity of other in a (to them) non-mystical way would be best. It's a judgement call, some of these in the list above made me pause, but the red flags will be specific to each workplace. The keys is to know what others will understand, and that is a super-power in itself.
- naugtur 4y agoI moved from a role similar to what you're describing (spent 7 years there) into a role where I'm the least senior person on the project. And I'm having a great time. It's always possible to find people who are so much ahead of you that you'll need to put effort into just following the conversation with them. And when you do, they're your peers and you're proud to be a 0.9x developer alongside them.
- ashtar 4y agoFrom where you're coming from, I think, your next steps would be thinking "who should work on this" vs. "I'll pick this up because I can do it quickly." If you're not enabling your team to take over your job, you're doing it wrong. And by a comment I saw elsewhere, the tendency to control things is natural, but you should resist that - it's the only way you can scale. If your organization doesn't have that kind of individual contributor leveling, that would be a good conversation to have. Or if your team isn't big enough, maybe its time to look for a new challenge. There will be a learning curve and a mindset shift, but it's really the only way that you truly become a force multiplier. Soon, your commits will go down, but your reviews will go up. Later, your reviews will go down, but your strategy/design/planning docs/conversations will go up. Your job is designing for the 1-3yr future (or more but rare) and across the organization.
- tsss 4y agoOr he just bangs out a ton of crappy code in the name of "pragmatism", while everyone else has to clean up after him and thus takes longer. I've seen this many times.
- andrewmcwatters 4y agoThis could be the case, but we don't know, and it's also helpful to think about this from a charitable perspective.
- 100011_100001 4y agoI prefer this perspective :) Honestly, I have no need for validation. I've just started to feel angst and figured if there is a place where I can get good advice, even if it hurts, it would be HN. From that perspective I have gotten enough good input to make this thread worth it to me.
- 100011_100001 4y agoEh, that is exactly what I don't want. Pretending I am this amazingly productive developer and my code is just trash. I just checked. In 2021, only two defects were created against my specific code changes. If I had to home into a weakness of mine is that sometimes I solve today's problem well, but don't think extensively about how tomorrow's problem in that space might look like. The struggle is between creating simple solutions vs over-engineering for future proofing. I'm pretty sure I'm biased towards simple solutions.
- beardedetim 4y ago> The struggle is between creating simple solutions vs over-engineering for future proofing. I'm pretty sure I'm biased towards simple solutions. I want to encourage you to keep learning about your own biases here but to continue to have that bias as much as possible. I like the term "throw away code" here but I think another way to say it would be that most of the code I write is like a jig for woodworking. I don't need it at the end of the day, it looks like shit, and holds up the real Things while I figure out how those things actually work. Sometimes in code though, I find, that the jig _is good enough for now_ and it's super easy to replace the three that break instead of all 20 I needed to build it.
- omegalulw 4y ago> I think you're an above average developer working at a below average company. This. I'd conjecture that this has led to OP becoming overconfident. I also think that OP should not be a manager. If one dev is doing 70% of the work then that's either bad hiring practices or micromanagement where other team members are not trusted to deliver complex projects.
- texasbigdata 4y agoRe: your second paragraph, what does that have to do with OPs ability (regardless of appropriateness to the firm, his career arch, or the story) to perform as a manager. He/she might be great, normal, or terrible. How can you tell apriori from what they wrote?
- bfung 4y agoOP realizes they do a lot of work, and OP realizes they’re single point of failure/authority at the company. But what steps have OP taken to start decentralizing to mitigate those risks? Someone with the management sense would’ve already started thinking and implementing that and not continue to code moar.
- lowercased 4y ago> But what steps have OP taken to start decentralizing to mitigate those risks? You don't know they haven't already starting thinking/implementing ways to address those risks. And... it may also be that there's not enough political power to make changes substantive enough to address the systemic risk. OP mentioned 300+ developers on a team - that's a large place. There may simply not be the ability to wield enough influence to make real change to reduce this sort of risk across the board. Documenting your own stuff, coming up with some better ways to share knowledge, pairing, etc - that can help reduce some localized risk, but you don't know that they've not done this.
- bfung 4y agoYou’re correct, I don’t know they haven’t tried to mitigate the risks. But post also points to being lonely of sorts and a sense of dispair. As your last paragraph describes, if OP pair programs, does some mentoring, etc, why would they feel lonely and post on the internet instead of chatting it through with the people at the company? If so many people are coming to him/her for things, they def have some implicit power. Not knowing how to constructively use that power also lead to my support of the “don’t be a manager” post (yet). If OP figures out how to scale themself out, then by all means…
- rco8786 4y ago> I think you're an above average developer working at a below average company Nailed it
- notomorrow 4y agoso true. for the self pumping developer
- bspear 4y ago
- dang 4y agoCan you please stop posting that link? You're well over the line into spamming: https://news.ycombinator.com/posts?id=bspear https://news.ycombinator.com/posts?id=bspear https://hn.algolia.com/?dateRange=all&page=0&prefix=true&query=%22topstartups.io%22&sort=byDate&type=comment https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que... - so much so that users are emailing us to complain. Normally we'd ban such an account as a spammer, but you've posted about plenty of other things and seem like an obviously legit user, so I thought I'd ask instead.
- ChrisMarshallNY 4y agoI wish you luck, and I can relate. I worked for a famous Japanese imaging corporation for almost 27 years. The pay was meh, the corporate overhead and B. S. was damn near unbearable. But I worked as a peer with some of the finest engineers and scientists in the world, on a daily basis, and we respected each other (but often also wanted to strangle each other). I was seldom the smartest person in the room (and I’m smarter than the average bear). It was humbling, challenging, and exciting. I became a manager, and hated it. I was a very good manager, but spent my nights and weekends, coding. Since leaving that company, I went straight back to coding, and I’m not as good as I was. I’m way better. I don’t really care whether or not I’m better than anyone else, but I find that I can usually meet any challenges thrown my way[0]. It seems that I picked up some good habits, along the way. These days, most folks in the industry don’t want to have anything to do with me. I’m radioactive. It only took a short time to figure out that no one wants Pops on their team. I won’t go where I’m not wanted. I’m extremely fortunate, in that I can support myself without earning a salary. I sought out people that want to help others, and have been working with them, for free. It’s working for me. I’m not lonely at all, and I’m pretty motivated by the work. [0] https://littlegreenviper.com/miscellany/thats-not-what-ships-are-built-for/ https://littlegreenviper.com/miscellany/thats-not-what-ships...
- unboxingelf 4y agoThis. The company you work for matters tremendously and it sounds like you’re ready to “level up”.
- dclowd9901 4y agoThis. I always had a rule: if I wasn’t learning at a company I either need to switch teams or change companies. It means I outgrew my position. I’ve continually felt challenged as a result with a side effect of lots of types of companies and teams in my background.
- umvi 4y agoThat's what it sounds like to me. Big fish in a little pond. If OP moves to a big pond he'll get a different perspective.