Live data from Hacker News

You're not a senior engineer until you've worked on a legacy project (2023)

infobip.com

131–140 of 431 posts

Re: You're not a senior engineer until you've worked on a legacy project (2023)

#131

Earlier quoted context omitted.

"checkout project, reformat all source files, commit"

lol I love when people do this and it and now whenever I `git blame` their name shows up.

FWIW, git now has options to ignore such commits. In a big codebase each big codemod sha should be added to the blame ignore file .git-blame-ignore-revs. It's supported by GitHub out of the box

https://www.stefanjudis.com/today-i-learned/how-to-exclude-c...

Re: You're not a senior engineer until you've worked on a legacy project (2023)

#132
post #19

I once had a manager that was fond of saying: > Experience is what you get when you don’t have any. The only better experience than working on a legacy codebase is working on a greenfield project long enough to watch it become legacy and see the good and bad consequences of past decisions.

And the only better experience than "working on a greenfield project long enough to watch it become legacy and see the good and bad consequences of past decisions" is working on a second greenfield project long enough to see that drastically overcompensating for all the bad things from the first one is not the right solution either :)

Fred Brooks has a whole chapter, 'The Second System Effect', on this in 'The Mythical Man Month.'

"The general tendency is to over-design the second system, using all the ideas and frills that were cautiously sidetracked on the first one."

Brooks reasons that the combined experience of doing the first project well and the second project badly leads to better designs from then on.

Re: You're not a senior engineer until you've worked on a legacy project (2023)

#133

Earlier quoted context omitted.

It depends on your goals, though. Depending on the company, that can be a very good way to be treated as a cost centre to be minimised.

Yes, let's minimize the only dev working on legacy software.

This is how I got laid off. Working on legacy software, sole person on the team, eventually management decided that it could be replaced by AI or some such pixie dust.

Re: You're not a senior engineer until you've worked on a legacy project (2023)

#134

Earlier quoted context omitted.

"checkout project, reformat all source files, commit"

lol I love when people do this and it and now whenever I `git blame` their name shows up.

Agreed, this is quite annoying, but there is a workaround. You can tell blame to ignore commits like this, through a config option blame.ignoreRevsFile or similar CLI option. Not the most convenient perhaps, but it’s something. I believe GitHub also supports this, though you may have to request it to be enabled in your repository.

Given this, I tend to prefer a single, formatting-only commit when introducing formatting standards to an existing codebase. Otherwise, it’s difficult to take advantage of QOL features like auto formatting in your editor, or other formatting tools which tend to operate on entire files. Then PRs end up being mixed with formatting changes, which adds friction to the review process.

Re: You're not a senior engineer until you've worked on a legacy project (2023)

#135
I find it incredibly satisfying to slowly figure out, document, tidy up, and very gradually morph a legacy project with the puzzle-like constraint of not actually breaking stuff or screwing over legacy consumers.

I think it’s less awful if your expectations are not that of a new project. Yes, there’s a ton of ugly bits at the interface level that you can’t fix. You make it as comfortable as possible while figuring out where to go next if anywhere.

Re: You're not a senior engineer until you've worked on a legacy project (2023)

#136

As an embedded engineer in a new position I always volunteer to take up an old crusty legacy product that nobody else wants to touch. It's a quick education into how the company approaches projects and all the ghosts they had to fight along the way. All the business logic is there, and sometimes it's even documented. And once you have a semblance of knowledge about how the thing works and how to make fixes, you've bu…

Additionally, reading through other people's code is educational and it also builds self-esteem.

ironically most people can say the same about coming back and reading their own old code

Re: You're not a senior engineer until you've worked on a legacy project (2023)

#137

Earlier quoted context omitted.

Certainly the most secure code. Not sure about best.

Better on every axis: security, performance, resource consumption, reliability, verification, documentation... Code is a pure liability that you accept to get a useful service.

exactly..which is also why lines of code written is one of if not the worst possible metric of productivity. easy to game too.

Re: You're not a senior engineer until you've worked on a legacy project (2023)

#138

Earlier quoted context omitted.

Certainly the most secure code. Not sure about best.

Better on every axis: security, performance, resource consumption, reliability, verification, documentation... Code is a pure liability that you accept to get a useful service.

> Better on every axis...

How 'bout job security?

Re: You're not a senior engineer until you've worked on a legacy project (2023)

#139

You're also not a senior engineer until you've been forced to adopt the coding style and practices of that legacy project. A lot of younger developers like to come into a new project and slap on the latest frameworks or coding practices that they've picked up recently, without acknowledging that breaking the standards of the project lead to higher mental load to maintain that code over the long term.

> A lot of younger developers like to come into a new project and slap on the latest frameworks or coding practices that they've picked up recently, without acknowledging that breaking the standards of the project lead to higher mental load to maintain that code over the long term. This is an organizational problem.

Right. At my new job, the framework-level choices come from people like 4 levels above me. Problematic for a lot of reasons, but juniors slapping frameworks onto things is not one of them.

I’m actually kind of struggling to imagine a scenario where a junior developer has the agency to slap entire frameworks onto existing systems. Maybe a late stage startup? Coding practices, definitely.

Re: You're not a senior engineer until you've worked on a legacy project (2023)

#140
and that's why I'm a senior engineer since my first internship!

I always considered legacy projects more interesting than zero to one. A lot less reinventing the wheel and bikeshedding, a lot of puzzles - painful ones, sure, but at least it's not a bunch of CRUD (or the usual startup experience, which is a constant flux of rewriting-crud-very-fast)

Post reply on HN