I just started another contract and I was pretty excited about it. The pay is decent and they are super nice and genuine people. I looked at the code before I accepted, skimming over it – it looked fine. It consisted of Postgres, Prisma (meh), Typescript, Next.js (meh), and tRPC (meh) – but simple enough.

I got into the code and started writing things… better; you know, based on experience :) This. girl. can’t. code. She spent the majority of her career at LinkedIn and doing ember (lol) and it shows. She has zero startup experience and zero experience bringing a product from zero-to-one. It’s absolutely riddled with bugs, wrong or missing typings, and just bad code. Oh and she did what every mediocre CTO does… chose next because it has SSR, but did NOTHING to implement it, making it completely pointless.

So I started to fix some of it as I went and she’s pretty into a bunch of it, but some things she’s just stubborn on, like destructuring the living hell out of everything. LISTEN! If your React component destructures it’s arguments within the parameters, you might as well just pass 50 arguments to your functions, not using an object. It’s such a simple and universal concept… 3-4 or more params and supply your function with an object instead. But no. She likes it. And when chaining she insists on doing it alllll the way though. WHY?! I just caved because I’m a contractor. Not my problem.

Here’s another great thing. Her pattern for relational databases is COMPLETELY the opposite of what software engineers have agreed on is best practice for decades. Again, I caved, but we had a call yesterday about my code. Here’s how it went:

Her: what’s up?

Me: You asked me to talk…

Her: Yeah. I’m confused about the work you did. You made the line items for invoices related to products.

Me: Yeah, the user can pre-define them and pick them, and they have the price and other info we’d need, so the user wouldn’t have to type them in each time.

Her: But what advantages does it have?

Me: More simple forms and better performance.

Her: Can’t we just look through [thousands to millions of] records to see what was last entered and populate the form with that?

Me: Yes, but it’s going to bring our system to a grinding halt with larger customers and what if the last person put in 0 as a price because they were giving them a discount?

Her: Well I don’t see why we can’t follow the pattern we did on another page. How is it different?

Me: What if I rename this and copy things over each time?

Her: Great.

Dude. The whole point of a relational database is so you don’t have to millions of records with the same data – saving a ton of space. I did bring this up in the mix somewhere and she was like yeah, sure, but what else? But what’s ironic is for the customer records I added fields for billing and mailing addresses. I figured I’d just put them on the customer to reduce complexity and save dev time. Nope. Make that non-reusable set of data reusable and the reusable data not reusable. Okay, sure… whatever you want my queen.

They want to hire me in a few weeks when they raise, but god damn… she doesn’t understand basic engineering principals. WHyh on earth would I want to work under her? My last (wannabe) “CTO” was equally as trash, I don’t want to repeat that frustration that leads to me getting fired.

She absolutely love me and knows I am much stronger engineer than her, but like my last job she doesn’t let her lack of qualifications and experience get in the way of her thinking she’s right. Sorry, I won’t be joining your company full time, unless you step down, which you surely won’t.

I just don’t get it. The CEO is her friend, but I run circles around her. I’ve literally trained junior engineers to the extent they’d run circles around her. Just stop already. Know your limitations and lean on people who are better than you. IT’S FINE to not know everything, but admit it already.

Anyway, this place it trash like the last and I don’t want to work here, even if they are paying me hundreds of dollars an hour. I just despise incompetency. Stop hiring your friends and awful CTOs in general. Please. Please. Please.