Writing
Feb 02, 2026
Fifteen Minutes a Day Equals Fifteen Books a Year
Jan 21, 2026
Recently (late January 2026)
Jan 09, 2026
Recently (January 2026)
Jan 09, 2026
Is AI Model Collapse Inevitable?
Jan 06, 2026
Everything and More - Book Review
Jan 05, 2026
New Year, New Website Design
Dec 17, 2025
Year in Review (2025)
Oct 04, 2025
The Secret Prompts in GitHub Copilot CLI
Oct 04, 2025
Resurrecting the Original Django Book
Sep 30, 2025
I Miss Tabs vs Spaces... And Other AI Musings
Sep 30, 2025
Empire of AI by Karen Hao - Book Review
Sep 22, 2025
The Future of AI is Small (Language Models)
Sep 17, 2025
Prominent AI Researcher Leaving the U.S. for China
Sep 15, 2025
uv Livestream with Michael Kennedy
Sep 15, 2025
DjangoCon US 2025 Recap
Sep 10, 2025
Django for AI: My DjangoCon US 2025 Conference Talk
Sep 04, 2025
An Insider's Guide to DjangoCon US 2025
Sep 01, 2025
The Thinking Machine - Book Review
Aug 27, 2025
How to Succeed as a Human in an AI World
Aug 26, 2025
Vibe Coding a Website Refresh
Aug 21, 2025
AI Flat Spin
Aug 21, 2025
Best Python Books (2025)
Aug 20, 2025
Supremacy by Parmy Olson - Book Review
Aug 11, 2025
AI For the Rest of Us
Jul 21, 2025
EuroPython 2025 in Prague Recap
Jul 14, 2025
Six Months as a Developer Advocate
Jul 14, 2025
Co-Intelligence by Ethan Mollick - Book Review
Jun 04, 2025
Careless People by Sarah Wynn-Williams - Book Review
May 30, 2025
Best Django Books (2025)
May 25, 2025
AI Thoughts in 2025
May 20, 2025
PyCon US 2025 Recap
May 05, 2025
Vibe Recap of DjangoCon Europe 2025
Mar 27, 2025
Django for Data Science @ Boston Python Meetup
Mar 06, 2025
Django for APIs (Fifth Edition)
Mar 04, 2025
Averaging Our Way to AGI
Mar 03, 2025
The Trading Game by Gary Stevenson - Book Review
Feb 28, 2025
Thoughts on Vibe Coding
Feb 27, 2025
What Does a Developer Advocate Do?
Dec 02, 2024
Year in Review (2024)
Oct 07, 2024
Thoughts on the Treasurer Role at Tech NonProfits
Oct 02, 2024
DjangoCon US 2024 Recap
Jul 15, 2024
Best Flask Books (2024)
Feb 16, 2024
Django User Model talk at Django Boston Meetup
May 01, 2023
Django for Beginners 4.2 Update
Jan 03, 2023
Small Things Finance
Dec 16, 2022
Year in Review (2022)
Sep 01, 2022
Mac Configuration for Web Development (2022)
May 19, 2022
Django for Professionals 4.0 Update
Feb 24, 2022
Django for APIs 4.0 Update
Feb 15, 2022
How to Work Through Django Books
Nov 01, 2021
Django for Beginners 3.2 Update
Jul 25, 2021
Updating My Home Internet to 1.2Gb
Jul 19, 2021
Python 3 Installation & Setup Guide
Dec 18, 2020
Year in Review (2020)
Nov 23, 2020
Learn Tailwind CSS - A Beginner's Guide
Oct 20, 2020
A Year in the Life of a DSF Board Member
Sep 30, 2020
How to Contribute to Django Docs
Sep 10, 2020
Working in Public by Nadia Eghbal - Book Review
Sep 08, 2020
What Happens When You Type in a URL
Apr 14, 2020
A Month in the Life of a DSF Board Member
Feb 10, 2020
Static Website Services
Jan 21, 2020
Competing in the Age of AI - Book Review
Jan 21, 2020
A Beginner's Guide to Docker
Jan 07, 2020
Best React Books (2020)
Dec 17, 2019
Flask vs Django (2020)
Dec 16, 2019
How Django Works Behind the Scenes
Dec 13, 2019
Announcing the Django News Newsletter
Dec 11, 2019
Year in Review (2019)
Dec 03, 2019
Jekyll 301 Redirects on Netlify
Mar 23, 2019
Best Python Podcasts
Mar 10, 2019
The Four by Scott Galloway - Book Review
Mar 06, 2019
DjangoChat Podcast
Jan 23, 2019
Site Design
Jan 07, 2019
Best Online React Video Tutorials (2020)
Jan 07, 2019
Best Online Django Video Tutorials (2019)
Jan 07, 2019
Best Online Python Video Tutorials (2019)
Jan 07, 2019
Best JavaScript Books (2019)
Jan 03, 2019
Year in Review (2018)
Dec 13, 2018
Talk Python Podcast Interview - Teaching Django
Oct 24, 2018
Hello, World with Express and JavaScript
Oct 12, 2018
TCP vs UDP
Oct 12, 2018
JavaScript: Pure Functions
Oct 12, 2018
JavaScript: Prototypal Inheritance
Oct 12, 2018
JavaScript: Function Expressions vs Declarations
Oct 12, 2018
JavaScript Data Structures: Array
Oct 12, 2018
JavaScript Algorithms: Quicksort
Oct 12, 2018
JavaScript Algorithms: Mergesort
Oct 11, 2018
JavaScript: Reverse a Linked List
Oct 11, 2018
JavaScript: Find a Number in an Ordered Array
Oct 10, 2018
Python Web Frameworks
Oct 09, 2018
Static vs Dynamic Websites: Pros and Cons
Oct 09, 2018
JavaScript Guide
Sep 20, 2018
Python *args and **kwargs
Sep 04, 2018
Thoughts on Publishing a Technical Book (Part 2)
Aug 19, 2018
Meteor Hosting Options
Apr 12, 2018
React Counter Button
Apr 11, 2018
React Stopwatch
Apr 11, 2018
React Clock
Apr 10, 2018
React Real-time Inputs
Apr 09, 2018
JavaScript Closures Explained
Apr 09, 2018
JavaScript Callback Functions Explained
Mar 29, 2018
React Events & Forms: Build a Real-time Input
Mar 15, 2018
Thoughts on Publishing a Technical Book (Part 1)
Jan 25, 2018
The Evolving Online Test Prep Market
Jan 09, 2018
JavaScript: Merge Two Sorted Arrays
Jan 08, 2018
JavaScript: Stock Prices Problem
Jan 07, 2018
Best Online JavaScript Video Tutorials (2019)
Jan 03, 2018
JavaScript: Print Odd or Even Numbers
Jan 03, 2018
JavaScript: parseInt and map
Jan 03, 2018
JavaScript: Merge Two Arrays
Jan 03, 2018
JavaScript: Duplicate an Array
Jan 03, 2018
JavaScript: Convert Array to a String
Jan 03, 2018
JavaScript: Compute the nth Fibonacci Number
Jan 02, 2018
JavaScript: Sort an Array of Strings or Numbers
Jan 02, 2018
JavaScript: Remove Duplicates from an Array
Dec 20, 2017
JavaScript Event Loop
Dec 18, 2017
Object-Oriented JavaScript: Deck of Cards
Nov 27, 2017
URIs vs URLs
Nov 02, 2017
JavaScript Range Array Function
Oct 20, 2017
JavaScript: Map, Filter, Reduce
Oct 16, 2017
Currying in JavaScript
Sep 14, 2017
JavaScript: var, let, and const
Sep 12, 2017
JavaScript Scope and Closures
Sep 08, 2017
JavaScript Tilde ~ (Bitwise Not operator)
Sep 08, 2017
JavaScript Double Negate (aka !!)
Sep 06, 2017
JavaScript: var keyword explored
Aug 29, 2017
JavaScript Temporal Dead Zone
Aug 29, 2017
JavaScript Hoisting
Jul 25, 2017
Python 2 vs Python 3: Which to Learn?
Jul 11, 2017
Python's greatest common divisor
Jul 11, 2017
Python Tuple Unpacking
Jun 15, 2017
Python Optimizations with Guido
Jun 12, 2017
Python zip()
Jun 01, 2017
Algorithms: Simple Search
May 30, 2017
Python WAT!? Out of Range Slices
May 26, 2017
Python WAT!? Integer Cache
May 25, 2017
Python's Built-in Help Function
May 19, 2017
Algorithms: Binary Search
May 12, 2017
Node Express Tutorial, part 1
May 04, 2017
Favorite Programming Quotes
Apr 28, 2017
JavaScript Arrays: slice vs splice
Apr 09, 2017
JavaScript Arithmetic Operators
Apr 06, 2017
Python Lambda Expressions
Apr 01, 2017
Python Pass Statement
Mar 20, 2017
How The Web Works
Mar 20, 2017
How Does the Internet Work?
Mar 11, 2017
Total Beginner vs Beginner
Mar 06, 2017
Error 522: Connection Timed Out
Mar 03, 2017
Install Node.js and NPM on a Mac
Mar 03, 2017
Install Node.js and NPM on Windows
Mar 02, 2017
Node Rest API Tutorial
Feb 24, 2017
The Next WordPress
Nov 12, 2016
Python List Comprehensions Tutorial
Nov 10, 2016
NextJS/Zeit for Total Beginners
Nov 03, 2016
Static vs Dynamic: A question of layers?
Oct 28, 2016
Simple Django Project
Oct 26, 2016
What is a Static Site Generator?
Sep 12, 2016
The Monty Hall Problem Explained
Sep 08, 2016
REST: a definition
Apr 26, 2016
Cactus Static Site Generator
Feb 09, 2016
Teaching Meteor to Beginners
Feb 02, 2016
Terminal/Command Line for Beginners
Nov 11, 2015
Meteor Developer Login Accounts
Oct 25, 2015
How to use Typekit locally
Jul 10, 2015
Meteor Anchor Tags
May 05, 2015
Meteor Stripe Checkout
Apr 24, 2015
Format Phone Numbers in Django