Earlier quoted context omitted.
Just "don't bitch" period.
other than avoiding hurting people's feelings. why not? (honestly asking) bad code should be called out. It's reasonable to feel frustrated by bad to terrible decisions that your predecessors made and left you to clean up the consequences of. when a group of people is presented with a shitty situation verbally commiserating with your co-sufferers is a form of group therapy. Yes, it has to be tempered with hope and hu…
Ask HN: What do top engineers you know do that others don't?
121–130 of 155 posts
Re: Ask HN: What do top engineers you know do that others don't?
#122Earlier quoted context omitted.
There’s an old story about a Marine left alone in a room with two bowling balls for thirty minutes. At the end of the thirty minutes one bowling ball was in a bunch of little pieces scattered all over the room and the other one was pregnant.
In the Marine's defense, there was no bowling alley.
Re: Ask HN: What do top engineers you know do that others don't?
#123The #1 trait is they will dig until they fully understand the problem. When writing code if the first draft Is not good they will rearchitect until it makes cohesive sense. Time spent getting it right the first time saves significantly more time than dealing with the fallout of not doing the right thing.
So many people stop when it works, without understanding why it works. Or not caring how ugly it is. They have no long-term perspective about the future cost of support - fixing bugs, adding features, or just understanding what was done. When something changes and their snowflake solution breaks, their first reaction is to blame the external change for causing their poor solution to fail. Top engineers don't do this.…
Most work environments train programmers to act that way. I find this is especially the case at workplaces that (sort of) follow scrum and agile. In most of these places, junior to mid-level programmers are given a task to work on that already has an hours estimate on it. Managers like to optimize efficiency and programmer time, so that estimate is always tight. Asking why we're doing this task is rarely received well and the tight time estimate means there's barely time to make the change work in the first place, let alone understand why it works.
We're literally training our devs not to be top devs.
Re: Ask HN: What do top engineers you know do that others don't?
#124Re: Ask HN: What do top engineers you know do that others don't?
#125Re: Ask HN: What do top engineers you know do that others don't?
#126Earlier quoted context omitted.
> 1. Don't bitch about legacy software Bitching about legacy software is often necessary if you want something to change: pay off technical debt, additional time, migrate third party software to a newer version.
Agreed. I've spent most of my career cleaning up other people's messes. Bitching about legacy software a) makes it clear that the prior practices are not acceptable and can't continue (no tests, ignoring edge cases, ignoring users, all the standard stuff that makes up legacy code) b) helps keep you sane. The difference, which I hope the original author was alluding to, is that experienced dev accepts that legacy soft…
Re: Ask HN: What do top engineers you know do that others don't?
#127Earlier quoted context omitted.
Just "don't bitch" period.
other than avoiding hurting people's feelings. why not? (honestly asking) bad code should be called out. It's reasonable to feel frustrated by bad to terrible decisions that your predecessors made and left you to clean up the consequences of. when a group of people is presented with a shitty situation verbally commiserating with your co-sufferers is a form of group therapy. Yes, it has to be tempered with hope and hu…
Re: Ask HN: What do top engineers you know do that others don't?
#128Earlier quoted context omitted.
Many things are not testable. Not sure I'd use that as a reason to judge someone down. In fact all the most productive teams I've worked on or with, don't have anywhere near full test coverage. The best had none in fact.
What were they building, a todo app?
In fact I can think of at least 10 sites in the alexa top 100 that don't have any tests.
Re: Ask HN: What do top engineers you know do that others don't?
#129Earlier quoted context omitted.
Many things are not testable. Not sure I'd use that as a reason to judge someone down. In fact all the most productive teams I've worked on or with, don't have anywhere near full test coverage. The best had none in fact.
It isn't about test coverage, it's about feature completeness. For eg. One feature require backend & frontend work, after a week of work engineer says that this is done. So you ask him to demo, and it turns out he is doing a backend demo with some dev tools. From a product perspective nothing has changed. Top engineers understand, that no one cares that only one part is working, they know the end user and will not bo…
Re: Ask HN: What do top engineers you know do that others don't?
#130* Better googling. Time-restricted, url restricted, site restricted searches. Search with the variant parts of error messages removed. * Read the source of upstream dependencies. Fix or fork them if needed. * They're better at finding forks with solutions and gleaning hints from semi-related issues. * Formulate more creative hypothesis when obvious lines of investigation run out. The best don't give up. * Dig in to p…
> Dig in to problems with more angles of investigation Can you elaborate?
A mid-skill engineer might start by trying to diagnose the problem, and usually will get somewhere, but occasionally they'll run out of ideas. They might assume it has to be one of the things they've seen before, but their list is not exhaustive.
A top engineer will start by looking at the big picture and generating hypothesis. They will usually be able to generate more hypothesis and have more ways to test them than less seasoned folks. Often this is because they've seen more things.
For example, off the top of my head, the slowness could be:
- n+1 query problems
- slow remote service calls
- streaming to slow clients
- object allocations
- loops in loops--bad big O
- resource limitation (memory, CPU, IOPS)
- database connection limits
- worker process/thread limit
- frequent cache misses
- noisy neighbor problem
- lack of indexing and data size growth
A top engineer will run through their own list, and for each, they have some ideas on how to check on that item or to rule out what is unlikely. Some of them are trickier than others. The key is they have more angles that they'll know off-hand to follow up on.