What we've been reading
Asking the Right Questions About AI
Excellent article on AI/ML, explaining it in layman's terms and discussing the biases and ethical issues involved.
Designing Windows 95’s User Interface
Interesting article on the design and usability testing of Windows 95's user interface.
New in Symfony: Reproducible builds
Symfony introduces support for reproducible builds.
The Little Book of Python Anti-Patterns
Excellent article about good practices in Python (framed as explaining about anti-patterns).
Trunk-Based Development or Pull Requests - Why Not Both?
Do you have to lose the benefits of feature branches if using trunk-based-development? Nope, says Jimmy Bogard.
How deep are your unit tests?
Very interesting comment on how much of your code you should test, by a certain Mr K Beck.
Stateless Authentication with JSON Web Tokens
Nice overview of how JSON web token auth works.
The GDPR Checklist
A checklist to help you ensure you're GDPR-compliant.
Podcasts we've been listening to
80: Tom Schlick - Building Multitenant Applications
Great podcast from Adam Wathan on writing multi-tenancy web apps.