Articles Essays · Cahier nº 2NoticeBack cover Back cover

EssaysCahier nº 2

What is my job as a software engineer?

Essays · nº 2NoticeWhat is my job as a software engineer?

What is my job as a software engineer?

Written November 2021 · Essays, nº 2 · 4 minutes

A while back at a party someone asked me the usual question: "what do you do for a living?". In a bit of an automated manner I said that I was a software engineer for TomTom, the location company and that I was working on doing maps for autonomous vehicle.

I could see the usual spark in the topic, I make cars drives themselves! What an incredible thing to be part of.

As much as it is true I was bothered by how unrealistic that description of my work was. There are thousands of people making cars drives themselves around the globe! So what do I actually do? what is my actual day-to-day work?

1 · Thinking the complexity and make it reproducible

We then started a deeper discussion about our respective jobs, it turns out he also was a software engineer working into making a test framework for payment devices.

So let's finally answer that question. What we came up with as a job description is:

We think the complexity of a task from one end to the other, looking at all possible states, all transitions, all constraints and every needed operations.

Once we have a clear vision of the operations' maze that is needed in our mind we encode that within a machine to make it endlessly reproducible (given there is no Zombie apocalypse of course).

Okay, that's a convoluted way of explaining our work. There is a lot in here, let's unfold a bit.

First it means that whenever we interact with any computer in any way, the logic to do whatever the computer is doing (rendering this blog for example), was once spread among multiple of humans thoughts.

Second, we as developers holds a lot of complexity at any given time in our brain. We are retaining as much as possible the maze that is our code, from the format of the data to the error handling channel.

Third, I am not producing a map ever, the computer is, I am thinking on how to produce it with my coworkers in order for the machine to do the job.

2 · The color change

So, why am I writing about that besides being able to have an unconventional answer when asked what I do for a living?

Have you ever heard about that none technical person who casually asks to change the website color entirely?

Well, we as developers we have! Let me tell you what happen at that moment in our brain, we start to skim through the code in our head. We load the whole context of where and how those colors are defined, rendered, if there is any variations of those colors, if changing them might mean changing other colors to adapt the style, where are those other colors encoded and ingested by the system?

While we are loading such huge information context in our head to assess the query someone is looking at us expecting a quick answer (and often thinking that changing a color is easy).

3 · Know yourself and others

So what can we draw out of those observations?

As developers our job is to pre-think complexity and make it behave the same way for eternity.

That is a heavy task on an everyday job! Every morning loading thousands of already encoded cases, then thinking the next one, then transcribing it in the machine!

This post is not a complaint, I absolutely love my work, but I think it matters that the rest of the world understand our job from that perspective. Disturbing us during work is the same as blowing on a house card. Asking for a simple question is the same as asking for us to load half of the system in our brain to see where your question would fit.

Having more people aware of the cognitive load of our job makes working as a team easier. The same goes of course for every other job around software, the more we deeply understand others work the better we handle our interactions at work.

So next time someone asks you what you do for a living, think twice and ask yourself, what do you mentally and physically do exactly?

Where to next

This series
Previous: Nº 1 — DevOps: Accelerate software not human Nº 3 is in preparation.
This cahier
jarleton.dev/essays/2/

About the author

Paul Jarleton

Agentic-ready Platform and DevEx

With more than 15 years of experience from scales-up to Spotify,
I sharpened skills within the Cloud, Platform and DevEx realm.
I am now happy to bring this knowledge to grow your business foundations.

Your product is only as good as the tools your developers uses everyday.

bio scrolls down

Hire me

Available from March 2027

jarleton.dev · Essays nº 2 · 2021

Cahier nº 2

· drag to pan · double-tap to zoom