Recent roles

I'm a full-stack web developer with 6 years' experience. I've worked on large-scale, high-performance sites across many industries. I have experience working in and leading agile teams in large and small organisations.

Education

My BSc in Computer Science was where I fell in love with the internet. My MSc in Interactive Systems Design taught me to see the wider systemic issues surrounding most technical problems, and made me interested in usability and the human experience in all areas of web development. My Inviqa training course gave me invaluable insight into writing maintainable code.

Server-side skills

I have 5 years of experience writing and maintaining application in PHP, and I have valuable experience in C# and Python. I always strive to write expressive and well architected code. I have significant experience in DevOps, having setup and maintained many different server configurations and worked closely with system administrators. I have also setup various version control and continuous integration systems.

Client-side skills

I have been working with HTML, CSS and JavaScript since 2005, and I am interested in all of them. Over the years I've also become increasingly interested in usability, responsive design and performance. I think writing clear and maintainable and above all flexible client-side code is fantastically important. Code must be flexible, to work on a diverse range of devices, but robust. It must degrade sensibly. The highly nuanced problem of architecting a client-side solution to be responsive, performant and usable is a really exciting challenge for me.

Publications

I like writing and giving presentations. I have given several presentations about web technologies, including one to over 100 people. I presented on sociological topics as part of my MSc, and I have published a journal article. I also have a blog.

Leading a team

I am a big fan of Agile philosophy, skills-sharing and fostering a no-blame culture. I think the main role of a leader is to encourage practices that foster these goals, like morning stand-ups, demonstrations, code reviews and regular skill-sharing workshops, and to advocate respect, discussion and open-mindedness to new ideas.

I believe a successful leader fosters an environment where there is rarely a need for direct intervention, by working to embody the values and practices necessary for the team to be sustainably productive.

For a team to lose a developer is massively costly to any organisation, and it invariably sets back the team's evolution considerably. It is extremely worthwhile investing in the team and showing flexibility to work around team members' lives, to ensure they have the personal resources to do their best work.