Live data from Hacker News

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

old.reddit.com

61–70 of 510 posts

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

#61
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.

I came here to say this. +100 to this.

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

#62
post #33
post #29

Earlier quoted context omitted.

Damnit me too

Do it, if only to find Clojure.

Clojure goes against so many of lisp's timeless philosophies and principles that it can hardly be described as a lisp.

When someone says "lisp is the greatest programming language" it's these principles that they refer to, most of which Clojure discards so it can play nice with Java and promote very specialized ways of solving problems in order to best fit a particular niche.

The best way to discover the essence of lisp is to read SICP and learn Scheme.

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

#63
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.

It goes too far though. The virtue of simplicity needs to be balanced against the virtue of making proper use of advanced language features.

A first-year student is unlikely to understand C++ template metaprogramming, or just about any Haskell code, but that's not to say they should always be avoided in production code.

> The best code is no code at all

This can be interpreted as advice to avoid the 'inner-platform effect' anti-pattern. Good advice, but personally I'd rather express it in terms of the inner-platform effect.

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

#64
post #6

> I don't know why full stack webdevs are paid so poorly. No really, they should be paid like half a mil a year just base salary. Fuck they have to understand both front end AND back end AND how different browsers work AND networking AND databases AND caching AND differences between web and mobile AND omg what the fuck there's another framework out there that companies want to use? Seriously, why are webdevs paid so…

> programming is webapps

Uhm, sweety, just no.

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

#65

Earlier quoted context omitted.

Someone please translate that to Latin and start plastering that on office walls so people take it more seriously. It’s going to save all of our mental health in the long run.

It's been seven years since I've tried writing any Latin, so you should assume this is butchered. (edit: I think it's less butchered now) codex bonus a discipulo prendatur codex magnus a novo prendatur codex optimus nullus est Part of the problem is I couldn't find any good word for "code". "Codex" sounds cool but may not be the best fit here. EDIT: Forgot a word. Also, I think "prendere" is better for "understood" h…

Antescriptum is probably the closest to the root of the word “pro-gram”.

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

#66
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

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 understand, modify and maintain?"

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

#67

Earlier quoted context omitted.

Someone please translate that to Latin and start plastering that on office walls so people take it more seriously. It’s going to save all of our mental health in the long run.

It's been seven years since I've tried writing any Latin, so you should assume this is butchered. (edit: I think it's less butchered now) codex bonus a discipulo prendatur codex magnus a novo prendatur codex optimus nullus est Part of the problem is I couldn't find any good word for "code". "Codex" sounds cool but may not be the best fit here. EDIT: Forgot a word. Also, I think "prendere" is better for "understood" h…

I obviously can't speak to the accuracy of the translation, but damn, is Latin a beautiful language. :)

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

#68
post #57
post #44

Earlier quoted context omitted.

That hurt me to read! Have you communicated this to your manager? Might be worthwhile to have a decision "from the top" that is essentially: all logging is good, so long as it doesn't hurt performance or contain PII/PHI.

Logging is like a lamp in the dark, you need it.

three things i find to be true of every web app i work on:

1. good logging is the most important part of the app. whatever the app is meant to do is secondary. the app should be a logging app first, and then a backend service to sell widgets second.

2. assume performance requirements for request latency and transactions per second will be at least 3x whatever the product owner tells you at the start of the project and plan accordingly. never trust any suggestion that you can 'ignore performance for now'.

3. the UI may be more important than logging

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

#69

Earlier quoted context omitted.

Try building something of your own just for fun. See if you see sparks of your old love back.

That's the thing, I've been trying to do that for years now. I've got about a dozen cool ideas that bounce around in my head and a new one every few months or so. I can spend all my non-free time thinking about and designing them in my head, but when it comes time to actually write the code, I just kinda lose all motivation.

I'm in a similar boat. At my job, the junior engineers do most of the coding and I get to enjoy designing systems and project management.

I'm considering just hiring people to do the side projects I wish I had the energy to write the tedious code for.

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

#70
post #58

Earlier quoted context omitted.

I wish more managers and business stakeholders investigated this more carefully. Team members of this type add a shadow overhead that impacts velocity dramatically. It’s always visible to average competent devs on the team, but can be invisible to managers who don’t investigate as to why only one person is particularly productive on the team. Most people won’t go to their bosses and say ‘so and so writes overly compl…

I would do this auditing job, no joke. A kind of "code-smell" service, that can yield problematic areas, along with a report of engineers that could use additional guidance/training/reigning-in would be super valuable from a manager's perspective. And because it's a neutral party, they can feel good that there's no politics. One challenging bit about this service would definitely be quantifying improvements. Since th…

Another way to remove finger-pointing is to identify features that should be reasonably easy to implement, but for whatever reason don’t get done in time, or worse, don’t get done well (end results being bad).

If a team was tasked to make a simple landing page for example, and it was oddly hard or time consuming for an average team member, it would be good to dig into why. If the answer is ‘you should see the boilerplate involved, or the deploy process ...’, then you can make a neutral analysis as to the cause.

Post reply on HN