Unfiltered Story #343035
About 5 years ago I was finishing college very slowly since I had became fully independent at a very young age for several reasons that escalated through my childhood. Having worked as a teenager showed to me very fast that retail is just not my cup of coffee. I was offered a programmer position at a “tech” startup in the retail sector.
They didn’t own any stores but they offered data for sales management, such as frequency of visits and most busy areas within stores. I was naive and didn’t expect the retail curse to reach all the way into stores providers and their upper management. Boy I was so innocent.
The startup had a very small board of directors and a female CEO, I was excited to work in a tech business directed by a woman. Turns out they pitch the “tech” part more as a cool thing to investors rather than anything related on tech development. The only board member who knew anything about “tech” was (supposedly) an engineer who previously started a retail related business in South America, which I never understood how much of business operation it ever got, but it was enough to fool the other board members of his “technological feat” by promising to adjust the server he had created for his previous venture to this startup.
Such server was basically a social network where you interact with corporations for discounts and loyalty programs. The design of the server was non-existent, you had to go through significant portions of the code, which consisted mostly of “foo”, “bar” and “obj” variable names and classes with names that had little to nothing to do with what they actually did. This “engineer” was the only documentation, and often he didn’t knew what his own mess of a code did.
About a month after I had started worked with them, the “engineer” decided to leave the company and work for a cinema chain. The IT department consisted of three people: one guy who took a class with me in college and was who recommended me to them, this “engineer” and myself, only the “engineer” knew half of the server inner-workings and now we had to figure out how to keep it growing with the business.
But this business had very little to do with what the server was actually “designed” for. It was designed as a store-front and user account management, not to calculate how many people visits an store and where. For some very weird reasons, the same server was being reused and it was horrible, not only because the existing code was a dumpster fire, but because it is very hard to modify and use a toilet as a car, and the business depends on that very fragile, dirty and slow car.
After this “engineer” leaved, my coworker had a very hard time getting anything done. I’m more machine than human so I’m capable of understand and redesign very bad software in a short period of time. I was given a task to migrate the servers to a new platform, which required finishing an incomplete version of the servers in order to avoid data transfer quotas, and to complete our new data storage, which was based on the Amazon API but as if written by a toddler.
About a month later, I got the servers migrated with the new version deployed and the storage online. I was moved into a a similar position to a CIO (I was referred by the directors as the CIO but it was an unofficial title with a raise, as far my contract went I was a programmer with sudo privileges).
This felt like a huge win, but it was a short lived victory, as a short time later I was given a heads-up that my coworker would be let go for low productivity. I tried to protest explaining that the code we had was in terrible shape and if we wouldn’t allocate a project to fix it, this would keep happening. It was very frustrating to point out to the CEO of a “tech” company the risks and challenges the business face, only to be told that “god will make it work out” (well, then hire god and not developers).
After my coworker was let go, we hired two more people and we tried to allocate as much time as possible to create documentation and refactor the server, but it was difficult while trying to accomplish business goals. We had to give support for clients and to establish connections with their systems to automatically fetch sales data for their retail operations reports.
This was another nightmare as I had to talk to our clients’ CIOs to plan these connections, select the platform for the exchange, security issues, network configurations… I expected to be lectured by graduated people with decades of experience on IT, some of our customers where large corporations with stores in all of Mexico. But then I found out how little to nothing the upper-ups in IT know. These are people in charge of IT who thinks “a VPN is frontier technology, we would never be able to implement one” (actual words from one of such CIOs who should be restricted kilometers away from a digital device).
The only good part of that job is that my latter two coworkers actually knew what where they doing and as a team we were capable of coming up with solutions when our clients didn’t knew how to do their job.
But regardless of our good team relationship, work conditions were still bad. We often had to do (unpaid) overtime, we lack proper equipment to work (only I was offered a decent laptop to work with), and we were still trying to get the server to a more maintainable state while dealing with new business requirements. Upper management was getting unsatisfied with our results.
Then we were told that after the server update, the in-store customers count was getting off by a lot (which by the way were labelled as “peasants” in the code). We couldn’t find any error in the current version, but after comparing with the old one, we noticed that one significant count result was never added to the grand total, instead it was lost in memory during run time (yes, the “engineer” forgot to add a variable to another) and that was why the count was off: data provided to customers UNTIL the new version was totally wrong. (This is why Test Driven Development exists).
I was told that if any of our clients had problems with their data, it was my fault and I was liable to go to jail because of that. I just pointed out that while at that time I was responsible for IT, it still was problem of the “engineer” director, who didn’t work there physically anymore, but legally still was one of the company directors.
My team members started to look for work elsewhere, I was still committed to get IT into shape, but was getting on the edge. I resisted quitting mainly because I really needed the money and while I was one of the lowest paid head of department (by a significant margin), it was the best salary I had so far in my life.
The last straw came when we finally got approval for a new hire, after I had a meltdown after being so done watching other departments close early while we got home to keep fixing their stupid servers. A just graduated female engineer showed to the interview, and seriously impressed me with her skills.
I felt from the begging that the CEO had a problem with her, because she was actually an engineer doing the hardwork, who understands the ins and outs of a digital system, while the CEO had made us writing her speechs for “woman in tech” events. Think on Jen from the “IT Crowd”, it was THAT bad. I remember when she had us sending bulk email from Gmail and we told her that Google was very not ok with free bulk email, and she just told us to “fix Google”.
About a month after our new team member had begun working with us, she was still getting familiar with the horrible code-base we had, and she was being slow as expected. But she did try, I remember staying late in office in case she had questions or was getting stuck, she leaved later in the night trying to finish her work despite me telling that she can go at 6 and it is ok if things are not done now. I expected her to have a slow learning curve as we all did, and her tasks were given with that expectation in mind.
Then in her spare time, she got hurt badly in the knee and she needed surgery. She was from another state, so she was going back home to recover, she was new to the city and was trying for opportunities but she had no close family or friends here.
As in other civilized countries, it is illegal to fire someone while on medical leave in Mexico. Guess what happened. I was told on monday that “by the way, we just fire her!” I felt terrible and contacted her and told that if she wanted to sue the company I would be on her side for anything she needed, but she was so done with their bullshit, and so was I.
A couple days after I presented my resignation and stayed just for one more month while training the new IT team (the older team quitted around the same time). I should have just leaved but I’m not a jerk (didn’t wanted to leave a mess for the new team) and it was a paid month. I was planning on going to the doctor since in Mexico you have 6 month of medical care after your last job, I was thinking on checking me up and then finish my college graduation.
After visiting the clinic, turns out my last employer was NOT this garbage of IT startup, they never registered us for all (if any) of the legal benefits any mexican worker is entitled to. So that why they fire her on illegal conditions (this actually could make a worse case for them, but it is also why you unionize).
On my last day, Forbes published that our CEO’s husband, who was CEO of another startup, was found out of defrauding international investors for years. It made shock though the mexican startup scene.
I went back to college and promised myself I would never return to the industry. Now I’m a academic Software Engineer teaching future developers why quality can’t be done without honestly and why ethics and regulation is so important in an industry that tries to scam anyone in reach.






