Live data from Hacker News

Drunk Post: Things I've Learned as a Sr Engineer

old.reddit.com

161–170 of 510 posts

Re: Drunk Post: Things I've Learned as a Sr Engineer

#161
post #22
post #5

> Good code is code that can be understood by a junior engineer. Great code can be understood by a first year CS freshman. The best code is no code at all. This a thousand times. Having empathy for future devs, maintenance, and bug fixes is so important.

Amen. Something bizarre I have noticed though in junior-almost-senior engineers is that they pride themselves in obfuscating and writing "highly complex" logic, with no documentation. It's almost like they are demonstrating their new abilities in the worst way possible. I have been dealing with one of these engineers recently, and they have expressed to me that they love writing because it's so terse. It's been a poi…

> Something bizarre I have noticed though in junior-almost-senior engineers is that they pride themselves in obfuscating and writing "highly complex" logic, with no documentation

I've noticed this too. One thing I've had mild success with is the concept that a particular programming document (especially in functional programming) is really a series of mini-documents. Each mini-document has function-level comments, a signature, body, and returns that tell part of the story of what that function does. The minute that the collective of those fail me and I find myself reverse engineering code, then we have failed the team and cost the company money.

Some complicated things must be done, especially at the size and scale of our products, but complex things are painted with a fine veneer of interfaces and documentation.

I think another exercise that can help is putting junior engineers front and center to architecture. Whether it's exposing them to review, the review process of a Senior engineers design, or putting them front and center to design implications. I've seen having to figure out the difference between a controller and a service cause some really positive abstract thinking that puts people on the order of thinking for the group rather than their own merits.

Re: Drunk Post: Things I've Learned as a Sr Engineer

#162
post #95

Earlier quoted context omitted.

This assumes you are absolutely certain you know what the code should do. And that it does what you think it does. Hence while you might think “performs its task” is an easily defined I’d disagree. I’d take clear code that wasn’t working over code that was hard to reason about and somehow worked every day.

> I’d take clear code that wasn’t working over code that was hard to reason about and somehow worked every day. Then you'd be out of business.

[deleted]

Re: Drunk Post: Things I've Learned as a Sr Engineer

#163
> front end AND back end AND... AND... AND... AND... AND... AND... Seriously, why are [full stack] webdevs paid so little.

Two reasons: 1. everyone calls themselves this these days, and 2. they are often quite weak in each of those parts of the “full stack”

Re: Drunk Post: Things I've Learned as a Sr Engineer

#164

> When I first started, I was enamored with technology and programming and computer science. I'm over it. This is the saddest. One more soul taken by the shrinking of the hacker culture.

I don't know. Possibly it's simply because when you accept a career in the thing you're passionate about the thing you're passionate about becomes work. Another thought that has occurred to me of late: when I started in this field it was "Computers" (capital "C") — a thing really by nerds, for nerds. Increasingly it's the web, mobile. Our "customers" are increasingly not us and so the decisions that would have come s…

[deleted]

Re: Drunk Post: Things I've Learned as a Sr Engineer

#165

Seriously. Fuck pandas. And fuck dark for encouraging it.

It has one of the more confusing interfaces I've seen, and operator overloading just makes it worse. Numpy, on the other hand, is fairly straightforward and intuitive (and to be fair, a much simpler tool).

Re: Drunk Post: Things I've Learned as a Sr Engineer

#166
> I don't know why full stack webdevs are paid so poorly.

In my experience it’s because they either don’t really know any of the stack well enough to do more than implement someone else’s design, or else they don’t know most of the stack well enough to do even that without very poor, confusing implementations.

I’ll take a backend person and a backend person willing to do front end work before a full stack “dev” any day of the week. And I’d take the full stack dev before a front end one.

Re: Drunk Post: Things I've Learned as a Sr Engineer

#168
post #85

> If I'm awaken at 2am from being on-call for more than once per quarter, then something is seriously wrong and I will either fix it or quit. Sometimes fixing the problem will require special access to Production which you don't have, or even a specific role with that extra bit of initiative. Otherwise i agree 100%.

If you're frequently being paged for stuff you literally can't fix, then the process/monitoring/alerting has broken down somewhere and needs to be fixed. If it can't/won't be fixed, then the company needs to hire ops people whose specific job is to react to and triage system failures -- devs should not be treated as escalation machines. If the process can't be fixed and the company won't hire people to handle the pro…

Very true. I do ops, I'm on call. Calling a developer at 3.00AM is not something I do lightly, it would have to be insanely critical.

Operation, and on-call staff fixes broken systems just enough, that they will work until 8:00AM when the developer is back at work.

Just this week I talked to a developer, and he asked if I could switch the phone numbers, so issues would get routed to him first. My question: Why? You can't really do much without me being awake as well, so maybe I get the first call, and I call you... IF I need to?

Re: Drunk Post: Things I've Learned as a Sr Engineer

#170
post #22

Earlier quoted context omitted.

Amen. Something bizarre I have noticed though in junior-almost-senior engineers is that they pride themselves in obfuscating and writing "highly complex" logic, with no documentation. It's almost like they are demonstrating their new abilities in the worst way possible. I have been dealing with one of these engineers recently, and they have expressed to me that they love writing because it's so terse. It's been a poi…

> Something bizarre I have noticed though in junior-almost-senior engineers is that they pride themselves in obfuscating and writing "highly complex" logic I think it happens because most measures of code quality are quite fuzzy, but brevity (which is valuable, other things being equal) is relatively objective. "Have I made the code shorter?" is a much easier question to answer than "Have I made the code easier to un…

> "Have I made the code shorter?" is a much easier question to answer than "Have I made the code easier to understand, modify and maintain?"

This is something that comes with experience though, and I think a lot of people don't truly grok this until they are trying to maintain their own terse/clever code written months/years earlier. Nothing is quite as humbling as doing `git blame` on some crappy code only to see your own name there.

Post reply on HN