100%. Even before coding agents, if a pull request was too large, it usually meant I did not spend much time thinking about how to break it down and its impact in the system.
Save the date, mark your calendars, and decline the invite to the All Hands meeting! The second edition of @sfrubyconf is happening Nov 10-12.
Our first confirmed keynote speaker is @garrytan, president and CEO of Y Combinator and longtime Rails builder.
Ruby on Rails is the common ingredient in success stories like Shopify and GitHub. Last year, we brought together the people building with Rails and the companies shaping its future. This year, we're doing it again in the home to some of Rails' biggest wins.
Be the first to know when tickets go live and get early-bird prices: https://t.co/rakcO62kID
One of my personal favorite features announced at WWDC will I suspect be a sleeper hit: container machines, allowing your Mac to run a lightweight, persistent Linux environment with your home directory and repos automatically mounted: https://t.co/dOBdfOOVxC
Elixir v1.20 released! Now officially a gradually typed language: Elixir type checks every single line of code, finding bugs and dead code, without developer overhead (no typing signatures) and extremely low false positives rate. Plus a faster compiler! Links and reports below.
Shopify CEO Tobi Lutke explains Goodhart’s law and why he doesn’t like KPIs or OKRs
“Goodhart’s law is real. The moment a metric becomes a goal, it’s no longer a useful metric… No metric by itself is a complete heuristic for a complex business. There’s a million different tensions in a company, and you can’t keep all of them in harmony by optimizing for one thing.”
For this reason, Shopify doesn’t use KPIs or OKRs. But as Tobi explains, this doesn’t mean they don’t value data and metrics.
“We are extremely data informed. We have invested enormous amounts of money and time into systems that give us basically everything at our fingertips… But what Shopify attempts to do is just not over-fit for what’s quantifiable.”
People love optimizing for highly-quantifiable things because there’s immediate gratification that comes from seeing a number go up. But Tobi thinks that the most important aspects of a product are rarely quantifiable:
“The overlap of the most valuable things you can do with a product and the things that happen to be fully quantifiable are like maybe 20%. Which leaves 80% of a value space unaddressable by the people who only look at quantifiable things.”
He continues:
“Shopify is comfortable with unquantifiable things like taste, quality, passion, love, hate… The sort of deep satisfaction that a craftsperson feels when they’ve done a job well is actually a better proxy if you allow it to be.”
They then have robust analytics systems that tell the company if something’s wrong or a new rollout breaks something.
“We think about it as a cockpit for a pilot. The decisions are still made by pilots, and we think this leads to better results… I think there needs to be more acceptance in business of unquantifiable things… And then metrics take a support function.”
Source: @lennysan (Feb 2025)
Claiming that "all my code is now written by an agent" is ambiguous. It includes:
1. Folks who know what they are doing and care about software design, who can now produce code much faster.
2. Vibe coders who treat the agent as a black box that generates a working system.
I validate daily that, with the current models, vibe coding is not suitable for building minimally maintainable systems. Agents introduce major internal quality issues quickly and spread them even faster because they echo existing patterns so well.
I see two challenges for programmers today:
First, learning how to do (1) properly: how to create the right context for agents, how to orchestrate them and manage their memory, how to remove toil, parallelize work, etc. In other words: maximize the value we can extract from this new sorcery.
Second, vibe coding is fantastic for non-programmers to create value by doing things they could not do before: quickly iterating on ideas, automating workflows, building ad-hoc tools, and so on. The key question is: where internal software quality starts to matter, and how to enforce it without diminishing this new source of value.
I am also increasingly convinced that many companies that blindly embrace vibe coding and chase futuristic PR headlines are about to discover the terrors of technical debt at scale.
The mind is a powerful place and what you feed it can affect you in a powerful way.
Tobi Lutke @tobi on how you can literally change the way you think and act:
“I was terrified of public speaking until I sat down for a week and every day I spent 10 minutes just writing that I like public speaking. And now I love public speaking.”
“If you write something down 100 times about yourself, your brain will start reconciling you to that.”
Strategic Optimism is often missed in technology.
Having a clear vision of what a good future could look like is crucial when you're trying to build any technology that will shape the world.
If you don't have that picture, you will most certainly fail.
1. Start by putting everything in the controller and view helpers, and make it work.
2. Decide what interface you want at the system boundaries, then shape the domain to satisfy it.
3. Extract and refine until the controllers are thin and readable, and the domain entities make sense.
Claude consistently nails (1). (2) and (3) still take a lot of human judgment and intervention.
You can blame its guidelines to save tokens (aka save thinking), but you can't deny the fact that fat controllers and messy domains are probably the basis of its training.
AI is a shortcut.
So it’s useful.
But it’s lazy.
So it speeds execution.
But it hides complexity.
So you want to use it.
But definitely not overuse it.
So the user of AI often loves it.
But the reader of AI often hates it.
"I don't want to convince anyone. I don't like marketing language. I don't like tricks. Here we are. Here's what we do. Here's what our product does."
@jasonfried on why radical honesty is the only marketing strategy worth having.
Action View tag helpers can get confusing when you're trying to figure out what the exact HTML output will look like.
The Herb Language Server can now show you what they evaluate to on hover, and convert between tag helpers and HTML in-place with a single click.
"What won't you build?" has always been the most important question.
Knowing what you'll say no to is always more useful than knowing what you'll say yes to.
This is true with most everything. Who won't you hire? Which company or client won't you work with? Which ideas won't you go along with? What business isn't worth chasing? What optimization isn't worth the squeeze? Which table isn't worth sitting it? Which work isn't worth doing?
Always know the no.