1. 51
  1. 13

    Leaving a job because the tech is old seems very odd to me.

    However, 5 years is an incredibly long time to spend doing any one thing. I certainly wouldn’t stay in one job that long unless it were maybe one that let me change what I was doing every few years without leaving?

    1. 18

      Just to add to your first paragraph: It did seem that the author tried to make suggestions about which tech would be better, but didn’t get any support. It can be quite frustrating to work with legacy code and not getting listened to because your ideas doesn’t have an immediate return on investment (“Yeah, good idea, but we don’t have the time/resources/money to set your plan into action this time either”). Programming is creative, and having ideas repeatedly struck down kills the creativity and joy.

      1. [Comment removed by author]

        1. 5

          I find calling people “resources” concerning. It makes them sound interchangeable and inferior. Am I the only one who feels that way?

          1. 2

            If a manager gets offended at being called an ‘overhead’, they definitely mean it that way. If they think being called an ‘overhead’ is perfectly normal, they’re making correct use of project management jargon; to me that’s no stranger than programmers slipping in tech jargon during a conversation that includes nontechnical folk.

            1. [Comment removed by author]

              1. 4

                Personally, I find the use of “resource” to refer to human beings pretty jarring as well. But then, “talent” sounds weird to me in this context as well, I guess it’s still somewhat dehumanizing. Why not just use the words “employee” or “person”?

                1. 15

                  [A reply to the author of your parent comment – posted here because I can’t reply to them directly]

                  Hey C., I see you removed your comments and deactivated your account. I just wanted to say that that’s a pity. That you had learned that the word ‘resource’ for people is neutral, and hadn’t learned yet that it is unacceptable to many, is not yet a personal fault, just a matter of experience and exposure. Consider yourself one of today’s luck 10,000.

                  I’m taking the trouble to write this because it was clear from your comments as a whole (and also from your other writing on this site) that, wrong word or no, you do not think of people as interchangeable or passive (the objectionable connotations of the word ‘resources’). You also showed yourself willing to use another word, and wanted to learn why people objected to it, both good things.

                  In short, what happened here was categorically different from harmful behaviour or intent, so you don’t have to go into exile over it, nobody minds as long as you learn. We all make mild mistakes out of ignorance, and we all have to learn.

                  If you want to come back, under whichever name, you would be most welcome. I hope you’ll get to read this. <3

        2. 7

          That’s a very sensible thing to do IMO. If your skills are stagnating and your day-to-day work gives you no opportunity to advance them, then at some point you’ll want to update your skills. Either with something new, or something old that you’re unfamiliar with. Don’t mistake this advice for “chasing the shiny new thing”; rather an acknowledgement that new skills are important to your professional development/expanding your mind.

          1. 2

            I literally cannot stop aquiring new tech skills (or other skills, even!). My job is almost never involved in this.

            I understand that I’m not everyone. But that’s why I said it seems odd to me and not that it’s a bad idea. Maybe it’s a good idea for you. I don’t go to work for the tech (or I would have a very different job!)

          2. 2

            It may seem odd but I got to be in the very same position a couple of months back. I was a contractor for a company that deals with hedge funds, and some financial stuff like that, my excitement over that industry has never been really there though but the renumeration was damn great.

            However, we had to manage such an old codebase this company had built inhouse using Zend Framework 1! At the time, I took the job with the idea we were going to be using recent tech obviously, they had said it’s PHP + recent JS flavours (vuejs, react JS). I tried to trudge on for a while but could just not get productive. I ended up resigning because I felt so bad that I couldn’t deliver the value they sought nor was I bothered to learn outdated tech and have an obsolete skillset.

          3. 12

            Good article. As always, make sure you put everything on the table when it comes to your current employment when weighing the benefits and drawbacks. I left my last job because I was looking to become more “battle hardened”. It was a comfortable job, large corporation & was getting high performance reviews despite barely putting in any effort (seriously, I could finish a sprint in 2 days). Now my new job does pay more, but I’m putting in 9 hour days of focus & struggle. No more fucking around on IRC. My coworkers are high performing so I’ve got a high bar to match. Now I’m on call for something that can’t really go down. I’m stressed out. But I’m learning more. Way more. My resume is getting stacked. And I’m learning things that I would have never learned at my last position.

            When you’re early in your career, seek out uncomfortable positions. Especially early, because those investments compound over time as new opportunities. Don’t optimize for income, optimize for mentorship & difficult work. My friend the other day called it “Resume driven development”.

            And don’t forget, tech isn’t the only thing we have to learn

            1. 3

              My coworkers are high performing so I’ve got a high bar to match.

              That does sound compelling. If I could find such a position, would it be worth it to switch? Maybe. But I can find high performers to work with on my own terms outside my job, and a sleepy job lets me have more brain power left to do that kind of hobby work whereas a gruelling job might suck all my time and energy for someone who is not me.

            2. 6

              If management is sad and perplexed and regretful to see an employee leave, then that employee probably did not demand enough change from their managers. Management in this scenario, and in so many others, is not interested in the best interests of the employee. Accordingly, if an employee is depressed or otherwise experiencing negative mental health effects because of employment, then they have a reasonable expectation that their manager, if competent, must do something to improve the situation.

              1. 14

                +1. I’ve seen engineers fall into two camps when they’re unhappy with their job. The really vocal ones who never stop fighting / advocating for what they want / should happen, and the ones who just bottle it up and get really quiet.

                The former will either get what they want eventually, or they will leave but no will be surprised.

                The latter though… they get stuck in their head, working at the company becomes increasingly depressing / stressful, and one day they just quit. And everyone is surprised because, well, they didn’t say anything (or communicate it in a way that others perceived it as important / etc.).

                Not saying this is necessarily true of the author, but a more general comment.

                It’s always the silent ones.

                1. 9

                  Why ask for something from your manager and risk getting fired when you can keep your job, find a new job, and then resign at your own time on your own timeline?

                  Maybe your manager won’t fire you, but why take that risk? You don’t owe them anything.

                  1. 6

                    This is worth answering.

                    The last two times I spoke up to management like this are still clear in my mind. In one situation, upper management had instructed employees in ways which contradicted federal law; in another situation, state law had been enacted which affected our products. In the former case, I spoke up not for myself, but for other employees who did not understand that they were being disenfranchised; in the latter case, I spoke up not for myself, but for the entire business’s legal safety.

                    I don’t owe my managers anything, yes, but I do certainly owe my employer and fellow employees quite a bit. I have an ethical obligation, as well as possible legal obligations.

                    Also, to be frank, I don’t really mind taking a break of a few months between jobs. Employment is difficult, employers are terrible people, and the entire system of wealth and labor extraction makes me sick and tired.

                    1. 2

                      I do certainly owe … fellow employees quite a bit

                      Definitely! This is a great point. If you have the priviledge to be able to handle it, sticking your neck out for fellow employees is absolutely worth trying.

                    2. 4

                      Managers and ICs are not antagonists. The manager’s job is to interface with other teams and keep the IC out of endless meetings and business processes. This shouldn’t be a yes-boss situation.

                      1. 4

                        Except the manager has the power to fire the underling, and the underling has no influence over the manager. The power imbalance is real, even if most manager like to pretend it is not.

                      2. 3

                        I’m really confused why asking for any of these things would put you at risk of being fired? I’m a manager and I cannot imagine thinking about firing someone for expressing their desire for things to be different or better.

                        1. 3

                          I cannot imagine thinking about firing someone for expressing their desire for things to be different or better.

                          Well, then I’m glad you’re a good manager :) But one is not generally safe to assume their manager is a good manager. “Asking for things to be different or better” is very contentious, and is definitely not just a safe thing to do in general.

                          1. 2

                            Absolutely agree with this.

                            If there is genuine concern about being fired for asking a question about additional opportunities, it may be how the question is framed?

                            1. 1

                              You’re making the right call, but not everyone does. I lost a job because of this. I escalated a normalization of deviance issue (social and technical – extreme callousness in communication re: legitimate high-severity defects, and an absurdly high potential for PR and/or technical damage to the enterprise), and it ultimately ended my tenure there. I can’t say any more, unfortunately – that’s how bad it went.

                        2. 5

                          I feel that 5 years (or similar amount of time) lag is actually a good thing. Why rush to try new tech, when he current one (old?) is working?

                          1. 10

                            That would depend on who you ask. It might be a good choice for the business/employer. If however the employee wants to develop his/her own skills in newer areas and make sure not to end up only knowing old tech that aren’t attractive to future employers, then it would be bad for the employee’s future career.

                            The distinction might also depend on which tech and its lifecycle on the professional job market. Some really old tech are still very much relevant today, but that’s not true in every case. So if your current job is about something that is, let’s say, “deprecated” and won’t lead your career any way, then it might be smart to quit while it hasn’t impeded your future job offerings too much.

                          2. 2

                            How do people here get ready for that transition? How do you find interesting places to work and weed out the places with issues?

                            1. 7

                              I ask the same questions to different people and observe the consistency. e.g Ask, “what is your product?” to a VP/CEO, team manager & developer and observe the differences. The more consistent the better. In one case I asked how the company got money (funding, revenue, etc.) and the VP/CEO was the only one that would answer. Some difference are expected, but it can highlight communication issues which indicate a future problems. It’s also really hard to fake answers (give an answer that doesn’t reflect personal actions), unlike questions like “how do you deal with conflict”.

                            2. 2

                              In five years there will be some hot tech stack that every business will be adopting.

                              When that happens, you want to be someone with a couple of years experience in that tech stack. The trouble is, you can’t predict in advance exactly what it will be. In 2010 could you have predicted if Android or Windows Phone would be better bets? In 2015 could you have predicted if Kubernetes or Cloud Foundry would take off? No one could.

                              Not unlike stock market investing, you want to have a couple of big bets that may or may not pan out. The best way to do that is to work at a place that gives you the freedom to try lots of different things and get practical experience in them.

                              And don’t waste time learning internal tools and technologies. My last employer had its own TLS libraries, its own build systems, its own test infra, and its own embedded database. People spent their whole careers building those components and mastering them! But those skills had zero value on the open market.

                              1. 5

                                And don’t waste time learning internal tools and technologies.

                                Learning them is important because they are software people wrote that’s doing a job that fits somewhere in a set of tradeoffs for what was hoped to be the best possible outcome.

                                It’s important to know how a set of decisions resulted in a specific set of outcomes, and how that feels. Maybe it can be used to positively or negatively guide decisions later in your career.

                                One of the internal tools at my day job is a database tightly linked with python, but importantly is a globally distributed key value store. It’s a very cool tool that’s used for data, but also used for code and code management. The time I spend learning that database helps me in my day job but I can’t imagine a future where knowing what a data store could be won’t be useful.

                                1. 1

                                  In 2010 could you have predicted if Android or Windows Phone would be better bets?

                                  I agree with your post in general, but this struck me as odd. Was anyone outside of Nokia every betting on Windows Phone? By the time 2010 rolled around Android had already taken most of the market and the only way Windows could make a dent was by hoping their big brand was still worth something…

                                2. 2

                                  What the author doesn’t seem to take into account is that every large code base that is in production is essentially stuck to the frameworks and choices from the past. Production code cannot be substantially refactored, let alone rewritten, because every change is a potential bug and a bug is too costly.

                                  This would imply that the only way for a developer to not get stuck in an old code base is to hop to a new startup every x years. I can’t imagine that is really true, but I also don’t see an alternative.

                                  1. 4

                                    A codebase that is stuck to the frameworks and choices from the past is in my experience one that has not had enough investment over its life to ensure it has been maintained and is typically one of many red flags.

                                    This is how companies get stuck with applications written in long since obsolete languages nobody today is taught how to maintain (e.g COBOL.)

                                    1. 3

                                      This doesn’t seem to fully address my point; what I’m trying to say is that typically every code base that is heavily used cannot be refactored, even if everyone is perfectly willing to invest the time, simply because of the fundamental problem that every change brings a lot of financial (and thus existential) risk with it, the bigger the change, the more risk. So a big swoop of refactoring or changing frameworks is never going to pass any healthy risks vs benefits analysis.

                                      If there is any knowledge that proves otherwise I am of course very happy to hear about it!

                                      1. 2

                                        Well, a client of mine is running a sales-oriented web site/application/CMS thingy cooked up by a company which stopped maintaining it long ago. It was still running CakePHP 1.3 when he asked me to take a look at it. I managed to upgrade it to CakePHP 2.0, but even that doesn’t support PHP 7. And his hoster decided to stop support for PHP 5, so his site was taken offline. This has a huge impact on business, because from one day to the next his site was down, practically without warning (because who reads those deprecation announcements in admin interfaces?).

                                        Of course the situation is slightly different in a company who does its own hosting, but there too you have this problem. Your distro will eventually stop security updates of the language/libraries/framework your code is based on and you’re stuck with your old insecure shit.

                                        1. 5

                                          This highlights an economic inefficiency that’s bothering me. Collectively, companies spend huge amounts of money rewriting software because of breaking changes in frameworks or languages.

                                          By comparison, the costs of paying people to apply security fixes to Python 2, PHP 5, etc. forever would be very small, if it were shared amongst all the stakeholders. Nevertheless, the predominant wisdom seems to be that it’s better to be “up-to-date” and rewrite the same old code again.

                                          Don’t get me wrong, as a programmer, I like this, because it means there’s lots of work for me. But economically, this doesn’t make any sense.