2013-12-31

I'd like to close 2013 with a retrospective of the year and some thoughts on
what I'd like to achieve in 2014.

Vertu

In March 2013 I decided to leave my contract at luxury phone manufacturer
Vertu and take up a contract at Bank of America Merrill Lynch. The two years
I spent at Vertu spanned the period where they separated from Nokia and were
sold. As part of this separation I was involved in putting in place
contemporary devops practices, datacentres, development tools and CI, and
leading a team to build exclusive web apps and web services. We got to play
with cool new technologies and turn them to our advantage, to deliver, fast.

For example, I spent January and February developing a new version of Vertu's
lifestyle magazine Vertu Life using Django. Using ElasticSearch instead of
Django's ORM was a great choice: I was not only able to build strong search
features but get more value out of the content by adding "More like this"
suggestions in many pages. Though Vertu Life is just a magazine, the site
allows some personalisation. All such writes went to Redis, so the site was
blazingly fast.

Bank of America Merrill Lynch

Joining Bank of America meant moving from Reading to London, and I handed over
duties as the convenor of the Reading Python Dojo to Mark East (who has
since also joined Bank of America, coincidentally).

Bank of America's big Python project Quartz is a Platform-as-a-Service for
writing desktop banking apps and server-side batch jobs, and I joined a team
maintaining some of the Quartz reconciliation technology components. Quartz is
a complex platform with a lot of proprietary components, and it all seems very
alien to software developers until you start to understand the philosophy
behind it better.

This was an interesting project to join because it was a somewhat established
application with reams of what everyone likes to call "legacy code". Coming
into this, I had to learn a lot about how the code works and how Quartz works
before being able to spot ways to improve this.

Banking is also a very technical industry and this also presents challenges
around communication between bankers and software engineers like me. Agile
adoption is in its infancy at Bank of America, but has buy in at the senior
management level, which is exciting and challenging.

Quartz is not only a project; it's a large internal community (2000+
developers), so the challenges we face are not just technical but social and
political. I've learned that collaboration in a project the size of Quartz
requires putting more effort in communication than smaller projects. The
natural tendancy is towards towards siloisation and fragmentation. We have got
better about doing things in a way that they could be more easily re-used, then
talking and blogging about them.

Devopsdays

There were Devopsdays conferences in London in March and November, and I look
forward to more in 2014. As well as talks covering technical approaches to
improving software development and operations, and talks on how to improve
cross-business collaboration, Devopsdays offers plenty of opportunities to
network, to discuss problems you are tackling and share experiences about
approaches that have worked and have not.

In March I gave this talk. I also wrote a blogpost about DevopsDays in
November.

Europython

Though I'm excited about going to Berlin in 2014, I'm very sorry that Europthon
2013 was the last in Florence. Florence is full of beautiful art and
architecture but is also a place to relax in the sunshine with great food and
great company, and talk about interesting things (not least, Python, of
course).

After two years of lurking at Europython, this year I was organised enough to
offer a talk on Programming physics games with Python and OpenGL. People have
told me this was well received, though I think I could do with practice at
giving talks :)

After Europython, I took a week driving around Tuscany with my girlfriend.
Tuscany is beautiful, both the Sienese hill towns and the Mediterranean beach
resorts, and the food and wine is excellent. I recommend it. Though perhaps I
wouldn't drive my own car down from London again. Italy is a long way to drive.

Pycon UK

At Pycon UK I gave a talk on "Cooking up high quality software", in full chef's
whites and in my best dodgy french accent. Hopefully my audience found this
humorous and perhaps a little bit insightful. I was talking exclusively in
metaphors - well, puns - but I hope some people took away some messages.

I think if I had to sum up those messages I was encouraging developers to think
beyond just the skills involved in cooking a dish, but the broader picture of
how the kitchen is organised and indeed, everything else that goes on in the
restaurant.

Several of the questions were about my assertion that the "perfect dish"
requires choosing exactly the right ingredients - and may involve leaving some
ingredients out. I was asked if I mean that we should really leave features
out. Certainly I do; I think the key to scalable software development is in
mitigating complexity and that requires a whole slew of techniques, including
leaving features out.

Pycon UK was also notable for the strong education track, which we at Bank of
America sponsored, and which invited children and teachers to come in and work
alongside developers for mutual education.

PyWeek

PyWeek is a week-long Python games programming contest that I have been
entering regularly for the last few years.

This year I entered both the April and the September PyWeek with Arnav Khare,
who was a colleague at Vertu.

Our entry in PyWeek 16 (in April) was Warlocks, a simple 2D game with a
home-rolled 3D engine and lighting effects. I was pleased with achieving a
fully 3D game with contemporary shaders in the week, but we spent too much time
on graphical effects and the actual game was very shallow indeed, a simple
button-mashing affair where two wizards face each other before hurling a small
list of particle-based spells at each other.



I was much happier with out PyWeek 17 entry, Moonbase Apollo, which was a
deliberately less ambitious idea. We wanted to add a campaign element to a game
that was a cross between Asteroids and Gravitar. A simple space game is easy to
write and doesn't require very much artwork. It was a strategy that allows us
to have the bulk of the game mechanics written on day 1, so we had the rest of
the week to improve production values and add missions.



We were relatively happy with the scores we got for these but neither was a
podium finish :-(

2014

So what will I get up to in 2014?

I'm keen to do more Python 3. Alex Gaynor has blogged about lack of Python
3 adoption and I regret that I haven't done much to move towards using Python 3
in my day-to-day coding this year. Bank of America is stuck on Python 2.6. I
still feel that Python 3 is the way forward, perhaps now more than ever, now
that Django runs under Python 3, but I tend to pick Python 2 by default. I did
consider opting for Python 3 as our core technology when the decision arose at
Vertu, but at that time some of the libraries we really needed were not
available on Python 3. So I chose the safe choice. I think today, I might chose
differently.

Show more