caseymarquis
Joined 10 years ago
Joined 10 years ago
The book doesn't use the phrase founder mode, but it discusses the transition from a founder oriented company to a culture oriented company in detail.
The human analog works well here. Advice for parenting a baby, toddler, child, or teenager is all different. People's needs change over time. At a certain point people become adults and need mentoring more than parenting.
Almost every article on how to run a company fails to qualify the stage of growth that the company is in. Once you start thinking about how companies evolve over time (somewhat predictably), it changes your perspective. PG is right in the correct context. Those advising AirBNB are also correct, in the right context. Following either piece of advice blindly is just living in a cargo cult.
https://www.amazon.com/Managing-Corporate-Lifecycles-Ichak-A...
(Like any business book, it's at least 20% BS, but the remaining 80% is quite good. If you do read the book, do not read the first few chapters and assume you've gotten the whole idea. The book has a very good paradigm on worker profiles and what is needed in different stages of growth in its later chapters.)
I'm usually one of the smarter people in the room when doing software development and spend a lot of time helping others. In construction, I'm the enthusiastic idiot as the skillset is different. Most tech workers underestimate how high skilled tradework and many other positions outside their experience are, especially management work.
Having said all that, I feel uniquely qualified to offer a rebuttal. The article is describing a clear pattern that I see at large companies that are not focused on software development or lack solid engineering leadership. Ironically, the problem gets worse the more a company tries to outsource IT as they face all the same challenges with less control. It is an organizational health issue however, not some universal truth. If tech workers lack anything, it's experience with organizational growth, change, and group dynamics, not construction experience. Organizations are like people, they grow, change, figure out who they are, have identity crises and need different things in different phases. Ask the highest level/most competent manager you have access to for book recommendations if you're interested in this.
Anyway, back on topic, software "gruntwork" typically implies a department lacks the agency to automate away said gruntwork or lacks the skills to do so. As an example, I work with many organizations using the JVM, but none of them use Scala, Kotlin, Clojure, or any other "nice" JVM language. They use Java. In some cases Java 8. If you're writing Java, there is absolutely stupid gruntwork. I've written example applications for some of these organizations and I had to create code generation tools to stay sane in this environment. In software, you eliminate stupid gruntwork with tools, not people.
We do need average enthusiasts in software development, but it's not the same as construction. In construction the less talented person fetches things and does setup work. In software development, the less talented workers spend most of their time using libraries, plugins, frameworks, compilers, interpreters, databases, and languages while the more talented workers write them.
My experience isn't universal, and I'd be interested in hearing some dissenting opinions on this.
It's often better to be in the hiring position than in the applying position. But it's awful for everyone involved.
The way to avoid this mess when applying for jobs is to build up a network and lean on it for new positions. I wonder if dating may have a similar alternative approach.
You can't really have a reasonable conversation about ORMs without defining the feature set your ORM has. If an ORM doesn't apply type safety to SQL queries and translate typed code expressions to equivalent SQL expressions, it's not performing two of the key functions I associate with ORMs. If I didn't take these features for granted, I would probably question how useful ORMs are too!
I think the reason it's so hard to have a conversation about ORMs in general is that we're often lumping radically different systems together and then making a blanket judgement. Again, it's like working with C macros, getting annoyed with them, and then judging all macro systems to be bad.
It takes 6 months to act on customer feedback with our current release strategy, and a full year to fix the bugs related to that feedback. We should be rapidly iterating on feedback quickly to avoid churn. Let's try xyz...
Meanwhile, you have to live with the consequences of AI generated code.
Case in point: My wife was trying to build a system to generate POs per vendor from a series of workorders a couple weeks ago. She was using AirTable, which vastly simplifies the creation and use of relational databases. Given a lack of database experience, the structure that she made was misaligned with what she actually needed (and completely denormalized). Putting it into production would have caused major problems over time.
This made me realize that writing code is only one of the barriers to entry in software. Eliminating this barrier effectively gives everyone in the world access to a small team of incredibly junior developers who have no idea what they're doing.
Just like mismanaged DIY home projects create more work for professional contractors, I think AI might -oddly enough- create more positions for mid-tier and higher developers.
I’ve always disliked it for that reason.
In roughly November of 2025, “software developer” stopped being a position that humans fill directly. We all became architects and technical managers. Even the most complex code is now pair programmed with an AI.
I’ve chosen go for all new backend work since January 2026.
Development is now about good architecture that optimizes for locality of reasoning, rock solid testing, and categorizing risk on modules to decide what needs human pair programming and detailed review, and what can be safely vibecoded and left to AI to manage.
Frontend dev is now vibecoded directly by PMs at my organization within very specific and heavily enforced architectural constraints. The quality of work went up substantially because the experienced devs now just focus on the rules and review for the fronted codebases, while the PMs focus entirely on UX.
It is a strange new world.