On Solving Problems for a Living

Bill Morrisson
3 min readJun 7, 2023

--

Courtesy of DALL.E

During my undergrad days, while enjoying my time between chilling with friends and contributing to opensource in my home country(occasionally mixed with attending lectures and dealing with assignments and projects), I used to browse Quora and came across heated discussions about whether software engineers were overpaid considering the complexity of their job. From my perspective at the time, it seemed like the job wasn’t as tough as many thought, especially if they had the right programming training. I assumed that an influx of trained individuals into the field would eventually lead to a drop in salaries.

However, some responses presented a different perspective, arguing that software engineering is stressful. This stress was attributed not only to external factors like long work hours and being on-call, but also to the intrinsic nature of the job, like the need to constantly keep up with emerging technologies and advancements. Back then, I didn’t quite understand this viewpoint.

Now, with nearly a decade of software engineering under my belt, I’ve gained some insights. I’m fortunate to be on a team that shields me from stressors like pager duties, daily scrums, and countless meetings that my colleagues have to endure. But there’s a unique type of job-related stress that I face: the uncertainty of the next problem and the knowledge that I must do everything possible to solve it.

Nearly all jobs require problem-solving, but they differ in degree. At one end of the spectrum, jobs like call center work(which I have some experience dealing with) require you to stick to a script and transfer calls when necessary. These jobs can be stressful due to the harsh working conditions and long hours, but not because of the problem-solving aspect. Many occupations fall in the middle of the spectrum, where there are defined responsibilities with some room for improvisation and improvement. I believe software engineering, along with other highly compensated professions like medicine and law, lies at the extreme end of the spectrum. Unlike a lecturer repeating lectures or a bus driver driving the same route, a software engineer is always striving for uniqueness, factoring out code into reusable components, and automating operations.

This suggests that if you’re a software engineer, it’s because your skills are required to handle a continual array of new, unique problems. Problem-solving in this profession isn’t a matter of following predefined steps; it calls for a maximum utilization of technical and creative skills.

In that sense, software engineering parallels medical or legal practice. The job is not about applying a fixed set of techniques but about curing the patient or winning the case, requiring substantial knowledge and the ability to solve unique problems. This constant challenge can be stressful, especially when the problem might seem unsolvable or if you question your ability to solve it.

So, those who argue that software engineers are excessively paid should take into account that jobs involving broad domain problem-solving often come with substantial compensation. This isn’t surprising when considering the job’s demands (and no one seems to complain about doctors being overpaid).

I am curious about high-paying jobs that reside on the other end of the spectrum, where the work is more or less repetitive. I guess that such a job would be highly sought after, and its high compensation would likely be due to barriers to entry or the need for hard-to-acquire skills. If such jobs existed in the past, they’ve probably dwindled due to globalization and the removal of such barriers. However, jobs requiring difficult-to-acquire skills might still exist.

Love My Work? Here is How to Support Me!

--

--

Bill Morrisson
Bill Morrisson

Written by Bill Morrisson

Research Engineer. A home for poorly researched ideas that I find myself repeating a lot anyway!!!

No responses yet