As long as their salary keeps increasing, I’d say go for it!
You only hurt yourself down the line. My last job had not improved their own product, processes, tools or frameworks, so everything was still stuck in the 90s. Their product was build on an discontinued an proprietary database and server system you never heard about, jQuery UI from 10 years ago and other BS.
However if you don’t upskill yourself in this situation you will be unemployable in the future, because all other employers demand modern technologies, git, docker, unit testing etc., which I was yelled at in meetings for suggesting it.
git is considered modern?
I don’t mean to bash git but I’d have assumed git is utilized in some capacity in every dev environment.
The Lead Dev/team Lead was quite arrogant and in his own mind the worlds best developer who had all the answers. If some technology or software was not written by him or already existed in the 90s it was “useless” and not fit for the company (without him having looked at it or the docs). If asked why we would not use X which was out for years, well maintained, had no critical bugs would solve problem Z we where having, he would reply “because i said so” and insist in writing out own variant - which ended up having 10% of the features, 10 times the bugs, terrible UI and would take months to develop.
When support repeatetly told him that users had issues with feature X because the only error message on a 10 fields forms page was “Error”, he would respond that this is a user problem, the end user is clearly stupid (despide used in a field where you need to study for years) and that support must hold training sessions so the users can “learn” how to use his product.
As such, the company would reject git and instead email each other files and changes.
Each meeting felt like living inside a Dilbert cartoon.
And he can still do that, because? Friend in management or what?
There are other version control systems out there, and have been for decades. So yes, I would consider git to be modern.
It’s more modern than Visual Source Safe, that’s for sure. I kind of miss the days of coworkers leaving for two-week vacations and forgetting to check their shit in first. It was a built-in excuse for the rest of us to not do anything and blame it all on vacation boy.
I don’t mean to bash git
pun wasnt intented.
But now I kinda have to commit…
Git wasn’t used all that much in the 2000s. As far as I know it became popular in the 2010s (though it was always a thing in some circles I think) and then just supplanted almost everything else.
Also keep in mind some shops tend to follow larger tech companies (microsoft, etc.) and their product offering. So even new products might not have been on git until MS went in that direction.
It was released in 2005.
Takes time to become ubiquitous.
all other employers demand modern technologies
There are a lot of employers that’ll throw good money at you for maintaining and extending their outdated crap. Have you ever considered learning COBOL?
No wonder COBOL programmers are paid a lot, because what would be a 1-liner for “hello world” in other languages looks like this in Cobol:
IDENTIFICATION DIVISION. PROGRAM-ID. IDSAMPLE. ENVIRONMENT DIVISION. PROCEDURE DIVISION. DISPLAY 'HELLO WORLD'. STOP RUN.
This is already $6000 worth of code right there!
I wonder how much open source COBOL is out there for LLMs to harvest.
The thing people always overlook is that these legacy systems are only still running because they’re super important. Nobody’s hiring a junior COBOL dev to maintain NORAD, and hopefully nobody’s contemplating putting ChatGPT in charge either.
The move if you want this kind of job is to learn a language that’s not quite a dinosaur yet, and have 20 years experience in 20 years. Perl or PHP maybe.
Recently switched jobs from maintaining a 15 year old Windows Forms .NET Framework legacy codebase.
At the new job we stick to Clean Architecture, use unit and integration tests, have a code generation tool, actually make nice use of generics and use dependency injection. Also agile processes, automatic build tools, whatever. The difference is night and day and I’m so glad my ex boss fired me because I told him he’s an asshole and his codebase is shit.
You have to listen to your heart, at least once in your career, to learn that grass on the other side is covered in just as much dog shit as it is over here.
“Maybe the grass is greener on the other side because you’re not over there fucking it up.”
-Abraham Lincoln
Sometimes a fresh pair of eyes on a code base can reveal some opportunities for big improvements in maintainability 😜
Sometimes it takes a new dev coming in for management to give the greenlight for a major overhaul. It’s shitty, but it’s true.
Ahahhahhahha. Ha…ha. Ahem.
Sorry. The idea that any of the opportunities for improvement at my last “job A” code base might need “revealed” struck me as really funny.
Project A: Has 6 different implementations of the same complex business logic.
Project B: Has one implementation of the complex business logic… But it’s ALL in one function with 17 arguments and 1288 lines of code.
“The toast always lands the buttered side down.”
Project B is just called neural network
Actually, I bet you could implement that in less. You should be able to legibly get several weights in one line.
Only 1288 lines? Can I raise you a 6000+ lines stored procedure that calls to multiple different sql functions that each implements a slightly different variation of the same logic?
Are there triggers in the sql database? It’s too easy otherwise
Just rewrite it with 80% functionality and force migrations on the users. Once the remaining 20% “edge cases” that require serious effort hop to the next job - where you where hired to “maintain” such a system and “just add a small feature here and there”. Ooops.
Reddit: You’re hired!
After so many years in this company, lots of the unmaintainable code I have to deal with is either my own fault, or the fault of someone I used to work with but and now they left and I’m the one who has to apologize for their code.
If I move to a different company, 100% of the unmaintainable code I’ll have to deal with there will be someone else’s fault.
In the industry we call this responsibility load balancing
And managers don’t like it when you explain that the code is a unmanageable mess because they put a deadline on every goddamn thing and never pay off technical debt.
At a new place you can honestly say “the code is kinda a mess, it needs a bunch of work” and the manager can just assume it was because the last guy didn’t know what he was doing and not because of their own shitty management.
To be honest, sometimes shit code is 100% the Devs fault. I’ve witnessed it happen with other teams in my own company.
Let’s just say it was unavoidable to report it
Management could implement a code review process to avoid this.
Software development isn’t a brand new field anymore. Most problems are well known and therefore have well known solutions. So it pretty much always comes down to management not wanting to implement the known solutions to the problems because its easier to blame the devs.