Live data from Hacker News

Ask HN: I'm good at debugging and improving systems

news.ycombinator.com

1–10 of 13 posts

Ask HN: I'm good at debugging and improving systems

#1
Hey HN,

I enjoy debugging and optimizing systems and dare to say that I'm quite good at it. However, I'm generally bad at building things and take a long time to do so, I generally feel bad because of this.

In short, when building something I always feel like I've built something sub-optimal, while after debugging or improving performance of some subsystem I feel like I've accomplished something positive.

I'm thinking about telling my manager how I feel, but I'm not sure if there's a future for me in Software Engineering without the ability to create decent software.

Any recommendations, advice?

Re: Ask HN: I'm good at debugging and improving systems

#4
One, very few real-world projects are totally "greenfield" -- as in, you get to (or in your case, have to) design things from scratch, without legacy code or peer projects/APIs to support. Most of the time you're inheriting someone else's code anyway, so refactoring & optimizing it IS the job, with small improvements along the way.

Two, I think it's totally normal for the first draft of software (or anything, really) to be just barely good enough. Whether you iterate and optimize it or someone else does, the idea is that it can get better over time. Maybe write it, rewrite it, optimize it, test it, further refactor it in a series of commits until you feel it's polished enough to actually PR? It doesn't have to all happen in one single pass. This is the sort of thing you'll probably just naturally get better at over the years, as long learn more and more patterns and algorithms and best practices that you can re-use in subsequent projects.

Three... do you LIKE optimizing existing stuff more than writing new code? If so, you can specifically look for projects (big corps maintaining legacy systems) or positions (test engineers, devops, DB admin, performance engineer, etc.) that focus on that IF that is your preference. But if you LIKE writing new code and just don't think you're that good at it yet, well, just keep doing it and you'll get better! It's a practice like any other.

FWIW, I've always considered myself a mediocre, self-taught dev who's never learned many of the best practices of computer science. I would never call myself an "engineer" because it's way too fancy a title. Still, it's been easier for me to find jobs in this field than any other that I've been in. There's way more demand than supply, for now, so even mediocre devs can build careers for themselves, and in so doing, learn from others along the way (sorry, coworkers, and thanks for the coaching!) Maybe just don't expect to join the FAANGs from the get-go, but get more experience in smaller businesses and tech-adjacent enterprises first?

Re: Ask HN: I'm good at debugging and improving systems

#5
Don't fret, building stuff from scratch is hard: you have a thousand different decisions to make about the code and even just 1 wrong decision can make a codebase a clusterfuck.

But being good at debugging is a good base to learn how to build systems from. You'll see what naming conventions work well or invite confusion, what folder structure and project organization is less confusing, what design patterns lead to the trickiest bugs, etc.

Just keep at it.

Re: Ask HN: I'm good at debugging and improving systems

#6
There is absolutely a need for people who love debugging, fixing, and refactoring. Many devs dislike such things, and many managers struggle to find someone who wants to just maintain existing code vs. create new and shiny projects.

I'd recommend that you seek work in larger companies - they will have better odds of needing a full-time "maintenance" coder vs. smaller companies, startups, or consulting firms.

Re: Ask HN: I'm good at debugging and improving systems

#8
Learn how to build.

It is a skill that requires accepting that design is for users.

Hence it is often a bit boring technically, and requires real discipline. The discipline to focus on who you are building for and why it is being built.

Even worse most making results poor results. And so requires the additional discipline of accepting that most of what you will make will be shitty.

The bright side is occasionally something might be good.

Good luck.

Re: Ask HN: I'm good at debugging and improving systems

#10
Actually most software engineering jobs are about improving and maintaining existing, sometimes old, systems

If you feel not recognized, or too much pressure, maybe you just need to change company

I am exactly the same, I even took notes on that for my next interview

I am very good at debugging, improving systems. And helping people even though sometimes that does get me recognition. Maybe I don't fit, or maybe I should be promoted as manager, or team lead

When creating something new I just get too much indecision. Although I find out if I pair programming with a junior developer actually I think it I am OK

Post reply on HN