DEV Community

Play Button Pause Button
Spiro Floropoulos
Spiro Floropoulos

Posted on • Updated on

The slow and painful death of a developer

If you want the youtube version of this video, just click here and enjoy.

Edit: I have received a great deal of feedback on this post. An addendum is posted at the bottom.

TLDR; You want to know one method of becoming an unemployable developer? Stay stagnant for a reasonable amount of time. Doing it unknowingly. Worse, do it knowingly. Watch as you disappear.

This statement may be incorrect (do correct me if it is) but it seems to me that technology is one of the fastest moving fields, very broadly speaking, that anybody could find themselves working in. Perhaps not the fastest. It has to be pretty high on the list, though.

Raise your hands: how many of you remember the days when jQuery was all the rage? Do not misunderstand me, jQuery is still used and has a relevant place, but would I be wrong to state that it is not what it once was?

I remember when Mongo was this new fangled shiny database that was garnering all kinds of attention.

These are things that only changed in the last few years, maybe less.

Anyways, why do I mention this? If you read the title then you can probably hazard a guess. As a matter of fact, it may be redundant to write anything more.

But it seems important to provide at least one example of a developer whom I know and how she found herself in a bad spot.

Perhaps this article can serve as a warning to other developers out there.

The example

This developer was in a constant battle at work. She called it "firefighting mode" and it almost never went away. I will not give specifics because I do not think they are important to the point. Suffice it to say, she had to struggle with a bad code base and bad data structure and bad management, among a few other things.

It was a difficult challenge to make progress against these thing. She would go in to work in the morning, struggle all day, then come out at the end of the day feeling frustrated and unwilling to do anything else. It was emotionally draining.

However, despite that, she was consistently focused and active in trying to make things better. Sometimes that meant some overtime hours. Sometimes it just meant she had to step away from the screen for the day and not look back until the next morning. Commitment to the cause is definitely one of her strengths.

The death

At some point, the she realized she could not keep working at this company anymore. Progress wasn't being made (or it was too slow coming) and she had to quit.

Unfortunately, as she began looking around at her options in the tech industry, she rapidly realized she was massively out of date with the skills being asked for. She had spent two years of her time focused on keeping up the status quo for the company she was at that she didn't realized how much ground she was losing outside of that.

She ended up having to take a lower role with lower pay and she only got that job because a friend of hers worked at the company she applied for and vouched for her.

The lesson

This is what happens when you're not paying enough attention. If you don't look at what's really going on around you then you risk becoming stagnant. You risk allowing yourself to fall out of date and become far less useful to the industry because you haven't been able to keep up.

This doesn't mean you need to be coding 24/7 and doing a zillion side projects and submitting to open source code all the time.

It means you need to aware enough to realize when you're not feeling the pulse of your job anymore and have the sense to do something about it before your pulse no longer matters.

Addendum

Based on the rather large feedback I have received, I want to clarify that this post has some value to those in the web development space. Web development is somewhat of a hot mess right now and there's always something shiny and new and employers are changing their requirements rapidly. But there are plenty of sectors in technology that do not move that fast and where you can stay focused and safe for, sometimes, years and years.

Discussion (31)

Collapse
webreaper profile image
Mark Otway

There are elements to this that are true, but part of it is also a fallacy. Why? Because no matter how much we like to think new tech is different, it's often not. The saying goes, there's nothing new under the sun. I've worked in tech for 25 years, and been dabbling with programming for 35 and can safely say that there is very little that is revolutionary or groundbreaking. Some of it is a bit different to tooling or processes that have gone before, but if you're a competent developer, transition should be easy.

Good example: in 2004 I had an interview for a C#/.Net role. I'd never even seen C# before; my previous 10 years were C++. I spent two days learning C# over the weekend and aced the interview on the Monday.

The main skills you need for a job are to be able to communicate with your stakeholders and team members, to prioritise your time, and to be able to learn stuff reasonably quickly. Trying to get into a hamster-wheel of feeling like you have to learn every new technology that comes along to stay up to date means you're on a hiding to nothing, and will simply exacerbate your imposter-syndrome affliction.

Collapse
jfrankcarr profile image
Frank Carr

Corporate hiring manager asks a recruiter: "Why am I having so much trouble finding a local programmer to maintain our 15 year old (VB6/PowerBuilder/Visual Foxpro/Access) application? The old developer retired last year to run a goat farm and we can't find anybody and we are willing to pay top dollar."

