Hello

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 spend most of my free time hacking. I am the author of commandlinefu.com and the e-commerce framework django-oscar amongst other things.

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 »

Words

Monday, 23 November 2015
Octopus Energy

A modern, high-tech energy supplier

Friday, 2 October 2015
git
A useful template for commit messages

A simple heuristic for preferring the imperative mood

Wednesday, 2 September 2015
Copying Postgres output into a spreadsheet

Quick tip on tweaking the output of psql

Saturday, 2 May 2015
aws
An SSH tip for modern AWS patrons

Slightly useful tip for SSHing onto EC2 instances

Saturday, 4 April 2015
All writing »

Toots

1 month, 1 week ago
“Don’t follow your boss into his/her/but-probably-his office like a puppy chasing a squirrel.”
https://t.co/M1C57eBA2Y
1 month, 1 week ago
“How’s that new Javascript project coming along?”
“Fine” https://t.co/CUF1YuU55k
1 month, 1 week ago
RT @tqbf: Don’t work in game dev. https://t.co/kmhfG0qH75
1 month, 1 week ago
I need this, but for dishwashers https://t.co/ZPTIrpdrUA
1 month, 1 week ago
These days

$ ./manage.py makemigrations

takes so long to run, I have to use my “boo” script:
https://t.co/AE434T6G1E
1 month, 2 weeks ago
I prefer email to Slack
#secret
1 month, 2 weeks ago
1. Write failing functional test
2. Write failing unit test
3. Make unit test pass then refactor
4. Repeat 2&3 until functional test passes
1 month, 2 weeks ago
This is an excellent article on the elements of simple design:
https://t.co/hs0rp6OSSo
1 month, 2 weeks ago
Corollary: fat management commands are an anti-pattern
https://t.co/kvSJX1ZR45
1 month, 2 weeks ago
Django tip: management commands should be dumb (like views): they should translate CLI requests into domain requests - no business logic!
1 month, 2 weeks ago
RT @auditty: Root cause of bad code isn't apathy, ability, or changing reqs; it's fear. Fear of breaking things leads to bad choices @bryna
1 month, 2 weeks ago
The mascot for functional programming should be the goldfish as it’s (virtually) stateless.
1 month, 2 weeks ago
“Don’t cry, you can run bash on Windows 10 now”
https://t.co/cejeQKwB2u
1 month, 2 weeks ago
PS that’s a genuine advert by the circle line platform in Kings Cross station.
@codeinthehole »

Hacks

1 month, 1 week ago
Apr 21, 2016
@codeinthehole
1 month, 1 week ago
Apr 21, 2016
@codeinthehole
Added Support for django-rq
9 commits with 196 additions and 97 deletions
1 month, 1 week ago
Apr 21, 2016
@codeinthehole
django-rq Support
1 month, 1 week ago
Apr 21, 2016
@codeinthehole
Added py.test and more tests
30 commits with 886 additions and 167 deletions
1 month, 1 week ago
Apr 21, 2016
@codeinthehole
1 month, 1 week ago
Apr 21, 2016
@codeinthehole
Fix headline
1 commit with 1 addition and 1 deletion
2 months ago
Mar 25, 2016
codeinthehole commented on pull request codeinthehole/purl#26
@codeinthehole

Thanks

2 months ago
Mar 25, 2016
@codeinthehole
github.com/codeinthehole »

Selected projects

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 cut but 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:

Other Django packages on PyPI

node.js packages on npm:

  • nurl - a simple URL library for node.js