A story in a few parts about what happened
Published on
It's been a long time, hasn't it?
A few months back, I had some pretty life-changing news; I accepted an offer with a company and got a full-time software developer position to write Python.
In my old position, I wasn't in the best place financially. That's not exactly an original story, and I'm not complaining, but I wasn't well-off at all, and I wasn't doing what I wanted professionally to earn an income. I was looking what felt like forever to become a full-time software developer.
Back in August, I got an offer and it make a big deal for me and started enabling a new path for my future family. It was fully remote, and paid me enough that I would soon be able to move up the ladder socioconomically. From not-very-well paid, to decently well-paid, it was a big deal for me.
In the weeks leading up to me working my new position, I made the executive decision to basically "shut down" my personal website. I didn't feel much joy in writing, and I lacked a lot of the cool features that other blogs ran with. I don't like Zola to keep using it all that much, and wanted to create something of my own that I could use in my own career, but never got around to finishing it.
So I decided to make a commit and disable most of my site. I didn't want to maintain it, and nobody was really reading anyways. As far as I can tell, as someone who doesn't use any form of analytics tools to view usage, there was really nobody reading my website. Not a complaint, just me dealing with the evidence to support my justification to remove sections from my website.
For over three months my website was gone, and I turned it off because I thought it was better that way. I ended up turning off things I shouldn't have, but I dealt with it. For three months I worked my job and didn't even think about coming back here.
Until now.
In the time of three months, I was able to reach new financial goals I had set about and had my fair share of new adventures. I went to RacketCon for the first time, and it was awesome to be amongst some fellow Racketeers for once. On that trip I visited Providence, Rhode Island for a bit, adding yet another city in the Noreastern part of the U.S. I have now visited. I was even able to visit friends and family and do things I normally wouldn't be able to do had I continued to work in-person at my old job. The benefits of working remotely were appreciated greatly.
In my time working remotely, I learned a few lessons about the corporate world. I didn't really gain any new technical insight; no one on my team really cared about making things do better, our ultimate goal was smooth and painless process of assisting other teams within the company. Making sure things stayed online, making sure things produced accurate results (because we used floating point types... a lot...). It was a lot of database correctness, exporting, spreadsheet processing, and other general ETL pipeline-y kind of stuff. All in Python.
Yep, all the negatives of Python I have learned to hate all came with me to this new job, and lo and behold, I learned that all of our Python projects were done in the most random, non-sensible manner. Even though Python is an object-oriented language, this paradigm was not used in any meaningful manner, even though, it should have been. Logic would have been more concrete by defining subclasses inheriting from a base template, but sadly that was thrown out the window long before I arrived.
Other issues appeared, like use of the typing
library, which is a library that adds Python AST support for type signatures, so you can run static language checkers across the project and determine the "correctness" of Python code. However, we didn't use mypy
, and we barely used typing
in a meaningful aspect. The bare-minimum we would do is run pyflakes
across some scripts and call it a day.
My boss at one point had me investigate whether pyflakes
would be able to read if arguments in functions were used or not, and to spring an error in the case that they aren't. This is not a standard feature of pyflakes
, because it's literally not meaningful. Unused arguments are nothing more than pointer passes to encapsulated PyObjects
, so at best it's an 8-byte copy of an address that may or may not ever get used. Python is a dynamic language, so why does my boss fixate on this aspect so much? I don't know.
I gave up and wrote him a mini-research paper which sort of went un-noticed and he still told me to install a pyflakes
extension called pyflakes-unused-arguments
and run it over the code. It didn't even matter, because our code was decently solid that we never had functions with unused arguments. We were classier, we used globals like real professionals.
My second month in and I'm assigned a big task of working on a total re-write of a codebase that I didn't write. A big aspect of our jobs is taking code that other people wrote and getting it integrated into our online platform. This was the suckiest part of the job, because being handed several thousand lines of code all using a ton of numpy
computations and other pandas
utility stuff was the least fun thing I could ever think of. In title I was a programmer; in essence, I looked at spreadsheets 90% of my day and cross-referenced information. The other fun duty I had was waiting on people to respond to emails, or submitting tickets to the IT department for fixes to random issues that spring up.
Overall, I didn't like this job, but I wasn't about to start looking for a new one right away. I figured I could tolerate whatever they threw at me for a year then dance my way into the sunset when I felt it was the right time. A big name company like that on my resume would look better than most things I've ever held. If I could keep it for a year, that is.
In the tech-downturn of November 2022, Elon Musk decided to axe several thousand tech workers from Twitter thanks to his semi-hostile takeover. He brought the company from 7,500 workers to a mere 2,000 in the span of a month or two. This however, was an echo of something much larger: more layoffs. November was quite the brutal month.
Mark Zuckerberg, CEO of Meta/Facebook, wrote on November 9 that he decided to cut the workforce down by about 11,000 workers, much larger than that of Twitter. Turns out, Meta's offerings weren't that rich/successful. A lot of talented people who had a large enough company to pay for whatever research they could have ever asked for, got dumped. Even people like John Carmack, maker of the original DOOM, decided to end his partnership with Oculus/Meta since he lost interested in their VR/AR developments, and felt his voice was useless.
Shopify got hit, Airbnb got hit, most bignames got hit, and even companies outside of the tech world got hit, namely companies that exist in the finance circles. Let's not even forget all the crypto crashes of 2022 and companies closing left and right due to cyber attacks, rug pulls, and other such nonsense that makes crypto such an inherent joke.
The reasons for the sudden tech worker hate most likely stems from the fact that the U.S. Federal Reserve decided to raise the national interest rate so high that to many companies it was an absolute death knell. The housing market was in such a crisis, and the inflation rate was only getting worse. People were absorbing financial derivatives left and right, but no one wanted to hold onto said assets the minute the rate gets a little too high (stocks, houses, etc). This shows signs that financial derivatives were either valued too low, or maybe even overvalued. Airbnb has the largest fault in this for converting regular people into pseudo "landlords" who absorb homes and convert them into "vacation getaways".
But anyways, the finance regions got butterly-effect'd hard because of this. Rates go up, meaning less people will be looking for loans, meaning new revenue opportunities are going to squander, and fixed-rate mortgages don't yield enough profit to pay down other types of debt. If banks issued out mortgages/loans and depended upon other mortgages/loans they had to flourish and pay out to cover, then they would be in serious danger, and as such would look to mitigage fallout as much as possible.
Housing is a slow-growing area, and the supply is vastly limited. Houses do not spring up fast enough to cover the amount of people with sudden desires to own housing. In some cases during the pandemic, many people teamed up to form multi-family homes in order to become their own landlords to avoid apartments. But this put a gash on apartments, and apartments were either rented out due to necessity, or because homes were simply not available. I remember during the pandemic when open houses were frequently done, the lines to see the homes would be around the corner. Now I don't see any open houses, or any lines around the corners, which can signify a nobody's buying/selling market.
Real estate as a whole is an entire market that one can invest in, and some of the biggest funds out there depend on real estate to be a breadwinner. Pensions, retirements, and mixed-market hedge funds all use real estate as a means to stabilize potentially other unstable market derivatives, like stocks, debt and bonds. Because housing is always a direct need, financial analysts will most likely always rate real estate derivatives as "solid" or "buy".
However, real estate is down, because nobody is going to be moving when rates are too high. The rates are so high that I imagine that everyone fro middle-class and lower are not likely to want to move and borrow on rates that are as high as 7%. Everyone who got a 2% rating during the pandemic should be blessed and lucky; now the rest of us have to suffer and figure out what to do next. Borrowing power is much harder, and few people will be able to pay off mortgages since minimum wage has not increased. Potentially, this is the worst timeline for everyone in the country.
Now, all of the above is not really any new insight. The inflation rate has been growing, corporate profits are up, congressmen salaries are up, yet minimum wage bumps did not get voted in thanks to many seedy and unhelpful politicians looking to solidify their bottom lines and make sure their corporate benefactors are pleased with their yachts, mansions and private jets.
But because of the above story I just told, it is part of the reason why I was laid off from my job.
On October 25th, I signed onto my work laptop and was asked to join a meeting with my manager and our boss. I did not have a good feeling going into this when I saw that the big boss was in this call.
A few weeks back, I received word that our company was in dire straights. I don't want to go into the nitty details about it, but it was unfortunate for us. Our company was taking massive losses and we were losing millions of dollars a month. I was a newcomer to the company, so I was sure none of it was my fault. After all, I didn't lose anyone money, it's all the other people who did this.
Our manager was confident that this bad news was not going to hit our team. The financial losses we were suffering would force numerous layoffs from the company, and that's a reasonable strategy for when your profits don't scale with headcount. Anyone can surely understand that, it's business and sometimes you need new faces and approaches, even if it means scaling things back and increasing workload for now-smaller teams. It sucks, but businesses make hard decisions.
However, in our case, this loss did come back to haunt us.
Back to October 25th, I was informed my job was terminated, effective January 3rd in 2023.
I was gutted. They told me to take the rest of the day off, so I played Titan Quest the rest of the day.
I can't say I was surprised to hear this news when weeks before that we were told about the changes soon to be coming to the company. I am however more angry to see that despite none of this being my fault, I was still removed. I was part of a small team, and making our team smaller would put my other teammates in a much worse position. In fact, with my removal, it's already putting my other teammate who works closely with me in a not nice position and will effect him for months.
The thing that annoys me is that with a company this large, the one person issuing the layoffs doesn't take any blame whatsoever, and puts it all on the workers. We have thousands of workers, yet it's not any of their direct faults for losing so much money, but the fact that the CEO does not take charge of this at all. Everything could have been prevented, but it wasn't. The CEO could instead say that he's taking a paycut and less bonuses this year, but he didn't. He's still getting paid the same to have the same shitty leadership that got us to where we were in the end anyway.
There is no mansion you could buy worth a million dollars. There are homes that cost millions of dollars, sure, but to splurge on this and to even say you want multiple of them, is just plain disgusting in my eyes. CEOs are given ultimately the same power of Gods in the world of capitalism, and playing with the lives of everyone underneath them in such a dangerous and disgusting way is a tragedy. Yet CEO ego mindsets prevent them from accepting blame, and must be shifted onto the thousands of people who have no voices, and no power.
Being mad or being upset doesn't change the outcome, and I have to accept that. The company is more than willing to provide me services upon leaving, which I am grateful for. I could say that I learned a lesson from all this, but I really didn't. I didn't trust megacorporations to start with, and I certainly don't now. I didn't gain any new technical insight into programming, so this really wasn't anything meaningful to me in any capacity.
I have no love for them, and I won't leave them any positive reviews for only giving me the equivalent of eight weeks of actual employment. Why hire me if the company sucks? This was a waste of my time and the company's time. You could say I'm bitter, and maybe I am, but they decided to lay me off right after my birthday.
Two months pass by and I have effectively stopped trying to engage in larger on-going projects. Any new learning or onboarding I would have had to do was basically suspended, and any IT ticket requests I had shriveled and went unanswered. I stuck by and didn't engage much in conversations. I tried to make myself like that of a ghost and just fly under the radar long enough until my termination date.
Months back I tried asking the team about performance metrics and how we gauge performance to reduce cloud costs, since we run very heavy numpy
workloads in the cloud. Naturally I was met with a "we don't measure that" sort of answer and was dismissed, but I noticed the project I was working on, the code that I didn't write originally, was running really slow, and I tried my best to debug it and come up with clever workarounds, but frankly the answer is that it's slow because it goes too large. A computation costs 4 seconds, but when you scale it to 10 computations, it would take well over a minute, and not 40 seconds. Yeah, this was a problem.
In my last week here, I am left sort of laughing at how bad it's going to leave them, as the person who wrote the original code left the company weeks ago (probably due to layoffs, I imagine). The code I was working on was still slow after all this time, and I had no clear intentions of trying to figure out why. It was never my given goal to make it faster, and frankly if it were up to me, I would re-write it, because the original code is actually hell, and for anyone hoping to maintain it in the future for important uses, it's not going to be fun to maintain. Like, at all.
On top of that, since it's Python, it does lend itself to relying on C++ extensions for numpy
and pandas
, but that only gets you so far. The code is just... Not good, and not well designed. The person who wrote it wasn't a programmer, and it would have been better if we were given the program heuristics rather than have a stray non-coder person write it. Either way, if the goal was to provide reasonably correct information and reduce cloud costs (you know, to offset the fact the company is losing millions of dollars a month?), why would you ever pick Python for this?
The code is not fast, and they're going to be scrambling once they realize it is not fast. My co-worker, to the best of my knowledge, is not going to be able to solve this, nor do I think anyone on my team will undertake the work needed to repair it. So in the end, the company is unfortunately going to have to live with this punishment, and I think that's the worst outcome imaginable for me. I didn't get to help, and because of the company's terminations, they will be under-equipped to solve the upcoming problems.
I had a lot of time to think about the given scenario, and I decided that before my next job, I want to make an impact of my own. This job sucked, and it took a lot of time away from my own personal drive. I like programming, which I think is more than what most people can say. I find it fascinating. Yet everyone on my team seemed like they just didn't care, and nobody was invested in technology on the same level as me.
For this reason, I have decided to start my own studio with two friends who are going to only be slightly involved as time goes on. My reasoning is as follows: company layoffs are never going to not go away, so I might as well secure my own future by building my own abilities up, and to do that, I need a brand and an identity by which I can develop my own organization. It's something I've never done, yet it seems to be a reoccurring problem for me. I don't think I'll ever find an organization that'll ever treat me nicely, therefore, I should simply make my own.
The studio is still not quite public ready, and it could be weeks to months before I think I am ready to introduce it to the world for real. But now I have much more time to get it ready, to work with technology I care about, invest in open source, and carve my own path away from shady organizations who hire programmers and treat them like total dogshit.
So where was I? Ah yes, this website.
I plan on writing on here again, using this as my main writing platform. The reasons for it is that I once tried to leverage my exposure, and I used dev.to to publish some small articles about Zig or Python or whatever, but that site is more cluttered than I once thought, and great ideas and articles with actual content and material to them will inevitably get squashed by things like "20+ React Tricks You can do RIGHT NOW!" or whatever. It's a lot of trash, sorry to anyone deeply invested in it. You're better off doing the classic RTFM.
With a repository I started working on called zigtoys, I have some more insight into developing WASM applications with Zig. I plan on deploying some here, using this as the platform to do such. I plan on continuing writing, and to possibly continue working on my own static site generator creo, which is currently broken and doesn't really do anything I want.
The upcoming month will have a lot of challenges for me, some personal and some technical, but I hope to overcome many challenges and thrive in a new wave of creativity in 2023. But I will be back, and this site will live on once again.
Immediate changes coming soon:
Thank you for reading and I hope to see you very soon with new stuff.
Happy new year!