by Kartik Godawat
#FirstWorldProblems I face as a software developer
First world problem: A relatively trivial or minor problem or frustration (implying a contrast with serious problems such as those that may be experienced in the developing world).
More often than not we, as developers, sitting in our nice, air-conditioned cubicles, forget about the actual problems in the world. We tend to think of our trivial issues as major problems. Here’s my attempt to narrate the “first world problems” that I have faced or thought about (some exaggerations included) on a typical, imaginary Friday.
9:00AM — It takes an eternity to reach my office.
It’s a fine Friday morning. I’m heading for my office in a shiny UberX, and the ETA is 45 minutes. Instead of reading something on my Kindle or listening to a podcast, I’m thinking how easy it would be if my office was only a minute away.
Somewhere in between these thoughts I also think about my cook, who travels that same amount of time by bicycle each day, just to prepare an on-time dinner for me.
But that thought isn’t enough to shake the feeling that I am the one who is suffering due to all this traveling around. As a result, for a thousandth time, I imagine moving to the insanely expensive apartment just next to my office. Three times the rent is totally worth it! Only if I could somehow afford it.
11:00AM-Only 30Mbps download speed
Now that I’ve reached the office after much effort on my part, I have some tea and take my time settling down. I launch a download for a Kaggle dataset. But something seems wrong! The download is shows an estimate of four hours but I need it NOW.
YouTube also refuses to buffer at 720p. I talk to my colleagues about the fact that the office internet is in the Stone Age. I conveniently ignore the fact that folks in my home town can’t even get enough bandwidth to support a decent video call with me.
11:30AM-Apocalypse now. WiFi went down
After committing my changes, I do a git push and the hammer strikes. The Internet is down. I immediately express my concern to my team and other teams sitting around. I’ve almost made up my mind to pack-up my bag and work from home.
Thankfully, after a couple of minutes, the Net is back and the world is saved. Phew! Anyhow, somewhere deep down, I’ve already made up my mind that I won’t be able to do much work today.
11:45AM-I need a MacBook
I’m working on a humble 6th gen i7 with 16GB RAM laptop. As I’m walking down the office corridor, I see a team working on MacBooks, flaunting their ability to swipe their fingers over that track-pad.
I envy them and wish I had a MacBook. Yes. That is it. That’s the reason I’m not as productive as they are. I ignore all the productivity tweaks I follow.
1:00PM-The cafeteria sucks
A not-so-great day so far. Now I reach the cafeteria with the hope of finding fine delicacies awaiting me. To my dismay, the food is pretty average, and I’m bored of eating the same kind of food everyday.
I attempt to eat a little, but then encourage my team to throw away the food on their plates and go for pizza at a place nearby. As we enter the pizza place, I walk past two little kids begging for something to eat. I pretend that they don’t even exist.
2:00PM-This Open Source library is broken
Displaying my exceptional search skills, I found a library on github which is supposed to solve my requirement. I did exactly as the README described, but it’s throwing some cryptic error in its source code. The function definition also could’ve been better, and it should have accepted a couple more tuning parameters.
I feel I shouldn’t waste a bit of time to check if there’s something I can do to fix the issue. It does not matter if I don’t document my code well or write covering test cases in my own projects. Since it’s an open-source project, the developer(s) who contributed are at fault for not being up to the mark.
I silently acknowledge the developer for publishing this and wasting my time, and move-on with my exceptionally strong search skills to find the solution.
2:30PM-I don’t get paid enough for this
My manager just asked me to deploy a new staging server for the client by this evening. I was hired to write code and that should be my only purpose. How dare they ask me to work as their DevOps engineer. I have an appraisal meeting in a half an hour. I decide that they MUST give me a good raise as I’m doing a lot more than I’m supposed to.
3:30PM-I didn’t get enough of a raise
My feedback was good. Management appreciated the efforts I put in and showed sympathy for problems I tackle everyday. But I walk out with a sad face. Why? Because I didn’t get that 45% raise that my friend in the other (heavily-funded) company just got.
How am I supposed to face my friends now? How can I even compete with Sharma Ji ka beta? Never mind the fact that I still got a double digit raise, which is noticeably higher than the inflation rate in my country.
4:00PM-Am I an Impostor?
I’m drinking tea, pondering this million dollar question. I’ve heard many people say that they suffer from Impostor Syndrome, and I guess I do too. As I finish the cup of stress-relieving green-tea, I start feeling tense because I might have THE syndrome!
Anything that can go wrong will go wrong
I wrote my test cases, I passed my code-reviews. I did everything what was expected of me. But the production deployment, scheduled for this evening, has failed.
I’m angry. Angry because I already have plans with friends. It seems that the situation could’ve been avoided if someone had written a ChaosMonkey test. Obviously, that someone isn’t going to be me. I can’t do all the work after all.
After an hour or so, the issue is fixed. I can finally go home, relax, and come back on Monday.
But on Monday morning, I open the Uber app and there are no cars available… And the cycle resets!
If you think of any of your problems are trivial, please do share in the comments.
Thank you very much for your time. If you enjoyed reading, please give me some claps so more people see the article. Thank you! And, until next time, have a great day :)