Hello
I am a communicative and friendly full-stack Python developer, manager and technical team lead. I have been fascinated by communication and the internet for as long as I can remember, which underpins my deep interest in improving communications technology. I enjoy finding simple, elegant solutions to real-world problems, and working with people to build a great working culture.
Recent roles
I have 11 years of experience in full-stack web development in JavaScript, HTML5, CSS and multiple server-side languages. I have over 5 years of experience in devops and cloud services, and 3 years of experience managing developers.
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 11 years of experience writing and maintaining applications in Python, PHP, C# and Perl. I always strive to write expressive and well architected code. I have significant experience in DevOps, having architected key hosting, deployment and testing systems at Canonical. I have experience leading and defining principles for a team of back end developers.
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.