Hi, my name is Anders. I’m a prolific coder and the author of:
- mutmut - the premier mutation testing tool for python
- iommi, with Johan Lübcke - build webapps in Django faster, and better
- instar - powerful advanced transformations of Clojure data structures
- hammett - the fastest test runner for python, and pytest compatible!
- …and many many more
Currently working at Dryft, where we are making the construction business better for customers and workers.
Blog archive
- 2024-10-31 - Django clean urls.py
- 2024-10-31 - Running a million empty tests
- 2024-10-15 - Implementing Neapolitan in iommi
- 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