Blog
-
2024-10-08 - 80% of a fancy SPA in 21 lines of code
-
2024-09-30 - The next great leap for Django
-
2024-09-30 - Why iommi is so... weird
-
2024-09-30 - iommi vs inheritance explosion
-
2024-09-27 - Permissions in Django: must_check
-
2024-09-19 - iommi vs django-tables2+django-filters
-
2024-09-11 - Why we wrote a new form library for Django
-
2024-09-03 - How to build an alternate Django admin in only 10 years
-
2024-04-30 - Sanity system
-
2024-01-25 - My web dev stack 2024
-
2023-11-17 - Open Source could be BETTER
-
2023-08-21 - Listen to non-users!
-
2023-02-02 - Names can be so much more
-
2022-06-24 - Optimize for momentum
-
2021-09-10 - Status, not notifications
-
2021-07-11 - Programming is frustrating
-
2021-05-19 - How to ask for help
-
2021-04-04 - Safe number parsing
-
2021-04-04 - Django, React, and CORS
-
2021-01-20 - So you want to load a file?
-
2020-11-17 - Why we don't use python native enums
-
2020-10-23 - 100% coverage, of documentation!
-
2020-09-14 - Transparent APIs
-
2020-09-07 - Django silent failures
-
2020-08-01 - Transparent sync
-
2020-07-26 - Naming things
-
2020-07-03 - Who's fault are defects then?
-
2020-07-02 - Introducing iommi on YouTube
-
2020-05-19 - Python is slow - it doesn't have to be
-
2020-05-14 - Introducing iommi, part 2
-
2020-05-13 - Introducing iommi
-
2020-03-02 - Test ordering
-
2019-11-20 - A nice testing environment
-
2019-10-18 - Unit tests are nice... but WHICH unit?
-
2019-10-17 - When DRY fails
-
2019-06-21 - Good Workflows 🏈
-
2019-06-21 - The Else Statement Smell
-
2019-06-21 - Measure WTFs/m before taking a job
-
2019-04-23 - Flaky tests, part 4
-
2019-04-10 - Mutation vs Property Based testing
-
2019-04-09 - Talk: Mutation Testing – Theory and Practice
-
2019-01-16 - A quick performance comparison of Python parsers
-
2019-01-13 - A quick performance comparison of Python code formatters
-
2018-11-18 - The missing mutant — a performance bug we missed
-
2018-09-12 - Flaky tests part 3: freeze the world
-
2018-08-28 - Intermittent tests: aligned primary keys
-
2018-06-25 - Salvaging abandoned projects
-
2018-06-25 - RefinableObject — Object Orientation Refined
-
2018-06-09 - "Even if they're right, they're wrong"
-
2018-02-09 - Moving a large and old codebase to Python3
-
2018-02-05 - Use the biggest hammer!
-
2017-10-24 - Vastly faster Python integration tests
-
2017-10-17 - Elm first impressions from prod
-
2017-08-14 - Overanalyzing kids shows: Bing
-
2017-08-03 - Code generation is terrible and great
-
2017-07-07 - OCaml — first impressions
-
2017-07-07 - A case for a short form for argument labels
-
2017-05-17 - Django comefrom considered harmful
-
2017-05-09 - Keyword argument confusion in Python
-
2017-05-02 - Sam Harris [was] wrong about encryption
-
2017-05-01 - When you assume, Gruber edition
-
2017-02-07 - What I want in Python
-
2016-12-22 - Python is still my first choice, but…
-
2016-12-21 - Suggestions for a better Python 2->3 story
-
2016-12-21 - Followup to "My Disillusionment with Clojure and Lisps"
-
2016-12-14 - My disillusionment with Clojure and Lisps
-
2016-12-12 - Mutation testing in practice
-
2016-12-01 - Mutmut: a Python mutation testing system
-
2016-11-07 - A small dive into, and rejection of, Elm