We are happy each time we disagree, because we know we’re going to learn something new; it’s going to make some sparkle. —Bertrand Piccard, Swiss explorer The Late Night Slack Ping It’s 11:47 PM on a Tuesday night and I’m trying to figure out why our database is locking up in staging when the user hits three APIs in just the right order. We have a Freckle 3rd grade math…
It’s late, I’m on my second decaf, and I’ve been putting off adding a terminal to Kale for days — convinced it’ll be the usual slog of incompatible libraries, StackOverflow spelunking, and documentation rabbit holes. Then I remember: none of that applies anymore. I make a branch, chat with Claude Code for five minutes, and alt-tab away. Thirty minutes later, the agent…
“Our goal is to inspire every person at Netflix to be excellent at their job. If you would not fight hard to keep someone at Netflix, we want to make it safe and quick to let them go.” — Reed Hastings, No Rules Rules The early morning playbook It’s 8:30am on a Monday; I’m never at the office this early, everybody knows I’m a night owl who rolls in dangerously close to…
If you want to catch trout, don’t fish in the bathtub. —Popular saying 1. Rough awakening I hit the submit button on AngelList, finally uploading the job description (JD) that I had spent an hour putting together, format entirely cargo-culted from some trendy tech company’s careers page. For the first time in my life, full of hubris and hope, I was advertising a job for a company I had…
Civilization advances by extending the number of important operations which we can perform without thinking of them. —Alfred North Whitehead It hasn’t even been a year since the launch of Claude Code, the breakout coding agent of the year. Together with its distant but equally competent cousin, Codex, the agents have proven to the software engineering community that real work can be done…
Talent hits a target no one else can hit. Genius hits a target no one else can see. —Arthur Schopenhauer The second that the next round of funding hits the bank, every new CTO starts obsessing over the same thing: Who the hell do I hire next? The answer is surprisingly non-obvious. You’re told that you always want—scratch that, need —the best of the best, your startup’s future depends…
If you look at all of the C-level roles out there, the only one that has no template or definition is CTO. —Charity Majors It’s 2014, a couple of years since I started as the technical co-founder and CTO at Freckle Education, and I realize I have no idea what I’m doing. I’m running technology, I have a couple of developers reporting to me. We’ve just finished the Imagine K-12 incubator—which…
If you don’t know where you’re going, you might not get there. —Yogi Berra The Paths In every early-stage startup’s life cycle, there comes a time when you have to decide what game your employees should be playing: the Grow the Pie (GtP) game, or the Grow the Resume (GtR) game. In the world of GtP we forget about the CV and impressive titles for a few years and agree to do…
When you come to a fork in the road, take it. —Yogi Berra The Breaking Point: When You Can’t Do It All Anymore It’s 2016 and my company, Freckle, is finally seeing real traction with teachers. The self-serve freemium plan is bearing fruit and new classrooms are getting enrolled every day. Kids are hammering the service submitting millions of answers to math problems. We’re fighting to keep…
Those who built the visionary companies wisely understood that it is better to understand who you are than where you are going — for where you are going will almost certainly change —James C. Collins Introduction: Hiring Is Storytelling Hiring is more than selling a gig, it’s about offering a story that people want to live inside. The founding myth. The gnarly obstacles yet to be overcome. The…
It is better to first get the right people on the bus, the wrong people off the bus, and the right people in the right seats, and then figure out where to drive. —James C. Collins Growing Pains My first encounter with startup hiring was a rude awakening. First company I ever co-founded. First time manager. First time hiring an engineer who would be reporting to me. None of us had expectations of…
The real problem is that programmers have spent far too much time worrying about efficiency in the wrong places and at the wrong times; premature optimization is the root of all evil (or at least most of it) in programming. —Donald E. Knuth How I Stopped Micromanaging Code and Learned to Love the Lamp Over the last two months, I went from zero to fluency with Claude Code’s take on vibe…
My point today is that, if we wish to count lines of code, we should not regard them as “lines produced” but as “lines spent”. —Edsger W. Dijkstra In the world of gamedev, versioning mistakes can be expensive and irreversible. Two people working on the same character texture, complex material, or Unreal Blueprint can throw away days of work if they don’t realize both…
Adding manpower to a late software project makes it later. —Frederick P. Brooks Jr. The single biggest factor in your hiring success isn’t your brilliant recruiting team, your world-changing mission, or your A-list investors. It’s the weather. Not the actual weather, of course. I’m talking about the economic climate. Tech hiring markets are brutally seasonal. There’s Hiring…
In preparing for battle, I have always found that plans are useless but planning is indispensable. —Dwight D. Eisenhower Has the latest once-in-every-50-years species-threatening pandemic confined your team to your respective homes? Do you still need to ship product, make customer calls and maintain a regular meeting cadence to avert chaos? Don’t we all. Every team faces a set of common and…
Programs must be written for people to read, and only incidentally for machines to execute. —Harold Abelson and Gerald Jay Sussman I wrote this post originally for the Commercial Haskell SIG The mission Front Row Education was founded to change the way math education is done in a modern day classroom. In the web universe we have all sorts of great tools for tracking, analyzing and incentivising…
There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. —C. A. R. Hoare I’ve recently had to quickly upgrade Yesod 1.2 web application from version 1.2 to 1.4. I was looking for resources on how to do this and couldn’t find anything beyond…
Management is doing things right; leadership is doing the right things. —Peter Drucker and Warren Bennis Whoa, a few months have gone by really fast here. Hi world. Guess I should post an update. Been hard at work as usual at Front Row, it’s been very interesting to watch our numbers go up at a staggering pace while the # of people supporting the project stays the same. Really makes you appreciate…
Plans are worthless, but planning is everything. —Dwight D. Eisenhower One of a founder’s toughest logistic challenges is balancing drinking the coolaid of one’s own vision against the iron skepticism that is required for making healthy data-driven decisions. With the vision, we’re in the land of dreams: Ok, I convinced myself, the team, the people investing in us, the people paying for our…
Those who cannot remember the past are condemned to repeat it. —George Santayana The kind of fast-paced, “just get it done now” work we do tends to be very day-to-day. You toil the days away, immediately switching to the next task, and never feel like you’ve learned anything. In a healthy Agile tradition, I would like to reflect on the past year and acknowledge the learnings, keeping things in…
A language that doesn’t affect the way you think about programming, is not worth knowing. —Alan J. Perlis There aren’t too many examples of Clojure’s instaparse use out there, so if you’re working on parsing a little language of your own, I hope this might come in handy. I’ve been working on a little interpreter for some internal stuff part of the Front Row stack, mainly for validating…
Simplicity is prerequisite for reliability. —Edsger W. Dijkstra If you’re thinking of serving assets from a Clojure Ring app, then you should be aware of an interesting quirk of one of the core pieces of Ring middleware: wrap-file-info . This middleware is used to automatically detect the file type based on extension and inject the corresponding Content-Type header into the HTTP response. Now,…