Old tech jobs are out there in decent numbers if you can stomach working with crumbling, fragile, code bases and out of date tools. I don't think you'll not find jobs if you don't stay current but you may not like the jobs you find.

Collapse
nikmonios profile image
Nikos Monios

To be honest with you, the company should have been prepared for the old developer's departure and began migrating to newer technologies. Young developers care a lot about their careers and they are not ready to work with obsolete technology.

Collapse
jfrankcarr profile image
Frank Carr

In several cases I've seen a long time developer left unexpectedly. In more than one, it was because they became disillusioned with management and took an early retirement or just left for another position with no advanced warning. In others' it was a health issue, either their own or a family member. In all cases, management did not plan for them leaving effectively.

BTW, most older developers who are staying current don't particularly like to work with obsolete technology either. We sometimes do because we worked with it when it was new but we don't want that to be a significant part of our job.

Collapse
egvaldes profile image
Ernesto Valdés

That is very true, I work at a company where the majority of the codebase is in Fox Pro, it's very hard to find people with the knowledge and willing to work with it, almost no one wants to get even close to it.
Fortunately I'm not working directly on Fox but I don't think I'm gonna last a lot longer here.

Collapse
lepinekong profile image
lepinekong • Edited on

Oh my why did you mix so many databases in the first place :) I knew MSAccess very well and still use it sometimes but in secrecy because you know in Big Corps they disdain it as toy and prefer to use Java / Oracle even for less than 10 users. Well at least it makes my bread and butter as the project last months and even years I'm paid for managing its development. I find this corporatish mindset silly though because it's waste of Money and Time.

Collapse
jfrankcarr profile image
Frank Carr

One thing that I've found in working in areas like manufacturing and logistics for about 10 years now is that while corporate IT may dictate a particular platform they often come up short in providing application services to users. So, marketing goes their own way with a web development outsourcing firm, engineering hires in a group of contact programmers to do their work and so forth and so on in every department. Within a short time there's a hodgepodge of applications that are essential to keeping the lights on.

Collapse
baukereg profile image
Bauke Regnerus

There are different idea's about keeping relevant as a programmer though. Some people argue that you should run your private projects, develop in your free time, get your hands dirty on all things new. I personally don't do anything like that! I have a full time job that demands all my attention and energy, and I have a social life with friends and family. Yet at least I try to have a global sense of the latest trends.

For example, I've never worked with Redux, but I've read articles and watched talks so I have enough knowledge that, if I have to work with Redux, I can be up and running in short time. That's enough for me.

Fun thing is, more and more devs started to criticize Redux lately for not being the solution to every problem, where not to long ago Redux was like the holy grail of state management. By the time I switch job, Redux might not even be that relevant anymore.

So yeah, don't be a stagnant developer. But also don't be a developer that's burned out by a pressure to know all things hipster and wasted too much time on learning everything.

Collapse
rrampage profile image
Raunak Ramakrishnan • Edited on

My intro to programming professor at university told this when we asked him why we are being taught C and not a "modern" language like Python or Java (it was 8 years ago) : "Programming is like learning to ride a bicycle. You learn to use one, you can use any other with a minimal amount of relearning.". I believe that this advice still applies. To rephrase it : 'Do not chase after technologies. Learn the fundamentals. Most "new" technologies are just reinventions in a hype cycle.'

Collapse
igormp profile image
Igor Moura

C is still pretty much used in a lot of places, specially in embedded due to the boom we've been having with IoT. Some technologies may be old, but that doesn't mean they are useless.
Aside of that, I 100% agree with your. People think that they need to always catch up with the latest JS framework or they'll be out of the market, that's a bad thing that the ever breaking changing web dev community developed in the last years.

Collapse
alex_escalante profile image
Alex Escalante

Keeping relevant as a programmer is like being a high performance athlete or a stage artist. It can be highly rewarding but also frustrating and even hazardous for your health. There's always a toll to pay.

Collapse
wstocker profile image
Wendy Stocker

I think you made some excellent points, and when choosing a position you should also look at whether the the employer is good with keeping up current with industry trends as well. That way you get good on the job experience.

IMO I think that's more productive then say, small side projects. You get a more in-depth look at complex issues that you have to come up with solutions for, then you would superficially taking a look at a new technology just for the sake of learning it.

Collapse
jeroen1205 profile image
Jeroen Jacobs

I have a similar story:

