Software Engineer Job Is a Race against Time

Adam Vesecký
9 min readApr 11, 2020

Nowadays, software developers are the most desired people in the business sector. Demand for them has led their salaries to skyrocket, commonly exceeding $125k annually not only in the US, but in the entire world across the globe. What is more, developers living in countries with a lower degree of market power can work remote, earning a lot more the local market could ever offer, while operating at very low monthly expense.

Software engineer job, pictured by many as a holy grail, dreamed as a castle in the sky by those who have decided to venture into it, offers many challenges and opportunities. And many hurdles to jump.

Having been a developer since 2010, I’ve got to know many people from the industry that were blessed with abilities only a few possess. Still, being on a great trajectory, at a certain point, some of them derailed and eventually became trainwrecks — now they are failing to get a good job.

How did that come to pass? Let’s unravel this mystery with a few real-life examples:

Examples

#1: .NET developer, 47 years of age. Applied for a job in a corporate, had worked there for 9 years as a “Level 2 Engineer”, never made it up to Level 3, was laid off and now he can’t find a suitable job.

Reason: He had worked the whole time on a never-ending project in WinForms (obsolete .NET), hadn’t upgraded his skills as there was no need for it. It’s important to mention that he used to be one of the super-learners before he took the offer. Then, he lost his touch and disappeared in the corporate world.

#2: PHP developer and in-house administrator, 42 years of age. Had worked for 15 years on an invoicing software (PHP and MS Access) before the whole solution got migrated to 1ClickBusiness and his reason for working there had ceased to exist. Now he can’t find any job at all.

Reason: He failed to keep up with changing trends and technology, taking his knowledge of domain expertise as his redeeming quality and his job as eternally granted. His knowledge of PHP is obsolete and MS Access is almost dead.

#3: C++ developer, 37 years of age. A highly skilled super-learner, but the company he worked for got out of funding and now he can’t find a job he needs. This case is special as his performance is still over the moon, his abilities serve him well and his mental health is in a good shape. He has become more of a victim of circumstance.

Reasons:

  • His tech-stack is not in high demand — after he got married and fathered 2 children, he got himself 2 mortgages which drew a line at his minimal required income to pay his bills. In addition to that, C++ developer job’s demand is more volatile due to its specific criteria. Everyone needs a webpage yet just a few need a PLC controller. And he only knows C++.
  • He has always worked as a dev-only. He had spent too much time in startups, never seen the business from inside, which ruled out the possibility of going up to a management position.

Software Engineer Job is a race against time, it’s the fact many people who are at the start of their career seldom admit. Let’s consider the following situation: you are about to hire a full-stack developer and you have two candidates to choose from. One is 25, the other is 40.

The younger one doesn’t know much about web sockets or DNS, at the interview he barely wrote an algorithm that finds the second highest number in an array. But there are other qualities to consider — he is a fast learner, he loves experimenting, attends meetups and conferences, has many hobby projects from which he gathers new skills, he works hard and what is more, his salary expectations keep a lot of fresh air for future growth. What he lacks in experience, he makes up for in determination.

The older one knows data structures, sorting algorithms, graph theory and all networking protocols inside out and his performance in terms of writing code is very high. On the other hand, he has his own ways of doing things that are unlikely to change, not really a team player, is a bit conservative on experimenting and his salary expectations are hitting the upper bound of the budget.

For a position of a full-stack developer, companies that hire based on potential would go for the younger one. Luckily, there are many jobs where years of experience can’t be mitigated by qualities of fresh graduates, such as SDK C++ gurus, machine learning engineers or data specialists. Still, for many positions the market craves there is not enough space left for old-school engineers.

The age is one of the greatest afflictions in IT world. Age discrimination is rampant which results in decline of employability after reaching a certain age. Yet, it’s not only the age what puts the devs in jeopardy. Categorically, issues of age can’t be avoided. You can take better care of your brain and eat more food associated with slowing cognitive decline, but that’s not the main point of this article.

It’s important to be mindful of the future from the very beginning of your career. A bad career move is still better than no move at all. If you want to drive your working life in the uphill direction, here are several points I have surveyed throughout my journey while observing and learning from others, and I would recommend them as a subject of consideration at least:

Never linger in your comfort zone

Comfort zone is a dangerous thing, especially for someone who works in a large and well-established company, earning a lot of money with a little effort. The fireplace is always warm, there is always food in the fridge and each year ends with a 13th month’s pay. Year by year, lingering in your little box, until bad times come around and the company suddenly eliminates a number of dispensable positions. After a layoff, you may come to an unpleasant revelation that your former business title (e.g. “Director of Engineering”) is nothing but a dog tag, as well as your list of accolades.

