Good Architecture: Data Model vs. Data Flow

Most architectural mistakes I’ve seen in software stem from a mistake either in the domain model or the data flow. Understanding what each of those two things is, how to do them both well, and how to balance the tensions between them is an essential skill every developer should invest in. Let’s use an exampleContinue reading “Good Architecture: Data Model vs. Data Flow”

4 Hiring Myths Common in HackerNews Discussions

Another day, another HackerNews discussion about hiring being broken. The most recent one I saw was triggered by a blog post by the formidable Aline Lerner (disclaimer: Aline is a friend and we collaborated on a hiring book last year). Now, I 100% agree that hiring is broken, and Aline’s post is really thoughtful. InContinue reading “4 Hiring Myths Common in HackerNews Discussions”

The Shape of Technical Debt

The term technical debt is so common that you’d be hard-pressed to find anyone in the software world that hasn’t heard of it. But what is technical debt? There are a few frameworks out there, so I’ll list them quickly, but then I’d like to present one I’ve found especially useful with the teams IContinue reading “The Shape of Technical Debt”

Hire people you believe in—believe in the people you hire

I was reading an amazing Twitter thread about Bill Grundfest, founder of The Comedy Cellar and the guy who discovered some of the most famous comedians. In the thread, which includes stories of Jon Stewart, Bill Maher, and Ray Romano, the pattern is essentially: Bill is able to detect talent, even early on in people’sContinue reading “Hire people you believe in—believe in the people you hire”

Code is a liability, not an asset

I loved this quote from the book Software Engineering at Google. Found it a helpful reminder. Earlier we made the assertion that “code is a liability, not an asset.” If that is true, why have we spent most of this book discussing the most efficient way to build software systems that can live for decades?Continue reading “Code is a liability, not an asset”

Is Revenue Model More Important than Culture?

HN Discussion Here: I always loved getting problems of the type “What is the limit as x approaches infinity” type in high-school/college. You’re given an equation (of the classic y=x format), and asked to derive what the value of y will be as x grows to infinity. One thing you learn pretty quickly aboutContinue reading “Is Revenue Model More Important than Culture?”

Disrespectful Design—Users aren’t stupid or lazy

It’s a common narrative in tech to design products with the assumption that users are stupid and lazy. I think that is both disrespectful and wrong. The idea is rooted in a lot of research around product usability, but it has been bastardized. Think of it as a perversion of the Don’t Make Me ThinkContinue reading “Disrespectful Design—Users aren’t stupid or lazy”

Data is Not a Substitute For Good Judgment

The tech industry prides itself on being “data-driven”. We’re so data-driven, in fact, that there are hundreds of startups building analytics tools (Segment alone lists over 100) and A/B testing tools (~30). We both laugh at but also secretly admire stories like Google A/B testing 40 shades of blue for its links. A typical consumer-productContinue reading “Data is Not a Substitute For Good Judgment”