When I left school, I started working as a Lotus Notes developer, and administrator afterwards. I switched jobs quite a few times, but I always stayed in the Lotus/IBM world as this had become my area of expertise. I wasn't the most sexy or modern technology, but it paid quite well as people with this kind of expertise were hard to find.

A few years go, I got tired of working with Lotus technology (mostly in a sysops-role). IMHO this technology is way overdue its experiation date, and I got frustrated that I didn't get the chance with more "sexy" technologies. I was applying for other jobs but I never got hired as I didn't had the required experience with new technologies (I was trying to get into the cloud-computing areas).

I took quite a drastic and impulsive decision: I quit my job. I started doing AWS courses on my own time and money, and earned my AWS certifications. I decided to give freelancing a try, and went scouting for cloud/AWS projects.

The first 2 years were hard. I had my certifications, and despite the fact that I had a lot of experience with sysops in general, companies were reluctant to hire my due to lack of AWS experience. So I "under-priced" myself a bit, and luckily I managed to get a few projects and prove hands-on that I knew this stuff.

I'm now freelancing for almost 4 years (I'm 39 now), and I'm happy with what I'm doing now and I no longer need to "under-price" myself.

This way of performing a career-change is not for everyone. If you want to go this route, my advice is:

  • Being 5 months without a project as a freelancer (which means no income) is stressful. Very stressful! I spent nights calculating how long I could keep this up without losing all my money.
  • No matter how many certifications you have, or think how good you are, companies want production experience. Hobby projects are nice, but are almost never a factor in hiring you (unless you are straight out of school).
  • If you lack this production experience, money is your only mean to bargain. Like I said, I was forced to work for a cheap daily rate the first 2 years, and that helped my score projects, and get more hands-on experience.
  • For most jobs, showing 2 years experience is more than enough. If you are going for an architect role, I would say 5 years.

Still, I do not regret my decision and I would never go back. So far my freelance experience is going great. The first 5 months however, were the one of the most stressful months in my life. I'm not sure I would be so impulsive again.

Collapse
lepinekong profile image
lepinekong • Edited on

Good advices. It's true companies are dumb shy at recruting programmers with no experiences that's understandable. When I had my own company in the past I had helped people find job by recruting them for getting some experiences in it then they were recruitable after that :)

Collapse
greencoder profile image
Vincent Cantin

In a moving world, if you are not going forward, you are going backward.

Collapse
diaakhateeb profile image
Diaa Elkhateeb • Edited on

However, keep moving always drain your power and at a time you gonna be with empty battery and you will lose your willing to keep moving forward, sadly.

Collapse
greencoder profile image
Vincent Cantin

You are right. So when you are tired, choose a world which is moving slowly and walk forward, still.

Collapse
louissaglio profile image
Louis-Saglio

I think 95% of technologies in IT are moving very quickly but if you focus on the 5% remaining you can keep uptodate for 20 years with the same technology. By exemple, if you learnt Java in 2000, you are still very relevant today. But if you learnt the "new" and trendy Javascript front framework 5 years ago, it's actually pretty useless. So I think that a lot of technology are popular only because they are cool to use and seem to solve problems, but in the long term they are not so good. And a few technologies seems to be difficult or obfuscated but in the long term they are very good problem solver and their popularity grows slowly but surely.
Very few are cool and efficient and are popular from the very begining for years.

Collapse
adriannull profile image
adriannull

Depends alot on what position(s) you are and what you want for yourself on the long run.

Personally, i don't see IT verry well. For years it has kept reinventing the weel with every single new technology that appeared. Instead of having just a few languages to give us the power to do anything, we have zillions of languages + platforms + frameworks + various libraries and third party thingies that make up a "full stack". Keeping up to date is a bit too tedious as it appears like reinventing the wheel every single time. And honestly, i don't see many benefits coming from it.

The direction of technology, in general, is influenced too much by the commercial side and too little by general common sense. Now, there may be some technologies en-vogue because there are few people that are good with them. But in a few years, as more and more will learn, their value will decrease. So, to keep up a great value, some new technologies will emerge and will become more valuable. Does this mean that the old technologies won't perform anymore ? Surely not, they will keep doing their thing as well as before.

What i've learned from my experience as a professional - you should pick clients that are happy with the final project done and working fine, and just that. If your client or company is pressing you to use a certain language / framework / tool / whatever ... you should seriously think about if it's worth for you on the long run. And no, don't think only about the money. Think about the stress and how it will affect your health on the long run.