There are many precedents of people becoming subjects of a mass layoff, regardless of the time of service rendered. Despite the company values and quotes such as “we are a family” or “we will always have a place for you”, like any enterprise, when tough times hit, it can always become “we have to let you go”. As such, unless you have a 1–1 CEO-type deal, never take your job for granted.

If you want to go for a safe corporate-path nonetheless, you better put yourself in a position where you are not expendable whatsoever, because at some point the company will need to reconsider: “This man costs us so much money and he is working a job any fresh graduate could equally carry out for much less. Why should we keep him?”.

Switch jobs

Frivolous though it may sound, as long as you are young, you shouldn’t work for a single company for too long unless you really believe in its mission, especially not when you only sit there 9–5 and write code, with no connection to the business . It’s no exception that some companies offer a deal that they will let you go to gain fresh experience elsewhere on a promise that you can come back any time, which is something both sides can benefit from. Every time I start working in a new company, meeting people who have worked there for 5+ years, I always ask myself the same question: “Do I want to take the same path as they did? How do I picture myself in their position after so many years?

Having worked for many companies, you don’t stagnate, you expand your skill set, learn new people’s processes and workflows. You will have more opportunities to explore a full extent of your potential, extending your network and making your journey more adventurous. And, of course, you may be treated as a job hopper. Therefore, make sure you can provide a good explanation about your past actions during an interview.

Don’t specialize

The fact that specializing in one domain bears fruit nowadays doesn’t mean it will be so forever. Having your career based on specific language, framework or technology, is a game of roulette. True, it pays off a lot if you are paid per hour as you can deliver very fast.

The IT world is flooded with React developers, Android developers, Java developers, and the like. Keep in mind that there were once people who labelled themselves Flash developers, now they are all but extinct. If you devote 15 years of your life to a technology that will lose its relevance overtime, you will have to start over. Cloud technologies have reduced demand for in-house administrators, AWS and Azure solutions changed the role of DevOps engineers and WordPress has become one of the most popular CMS systems that allow people to launch a website with zero programming. There are tools that can prove equal to challenges developers used to carry out by themselves in the past.

Creating a web for a local restaurant is no longer a government operation. You don’t need to know how to manage memory or how big O notation works in order to land a webpage or a mobile application. Some jobs are going to go the way of the dodo — web development, for instance, is on a high-demand now and it’s expected that the average salary for web developers will decrease over time, with way too many new people joining the industry.

It doesn’t matter what tech-stack you know. What matters is your ability to learn new things, because technologies change every day. Be T-shaped and techstack-agnostic. Don’t focus on patterns and libraries, focus on your ability to solve problems. Forget about framework religion, don’t cling to pedestrian copy&paste projects, pursue real challenges instead, have a few pet projects to experiment on. As Alvin Toffler stated, “The illiterate of the 21st century will not be those who cannot read and write, but those who cannot learn, unlearn and relearn”.

Know the domain

Take an interest in the domain you are part of. There is nothing worse than a developer working on projects for automotive industry who doesn’t know anything about automotive industry. If you don’t get to know the domain, you will always work under a non-technical person most of your career.

If you are interested in financial sector, work for companies that deliver financial applications. If you are into public transport issues, work on projects that tackle them. Know the product, know the market. While being in the loop, you will become more successful in delivering new features, bringing new insights and upholding your mission. Become a user of the product you’re building.

Pursue soft skills

This is imperative! Moving up to management is a natural career path for t-shaped people, yet these roles are limited in number. The older you are, the more you begin realize how valued soft skills are. Technical skills are important, don’t get me wrong, but it’s the soft skills that help you gain ground. What do you think chefs in restaurants do all day? Slice and dice? No, their success lies within their ability to train their staff. The same applies for development industry. Become a technical lead, be accountable — don’t work for your own gain or in order to look good. Run your own team, drive the company into the right direction as a whole, help define goals and facilitate their achievements. Leave footprints.

Soft skills can’t be learned from your home office chair while watching Youtube videos. They are a result of a continuous and deliberate effort to move things forward. It’s easy to learn a new technology, yet it’s relatively difficult to train on how to solve problems in communication or how to be an effective member of a team. Find a good mentorship, socialize and surround yourself with people that positively influence you. Gather knowledge by experimenting, observing and learning from others.

Conclusion

In sharp contrast with professions such as medicine, math or science, software engineering is a rapidly-changing field, requiring a constant learning attitude and a multi-disciplinary approach. As you get older, it’s soft skills and your previous experience what will come into play. There are many software engineers in their 40’s, 50’s and even 60’s who are still bringing their A game every second, not as developers, but as experienced leaders.

Software Engineer job is a race against time with many hurdles to jump. As with top-level athletes, it’s a race a few can actually run forever. Learn the skills, build your mindset, know your domain, mentor others and move up to leadership where you can make full use of your experience you had gained through the hard work.

--

--

Adam Vesecký

Teacher, mentor, gamification facilitator, software engineer.