Most active commenters
  • strken(3)

←back to thread

492 points storf45 | 16 comments | | HN request time: 0s | source | bottom
Show context
walrushunter ◴[] No.42154141[source]
I'm an engineering manager at a Fortune 500 company. The dumbest engineer on our team left for Netflix. He got a pay raise too.

Our engineers are fucking morons. And this guy was the dumbest of the bunch. If you think Netflix hires top tier talent, you don't know Netflix.

replies(30): >>42154160 #>>42154170 #>>42154176 #>>42154207 #>>42154212 #>>42154215 #>>42154217 #>>42154219 #>>42154225 #>>42154276 #>>42154278 #>>42154295 #>>42154314 #>>42154327 #>>42154373 #>>42154379 #>>42154399 #>>42154413 #>>42154440 #>>42154466 #>>42154547 #>>42154591 #>>42154596 #>>42154612 #>>42154786 #>>42154904 #>>42154925 #>>42155154 #>>42156451 #>>42157645 #
1. Lammy ◴[] No.42154295[source]
I hope to never have a manager who is mentally stack ranking me and my coworkers in terms of perceived dumbness instead of in terms of any positive trait.
replies(4): >>42154339 #>>42154894 #>>42154920 #>>42155176 #
2. geodel ◴[] No.42154339[source]
Btw how do you know your current manager is not doing that.
replies(1): >>42154348 #
3. Lammy ◴[] No.42154348[source]
I don't. That's why I said hope :)
replies(1): >>42154436 #
4. ohyes ◴[] No.42154436{3}[source]
You’ll know when he ends every meeting with “dummies, get back to work”
5. bryanrasmussen ◴[] No.42154894[source]
dumbness is ranking intelligence, which is a positive trait, dumbness is just a metric for how often intelligence fails.

Example - the manager who started this sub-thread may be a pretty smart guy and able to accurately rate the intelligence of the engineers at his organization - but he had a minor momentary failing of intelligence to post on HN calling those engineers fucking morons.

You've got to rank how often the intelligence fails in someone to be able to figure out how reliable their intelligence is.

6. JamesBarney ◴[] No.42154920[source]
Almost everyone I know manager or not is usually ranking everyone they work with on various attributes.

In fact it would be incredibly weird to ask a close friend who at their work kicks ass and who sucks and have them respond back, "I've never really thought about how good any of my coworkers were at their jobs"

replies(1): >>42160643 #
7. strken ◴[] No.42155176[source]
I'm not a manager and I don't stack rank people, but I am 100% capable of knowing when one of my co-workers or predecessors is a fucking moron.

The trick is to use my massive brain to root cause several significant outages, discover that most of them originate in code written by the same employee, and notice that said employee liked to write things like

    // @ts-nocheck
    // obligatory disabling of typescript: static typing is hard, so why bother with it?
    async function upsertWidget() {
      try {
        // await api.doSomeOtherThings({ ... })
        // 20 line block of commented-out useless code
        // pretend this went on much longer
        let result = await api.createWidget({ a, b, c })
        if (!result.ok) {
           result = await api.createWidget({ a, b }) // retries for days! except with different args, how fun
           if (!result.ok) {
             result = await api.updateWidget({ a, b, c }) // oh wait, this time we're updating
           }
        }
        // notice that api.updateWidget() can fail silently
        // also, the three function calls can each return different data, I sure am glad we disabled typescript
        return result
      } catch (error) {
        return error // I sure do love this pattern of returning errors and then not checking whether the result was an error or the intended object 
      }
    }

    function doSomething() {
      const widget = await upsertWidget()
    }
...except even worse, because instead of createWidget the name was something far less descriptive, the nesting was deeper and involved loops, there were random assignments that made no goddamn sense, and the API calls just went to an unnecessary microservice that was only called from here and which literally just passed the data through to a third party with minor changes. Those minor changes resulted in an internal API that was actually worse than the unmodified third party API.

I am so tired of these people. I am not a 10x rockstar engineer and not without flaws, but they are just so awful and draining, and they never seem to get caught in time to stop them ruining perfectly fine companies. Every try>catch>return is like an icy cat hand from the grave reaching up to knock my coffee off my desk.

replies(2): >>42155266 #>>42156551 #
8. spike021 ◴[] No.42155266[source]
Isn't that a problem with your code review process? Why is that person's code making it to production?

So again, maybe they're a bad employee but it seems like nothing's done to even try and minimize the risks they present.

replies(2): >>42155367 #>>42155799 #
9. krysp ◴[] No.42155367{3}[source]
There's a disincentive to actively block PRs if you don't want your coworkers to think you are a bad colleague / not on their side. So you often see suboptimal code making its way to production. This has a worse effect the more terrible engineers there are.
replies(2): >>42155433 #>>42156064 #
10. spike021 ◴[] No.42155433{4}[source]
Except in this case it's clearly affecting at minimum the rest of OP's team.

At that point it's not one person being obnoxious and never approving their team members diffs and more of a team effort to do so.

But at minimum if you have a culture of trying to improve your codebase you'll inevitably set up tests, ci/cd with checks, etc. before any code can be deployed. Which should really take any weight of responsibility out of any one member of the team. Whether trying to put out code or reject said code.

11. strken ◴[] No.42155799{3}[source]
In this specific case, the fucking moron in question was the one who designed the code review process and hired the other engineers, and it took place a significant length of time before my involvement.

Which, yes, does raise interesting questions about how someone who can't be trusted to handle errors in an API call ended up in a senior enough position to do that.

12. mathgeek ◴[] No.42156064{4}[source]
Turning this into an incentive that everyone values is a signal that a team has a great culture.
13. fragmede ◴[] No.42156551[source]
I dunno, I've gone and done a "git blame" to find out who the fucking moron that wrote the code was, only to find out it was me three years ago.

Sure, there's such a thing as stupid code, but without knowing the whole context under which a bit of code was produced, unless it's utterly moronic, (which is entirely possible, dailywtf has some shiners), it's hard to really judge it. Hindsight, as applied to code, is 2020.

replies(1): >>42159201 #
14. strken ◴[] No.42159201{3}[source]
I agree with the general sentiment ("one instance of bad code might have been me") but not the specific sentiment ("I could easily decide to catch and ignore errors through every bit of code I worked on without knowing why that was bad, and commit other, similar crimes against good taste in the same way").

The difference for me is that this is pervasive. Yes, sometimes I might write code with a bug in error handling at 3am when I'm trying to bring a service back up, but I don't do it consistently across all the code that I touch.

I accept that the scope is hard to understand without having worked on a codebase which a genuine fucking moron has also touched. "Oh strken," you might say, "surely it can't be that bad." Yes, it can. I have never seen anything like this before. It's like the difference between a house that hasn't been cleaned in a week and a hoarder's house. If I tried to explain what hoarding is, well, maybe you'd reply that sometimes you don't do the dishes every day or mop the floor every week, and then I'd have to explain that the kitchen I'm talking about is filled from floor to roof with dirty dishes and discarded wrappers, including meat trays, and smells like a dead possum.

replies(1): >>42159642 #
15. fragmede ◴[] No.42159642{4}[source]
Hey, that possum's name was Roger and I'm really sad that it died. I've been feeding it for weeks! There are definitely bad programmers out there who's code is only suitable for public shaming via the daily wtf.
16. whstl ◴[] No.42160643[source]
I am a manager and I don't mentally stack rank my reports.

That's not out of respect or anything, but because they're all good. I hired and mentored them, and they all passed probation.

Sure there are junior devs who are just starting, but they're getting paid less, so they're pulling their weight proportionately. They're not worse.