Thoughts on AI-Assisted Development

AI-assisted coding tools are polarizing, to say the least. On one end of the spectrum, you have the skeptics. Citing concerns around security, code quality, and maintainability, they remain wary of AI’s role in the software development lifecycle. On the other end, you have the “AI bulls,” who argue that AI not only makes developers more efficient but will eventually outperform human-centric development altogether.

In this post, I’m not going to argue for or against AI-assisted coding. I think it is a foregone conclusion that these tools are here to stay. However, I believe that proper utilization requires a more nuanced analysis of project requirements, as well as a willingness to take ownership of the code AI produces. My goal is not to dictate your stance on AI, but to offer some guiding principles for how developers can thoughtfully and intentionally integrate these tools into their daily workflows.

[Read more]

Our FastAPI Project Template

Our FastAPI Project Template
Note
The template repository can be found on GitHub here.

FastAPI is a fantastic tool for building REST APIs in Python. However, many tutorials, guides, and project templates set developers up for failure as their APIs grow in scope and complexity. A quick search for “FastAPI project templates” reveals a recurring pattern:

my_fastapi_project/
├── app/
│   ├── __init__.py
│   ├── main.py
│   ├── dependencies.py
│   ├── routers/
│   │   ├── __init__.py
│   │   ├── users.py
│   │   └── items.py
│   ├── internal/
│   │   ├── __init__.py
│   │   └── admin.py
│   ├── core/
│   │   ├── __init__.py
│   │   ├── config.py
│   │   └── security.py
│   ├── models/
│   │   ├── __init__.py
│   │   ├── user.py
│   │   └── item.py
│   ├── schemas/
│   │   ├── __init__.py
│   │   ├── user.py
│   │   └── item.py
│   ├── services/
│   │   ├── __init__.py
│   │   ├── user_service.py
│   │   └── item_service.py
│   └── db/
│       ├── __init__.py
│       ├── database.py
│       └── migrations/
├── tests/
│   ├── __init__.py
│   ├── test_main.py
│   ├── test_users.py
│   ├── test_items.py
├── .env
├── .gitignore
├── requirements.txt
├── README.md
└── run.sh

While this setup is fine for smaller projects, our team has found that the developer ergonomics suffer as the API expands. This is primarily because developers are forced to jump between multiple directory trees to work on related logic.

[Read more]

Search Agent Optimization

Search Agent Optimization

AI Summaries

The summarization of digital media has become one of the most prominent and impactful applications of artificial intelligence in recent months. YouTube has introduced a feature that instantly generates a text summary of any video on the platform, enabling users to extract information from a video without actually watching it. Other platforms are implementing content summary features as well. Microsoft Copilot can summarize your emails, Spotify Recap can summarize audiobook chapters, and Google will even summarize the entire internet for you with AI Overviews. These “AI summary” features seem to be invading every content consumption platform on the internet.

[Read more]

The Land Cruiser of Laptops

100 Series Toyota Land Cruiser

Toyota Land Cruiser 100 Series

Produced from 1999 through 2007, the Toyota Land Cruiser 100 Series is arguably one of the toughest vehicles ever made. It’s not uncommon to see a 100 Series on the road today with well over 300,000 miles on the odometer and still going strong. Inside the cabin, you won’t find modern conveniences like push-button start, touchscreen navigation, lane-keep assist, or even a backup camera. Instead, Toyota prioritized a body-on-frame architecture, solid rear axle, and the legendary 4.7-liter 2UZ-FE—often cited as one of the most reliable engines Toyota has ever produced. This simple, no-nonsense construction has resulted in one of the most durable trucks to ever roll off an assembly line.

[Read more]

Switching to Ungoogled Chromium

There aren’t many real choices when it comes to web browsers these days. Over the past decade or so, Google Chrome has effectively monopolized the market, with most estimates placing its global market share between 60 and 70 percent. In addition to obvious anti-consumer concerns, this is especially unsettling for privacy-conscious individuals, as it leaves much of the modern web shaped by a company whose business model is fundamentally at odds with user privacy.

[Read more]