The stoic human with a software engineering job

Abhishek Prasad
6 min readMar 15, 2021

--

Photo by John Higgitt on Unsplash

Lately, with the pandemic going on, we all have had to adjust in a certain way. I have had to create personal mental boundaries and try not to let any negative thoughts inside that enclosed space which is shielded from the rest of the world. For me the only way to create that shield which needs to be setup in the first place was to get into stoicism. I wanna share how I looked into the key principles of stoicism and applied it to my work as a software engineer and how it helps me get through my daily life. It’s probably something I want to continue practicing through out my life. Having said that, this post wont include what work we need to do as a software engineer but how we can look into our daily life as a whole AKA this ain’t “stoic system design” or “stoic way of naming variables”.

So, we are in isolation, no one knows when are we gonna be able to see our families (I miss my parents a lot because I am away from my home country), no one knows if we are gonna go back into a lock down again, no one knows if we will have a job tomorrow. Now these are very emotionally heavy variables to be able to get past and remain functional to do our daily work. Let’s look at some ways stoic principles that can help us do that.

1. Live in Agreement with Nature

Humans are meant to apply reason and act like humans, not like animals.

The first part of making that agreement with reality or nature is to compartmentalise the unknown variables. If I wake up and I miss my family, I have to think more about the survival of my job to be able to see them once this pandemic is over. So one fear needs to be addressed first in order to be able to tackle the one after that, leading to a “priority of fears”. Once I was able to figure that out, I could use the same thing at my job. Eat the frog, work on the issue, use a creative and simple solution, deliver, but all of that needs to be done in isolation from one another. DONE! NO! BUGS! *Damn QA (I love them but damn it!)* Hydrate, plan the fix, isolate yourself from all the noise, fix it, go back to backlogs again. From all that fear and that dark cloud of negativity, the only reason I could compartmentalise was because I broke things down into one simple thing at a time, one Jira ticket at a time, one meeting at a time (while keeping the main goal in sight). Thinking this way helps me rationalise my personal and professional life, fears and anxiety.

2. Live by Virtue

To the Stoics it was clear that virtue must be its own reward. You do something because it is the right thing to do.
Doing the right thing is enough, it’s your nature and it’s your job.

Doing the right thing as an engineer would be, to be there to help your team, create documented Pull Requests so that there is as much context as one can get from reading it. Be responsible in reviewing your team’s work, lead by example if no one is doing that. If someone is doing that, shadow them. When in a meeting, make sure you get as much “solutioning” done in that meeting as possible. Every thing needs to be done with virtues of:

  • Wisdom or Prudence: Practice empathy through code and comments, put yourself in each of your team mates’ shoes and communicate to be able to become a better team to deliver top notch products.
  • Justice or Fairness: Be open to feedback, and give it in case you need to. Just make sure things are actionable and fair from every point of view you can think of.
  • Courage or Fortitude: Persevere to finish a task but if you fail have the courage to tell your delivery lead or team lead to expect a delay. We need all the courage we can get to communicate during this time.
  • Self-Discipline or Temperance: Make a routine for actions. Like first hour of resuming work in the morning and the afternoon, goes into PR reviews. Make sure to check how everyone’s progress is during daily stand ups.

3. Focus on What You Can Control, Accept What You Can’t

The above 2 principles are pretty lofty and heavy to be doing everyday by even the most extraordinary of people. We do need to keep our eye on the reality of things and realize that after my pull requests and feature delivery and meetings, there is not much I can do (things may vary based on your job title). Apart from calling my parents and friends and checking up on everyone, there is not much I can do. After doing body-weight workouts and some book reading for my mental health, there is not much I can do. After all that’s said and done, we can only control so much. So we do the best we can in each action, and keep working on the mental boundaries so that our “Sphere of acceptance”, remains resilient, perhaps, this is better for our future.

NOTE: I TAKE IT AS MY RESPONSIBILITY TO TAKE CARE OF MY BURNOUT. Had to say that in caps, you need to be kind to yourself too. Try to find the balance, as I join you in the same struggle.

4. Turn Obstacles into Opportunities — Perception Is Key

During these unprecedented times, a lot of perception switch needs to happen to not fall into depression and anxiety (my heart goes out to people who suffer from it, it’s no joke and if you feel like you need someone to talk to, reach out and book a slot in my calendar here). But as a practicing stoic, I need to be able to look at my fears and doubts and find a way to capitalize on them. The way I did that was by going back to the basics:

  • Database management
  • Networking
  • Basic algorithms and data structures
  • Design patterns and system designs

This one decision, has given me so much to read and research about that I feel bad if I don’t use my free time working on engineering problems. So rather than focusing on my anxiety, I get frustrated about proxies, reverse-proxies, networking protocols, hash maps, top K system design problems, etc. Just gotta look at the problem from a different angle, see if it makes any sense.

5. Amor Fati — Love Everything that Happens

This is the most powerful tool I have been able to practice this year. Both in my professional and personal life. I just try to reason with myself when I have my occasional bout with depression or anxiety (which has happened a bit too much for the last 1 year, hehe). If things have worked okay/good so far, and I am alive to be able to create a positive difference in my life, I should be glad to have that pressure/stress/whatever that’s keeping me down. It helps me empathize with myself and be kind. This helps me put an extra effort into that one PR review, that one meeting, that one friendship that has been rotting away, that one moment.

Please take the above opinions with a grain of salt, I am by no means 100% stoic all the time and neither am I the most unfortunate person, so I am grateful for what I have, knowing life is different for different people. I try my best to make things better for myself, just like you. Having said that, be kind to yourself, use reason and rationale whenever possible, and have a slice of cake. Until next time…

--

--

Abhishek Prasad
Abhishek Prasad

Written by Abhishek Prasad

Full-stack software engineer @carsomeMY , newbie lifter, still trying to figure things out and sow things to reap