On the other side, if you really really want to work for big companies with verry tight workflows and such ... then yeah, you have to just accept that you have to learn new things round the clock, no matter how useful (or useless) they are.

Collapse
robencom profile image
robencom • Edited on

I agree 100% because I went through a similar situation.

After working for 5 years for a corporation, I realized that I either need to RUN from that company or DIE there. 2 years prior to this realization, I went to a job interview and I BOMBED! I couldn't understand why I sucked so bad in that interview, because I was a top employee (PHP Developer) in my company!

So after that interview, and for about a year, I worked on catching up after work hours. It took me around ONE year to catch up a little bit and then I went to another interview. This time, I did much better, but still, I didn't pass. Both the interviewer and me myself realized that I need some more time to catch up.

So couple of months ago, I left the company and started freelancing to finance my catching up process. Getting rid of all the "corporate junk" is really paying off almost a month after quitting. I feel much more refreshed and focused.

Don't wait to die, it would be too late. As soon as you smell the stench of death, RUN AWAY!

Collapse
niorad profile image
Antonio Radovcic

Totally, and I also would say that it depends on your environment. In a city/country with lots of traditional (tech-)companies, you might actually get away with legacy-knowledge all your career. I'm from Munich, and know people still rocking Perl. On the other hand folks in smaller towns and parts of the country struggle some more.

Collapse
itenev profile image
Ивелин Тенев

This is an article every 20, 30, 40, 50 and 60 years old IT professionals should read!

Collapse
bern_stein_40eda243bf5d7c profile image
bern stein

Nope. Completely disagree. While its certainly amongst the fastest moving professions, not all that much has changed in the last twenty years. Sure massive shifts happened in the year, decades before y2k but nowadays not so much. There‘s always the hot new thing of the month, but if look behind the curtain and its just more of the same. Except someone took the time & money you had not and now its hot and you can use it and benefit from it.
In the last deacades programming languages, processes, tools, etc have largely remained the same. oop, ddd, eventdriven, agile, dvcs, functional, ... all invented and used ages ago. Nowadays all we do is refine the status quo.
Take kubernetes & serverless for instance, its just automation of what we used to do and does what we were dreaming of doing twenty years ago. And there is still so much of what we dream of that it does not yet do...

The only thing that does expire in an instant is your expert level knowledge of framework X at version x.y.z . But if you define that as your skill barometer you’ve already lost. You‘ll be forever running to stay current.

The trick is expertly applying stuff you do not yet know or have just grasped. As a programmer we almost daily have to work wigh new code, concepts, frameworks, ... you name it.

Today maybe even more daunting is when you have to work, interop, replace old stuff. That COBOL,FORTRAN,... may not be new to the world, but it will certainly be to you. Except it not cool and the web has forgotten about it, so you‘re on your own.

Thats the nice thing about the new, the shiny: there are a ton of superb free courses, documentation, examples, millions of lines of exemplary code.
Its easy to learn the new.

Collapse
carlosmgspires profile image
Carlos Pires

I think you are misreading the Lesson. For me, the Lesson here is: if you don't want to be a firefighter, don't volunteer to the Fire Department.
Plus, two years isn't enough to lose that much ground on any dev-related field. Chances are she didn't have enough ground covered to begin with.

Collapse
bluebell_lester profile image
Bluebell Lester

You're probably correct because your thesis is in Capt. Obvious territory but your style of writing is cringeworthy :D

Collapse
devhead profile image
dev-head

great value you added there. /smh

Collapse
spirodonfl profile image
Spiro Floropoulos Author

Neat!

Collapse
joehamby profile image
Joe Hamby

If you are a good developer then you should have the confidence in selling yourself to any job you wish. She may have been complacent just like at her previous job where she rather get the quick connect with a new job then sell her self high for equal pay and knowledge. It is not about the technology that is "hot" at this moment, but the fact you can think and solve problems, code is code, no matter what the language. It is just syntax, it is whether you can in your mind solve an issue the rest is easy enough. The internet is vast. Don't sell yourself short.

Collapse
threedeeprinter profile image
Dan Benge

"[Technology] moves pretty fast. If you don't stop and take a look around once in awhile, you could miss it" -Ferris Bueller (slightly adjusted).

Collapse
themattyg profile image
Matt Graham

So basically, anyone who doesn’t work for a tech company and/or has a family.

Either way I’m screwed.