Technical
The Simpler Tools I Switched To This Year
Part of the first principles thesis is that simple systems survive. That is easy to say and hard to live by. Here is a concrete list of tools I replaced with simpler ones during year one, with the results.
The business problem is tool sprawl. Every tool you keep has onboarding cost, config surface, and failure modes. Each one charges rent in attention.
The switches
- Airflow to cron. My pipelines were not DAGs. They were five steps. Cron runs them. Logs go to a file. Nothing broke.
- Postgres to SQLite for one internal tool. The tool had one writer. SQLite is shockingly fast when you do not have concurrency problems.
- Redis to in-memory dict for another internal tool. A long-lived Python process held the cache. Restarts cost a warm up. That was fine.
- Docker to just a Python virtualenv for my local dev. The container gave me nothing I did not already have.
- LangChain to the Anthropic SDK directly. One fewer abstraction layer. Faster debugging.
- Jira to a plain markdown file in the repo. One writer, again. Solves the same problem with zero auth.
A representative example
# The 'pipeline' I used to run in Airflow
from steps import fetch, transform, load
def run():
data = fetch()
cleaned = transform(data)
load(cleaned)
if __name__ == '__main__':
run()Cron runs this at 2am. That is the whole ETL system.
When I would go back
- Airflow if I had dynamic DAGs and multiple teams
- Postgres when I need concurrent writers
- Docker when I need to deploy across machines I do not control
- LangChain if I needed an ecosystem of ready made integrations I did not want to maintain
The rule
Start with the simplest tool that could possibly work. Add complexity only when reality demands it. Reality demands it less often than tool marketing would have you believe. See Dan McKinley's choose boring technology for the canonical essay.
RELATED READING
The Consulting Shift I Am Making In Year Two
After a year of writing and building, my consulting practice is changing shape. Shorter engagements. Sharper outcomes.
ReadThe Frontend Shift: Shipping Less JavaScript In Year Two
A year ago I reached for Next.js for everything. This year I often reach for nothing.
ReadThe Serverless Lesson I Would Write On A Sticky Note
After a year of shipping serverless projects, one rule explains most of the wins and all of the losses.
Read