Is it time to go back to Django?
An analysis of Django's resurgence in popularity, comparing it to FastAPI and discussing its advantages for AI-driven development.
Jan Giacomelli’s blog covers Python and backend development with a focus on Django, Asyncio, CI/CD, and developer productivity. It features practical guides, real-world engineering lessons, and tools to build and maintain reliable web applications.
26 articles from this blog
An analysis of Django's resurgence in popularity, comparing it to FastAPI and discussing its advantages for AI-driven development.
Tips to improve AI-generated code quality using repeatable skills and structured prompts.
An article explaining why automated testing is crucial for software quality, team collaboration, and code design.
Guide to solving common issues when running Celery on AWS ECS, including task loss, interruptions, and delays.
A developer recounts how a minor Terraform change accidentally deleted their production OpenSearch cluster, analyzing four key mistakes.
How to improve AI agent feedback loops using custom linters to enforce coding standards automatically.
How auto dependency updates broke production and how to prevent it with version pinning and AI-assisted upgrades.
Learn how to prevent unintentional breaking API changes in FastAPI apps using OpenAPI schema comparison and oasdiff in CI/CD.
Tutorial on building an AI agent with Pydantic AI to generate cold emails based on company websites.
Strategies to mitigate supply-chain attacks on Python dependencies, including dependency cooldowns and package manager configurations.
A guide on using AI to rewrite Python code to Rust, covering testing, contract tests, Rust implementation, and property-based testing.
Using property-based testing with Hypothesis to ensure Python and Rust LogParser implementations produce identical outputs.
Building a Rust implementation of a log parser using PyO3 and maturin for Python integration, part 3 of an AI-powered rewrite series.
Using contract tests to run the same test suite against Python and Rust implementations for a confident rewrite.
Learn how to rewrite Python code to Rust for performance, starting with ensuring existing logic is well tested.
Tips to make AI code review effective by focusing on small MRs and understanding its purpose.
A guide to Python development workflows in the AI era, focusing on FastAPI, AWS, and efficient merge request practices.
Analyzes why many Python tests are ineffective and offers principles for writing valuable, reliable tests.
Learn how to mock HTTP calls in Python tests using the responses library for fast, reliable, and network-free testing.
Learn how to use the freezegun library to freeze time in Python tests for reliable time-dependent code testing.