I'm David Winterbottom, a minimalist software engineer living in London.
I'm Head of Engineering at Octopus Energy, a UK energy supplier. Previously, I was Head of Engineering at Yoyo Wallet, a mobile payments startup, and a Technical Director of Tangent Snowball, a digital agency.
I used to be a mathematician; I have a PhD in Mathematics from the University of Nottingham and an associated interest in cryptic crosswords, chess and bad puns.More about me »
A modern, high-tech energy supplier
A simple heuristic for preferring the imperative mood
Quick tip on tweaking the output of psql
Slightly useful tip for SSHing onto EC2 instances
A new owner
$ ./manage.py makemigrations
takes so long to run, I have to use my “boo” script:
2. Write failing unit test
3. Make unit test pass then refactor
4. Repeat 2&3 until functional test passes
A few spare-time projects I've worked on:
- commandlinefu.com - a mildly popular repository site for sharing linux one-liners. Grown men have been known to weep with joy when they discover sudo !!
Python packages on PyPI:
- purl - an immutable URL class for python
- foiegras - simple CSV loading for Postgres
- csvfilter - like
cutbut for CSVs
- pyvideo2quicktime - for downloading PyCon videos to your iPhone
- unittest-xml - additional assertions for unit-testing XML documents with python's unittest library.
Oscar and related packages:
- django-oscar - domain-driven e-commerce for Django
- django-oscar-accounts - managed accounts using double-entry bookkeeping
- django-oscar-datacash - a Django app for integrating with the DataCash payment gateway
- django-oscar-paypal - Oscar integration with PayPal
- django-oscar-gocardless - Oscar integration with GoCardless.
- django-oscar-stores - Stores functionality for Oscar
- django-oscar-api - REST APIs for Oscar
Other Django packages on PyPI
- django-cacheback - asynchronous cache refreshing using Celery
- django-async-messages - asynchronous user messaging
- django-rickroll - a comedy django app for rickrolling hacking attempts - useful for when your applications get pen-tested.
node.js packages on npm:
- nurl - a simple URL library for node.js