larner.dev
Home Blog Contact

This is a place to learn about crazy ideas on how to build software better. It’s very much a work in progress.

Recent Posts

The Unfulfilled Promise of Schema Driven Development

Schema driven development is a software development approach that has been gaining popularity in recent years. The promise of schema driven development is that it can help us create more robust and maintainable applications by emphasizing the importance of data schemas in the design and development process. I have been searching for a solution to schema management that is integrated across my whole application stack, but despite the hype, schema driven development has yet to fulfill its promise. Read More

by Aaron Larner on February 27, 2023

New Year, New Bundler

Over the past few weeks I’ve been writing a lot of code. I’ve been working on the modeling tool, playing around with a new idea around APIs, teaching some friends to code via building a game in Godot as well as writing some open source code. All of this new code prompted me to think about bootstrapping new projects and the tools that I use. In the past I’ve relied heavily on Babel and Webpack, which were huge improvement over the previous generation of js tools. Read More

by Aaron Larner on January 11, 2023

The "Curse of Knowledge" in Product Development

Putting your software in front of users brings out lots of cringeworthy experiences. As developers of new products, we all have the “curse of knowledge.” We have been living and breathing our product and we know how it works, inside and out. Knowing our product so well can be a blind spot and the best way to get around that blind spot is to put your product in front of users who have never used it before. Read More

by Aaron Larner on December 23, 2022

The Benefits of Throwaway Code

Last week I showed an example of a decision doc that I had written up to help decide the data structure for my unnamed modeling tool. I was planning to write up an implementation spec this week, but I found myself struggling to get started. I decided to try a spike instead. For those of you who haven’t heard that term before, a spike is a way to explore a technical idea before committing to it. Read More

by Aaron Larner on December 16, 2022

Navigating Data Structure Decisions as an Indie Dev

Last week I wrote about the benefits of decision docs for solo / indie devs. This week I wanted to walk through a real example that I encountered recently. I’ve been roughly describing my unnamed project as a “universal data modeling tool.” You define the data models used in your application and it allows you to export those data models to any format that you may be using (eg. TypeScript, SQL, GraphQL, your ORM, Protobuff, etc). Read More

by Aaron Larner on December 11, 2022

The Solo Developer's Guide to Decision Making

During my time at Trello we heavily leveraged DACIs and implementation specs to make decisions. These are documents that are designed to communicate changes that you want to make to a product (more on that later). As a solo developer I never considered using these tools to help me build my product because I always saw them as primarily a communication tool. Why would I need to communicate with myself? I can keep it all in my head… Read More

by Aaron Larner on November 30, 2022

A New Approach to Solving Plumbing Problems in Software Development

I’ve spent my career in software building data driven applications. My first app was a command line tool to catalog our high school geology class’ rock collection and 17 years later I ended a Tenure at Trello as a software engineer. If you’re like me, never having specialized in any layer of the stack, you may have noticed a lot of redundancy as changes at one layer cascade throughout your applications. Read More

by Aaron Larner on November 23, 2022