The issues I will discuss in this article are not unique to the software industry. In fact, this is expected in many large companies. Many would say the title of this article should be “Tech Industry Jobs Bullshit”. I’ve been programming for over two decades and been in and out of business. I did boring jobs in huge financial and consulting companies and also worked on a cool graphics project for a small software company that produced cool tools for movie studios. One thing I can tell you is that a lot of “software engineers”, especially those working in very large companies, do very little work. In fact, many of them are basically paid to do very little (notice I said “a lot”, not “everything”).
I remember when I was working for a big financial company as a software developer. I kept wondering why we were doing very little coding. Most of my time was spent attending useless meetings, preparing boring slides, creating wacky Excel sheets and Gantt charts and maybe 1-2 hours of coding a day if I even had luck. The software my team and I worked on was basically a javascript web application that monitored and collected details of the company’s financial transactions. Believe me when I tell you that I could have worked on the whole software myself in 5 months. The complete solution could not have more than 24,000 lines of code (including many generated codes). My team spent almost 3 years building this software, most of the time spent in meetings, bickering over the smallest feature, like if we should display certain data using a particular graph and what color the graph should be. Even my main solo side project was more complex than our software at work. We were about 20 people in the team and there was nothing to show for it. There were a lot of communication bottlenecks, policy and inefficient workflows. In some cases, the supervisor or “team leader” would step in and “contribute” by giving us worthless motivation behind the colors in the charts, why the information should be displayed a certain way, and blah blah blah. Basically a bunch of unnecessary pseudo-depth.
Don’t think that was just my experience in this position. It was the same in several other jobs, including the consulting firms I worked for. My experience isn’t even unique in this regard, many avid programmers I’ve spoken to complain about how little code they write and how much time they spend in meetings. You see, we were always busy but rarely productive. At any point in working hours, we were always on one task or the other, having to do one thing or the other. We have never been idle. However, I think a lot of time has been lost.
Another problem with many of these jobs is how little you learn. For cool companies like FAANG or MAANG (if you prefer), you are constantly working on a small task in a big project. Many people would call it “A cog in the wheel”. Don’t be surprised when a project you’ve had 1 year of work on can be replicated by a freelance developer outside of the crappy corporate atmosphere in 2 months. You will be asked to write a 50 page documentation for some code you have written. You will perform both unnecessary and useful tests. You will discuss with your colleagues and your supervisor every decision you make, and the list goes on. These are reasons why you will spend 1 year doing what another developer could do in 2 months. The sad thing is that you get used to being busy but not productive, and when I say busy, I mean pretending to be working hard when you’re being watched. In other words, you will master the art of “visual service”.
I found peace and fulfillment when I moved to the small VFX studio I worked for. I worked with C++ and some graphics APIs including OpenGL and DirectX. We’ve been working on some really complex post-processing effects for color grading, tone mapping, screen space volumetric effects, and lots of other cool stuff. We were only 3 in the team and my 2 other colleagues were among the most passionate programmers I have ever met. Every day felt like a new day of learning, exploring and discovering. We wrote, architected and debugged a lot of code. I also had the chance to really hone my math skills as we were constantly applying very complex math to our tasks. No politics, no bullshit, just straight forward coding and constant learning. I remember that we chose to work overtime because of our addiction to the problem we were solving.
Right now, I’m working for myself. Do freelance work and short-term contracts and I can feel the productivity too. I will never go back to work for big companies because I didn’t learn anything there. I had no fulfillment there and rather than making friends, I only made enemies. Money was good, but I would trade money for fulfillment, interesting and intellectually challenging work, a soul, and the ability to not be in the same room as my enemies.
Thanks for reading this far.