software-architecture
Mar 16, 2026 • Cliff
A metaphor-driven exploration of how AI-assisted coding transforms software development, from the loss of hands-on mastery to maintaining technical skills while operating heavy machinery—agentic workflows that demand...
Announcements
Mar 12, 2026 • Cliff
A walkthrough of the access control gaps we closed in Adapt, preventing information disclosure through UI, API discovery, and documentation surfaces.
Programming
Mar 11, 2026 • Cliff
A walkthrough of the data safety improvements shipped in WebUtils: a backup warning banner, per-app export and delete controls, mandatory backup offers on deletion, and snapshot validation.
Announcements
Mar 10, 2026 • Cliff
A focused security hardening pass for Adapt, a lightweight server that turns a folder into a secure, queryable workspace for data, documents, and media.
Announcements
Mar 09, 2026 • Cliff
An introduction to Adapt, a lightweight server that turns a folder into a secure, queryable workspace for data, documents, and media.
Programming
Jan 28, 2026 • Cliff
Production readiness essentials - transactional email setup and configuration - Part 6 of the series.
Programming
Jan 27, 2026 • Cliff
Building a Django SaaS App Or The Django SaaS Mega-Tutorial Tutorial 005.1 – Code Review Improvements After tutorial-005, we decided that it was time to conduct a code review. We recommend doing thorough code reviews...
Software Architecture
Jan 23, 2026 • Brian
Enterprise software adoption follows recurring cycles between upfront certainty and runtime flexibility. Java dominated the era when predictability mattered; Python rose when adaptability became valuable. Neither is...
Programming
Jan 23, 2026 • Cliff
In this article, we explore a subtle bug encountered while implementing a multi-file grep command in Python. The issue revolved around incorrect line number tracking across multiple files. We discuss the problem, the...
Programming
Jan 22, 2026 • Cliff
In this tutorial, we extend our grep command with new features using Test-Driven Development (TDD). We add options for printing filenames, line numbers, quiet mode, and listing files with matches, all while following...
Programming
Jan 21, 2026 • Cliff
Production readiness essentials - static file serving with WhiteNoise, structured logging, custom error pages, and health check endpoints - Part 5 of the series.
Programming
Jan 20, 2026 • Cliff
Production-grade server setup with Cheroot and Daphne, Docker containerization, and docker-compose configuration for Django SaaS deployment - Part 4 of the series.
Programming
Jan 16, 2026 • Cliff
A step-by-step tutorial on building a tiny grep command in Python, covering argument parsing, regex compilation, file handling, and testing.
Programming
Jan 15, 2026 • Cliff
A technical deep dive into building LogSieve - a powerful, privacy-focused, offline log analysis tool that runs entirely in the browser using Web Workers for performance.
Programming
Jan 14, 2026 • Cliff
Implementing a user-scoped link shortening feature in Django using TDD - creating models for Links and Clicks with CRUD operations - Part 3 of the series.
Programming
Jan 12, 2026 • Cliff
Adding automated testing, code quality tools (Black, MyPy, Bandit), pre-commit hooks, and GitHub Actions CI to a Django SaaS application - Part 2 of the series.
Programming
Jan 06, 2026 • Cliff
Building a Django SaaS starter with email-based custom user authentication, environment-based settings, and Bootstrap UI - Part 1 of a comprehensive tutorial series.