As a backend software engineer, my most recent position has been working for Hive Learning, developing backend microservices in Python, which I enjoyed immensely. Currently I'm looking to build on this experience in my next backend or full-stack role in Paris, France.
I’m a self-motivated and personable developer, with excellent communication skills. I highly value a deep understanding of code from the fundamentals upwards, and work best in teams which communicate well and prize autonomy, mastery and purpose.
- Gelato calculator - A little side project, a Python recipe calculator for making perfect gelato!
- Oyster Cards - London's Oyster Card system recreated in object-oriented Ruby
- Bank Tech Test - A tech test, recreating the functionality of a bank account in Ruby
Hive Learning
Junior Software Engineer, July 2018 - September 2019 (1 year 2 months)
I have most recently been working as a software engineer developing backend services for Hive Learning. We've been preparing to roll out Version 4.0 of our app, which is a complete rewrite of the app in a brand new stack, with an event-driven microservice architecture and a frontend in React Native. As such I've been involved in a very exciting and hands-on period of writing a number of features of the app from scratch. My experience with the stack has included:
- Writing and testing backend services in Python, with tests written using its built-in Unittest library
- Collaborating on design and specification of new features to give maximum value to users
- Creating APIs to be hosted in Kubernetes/docker containers or AWS, with documentation and validation through Swagger and API Gateway. These have communicated variously with internal and external APIs and used a number of different open source libraries.
- Publishing and reacting to events in a fully event-driven architecture
- Storing and retrieving items from databases, with object wrapping in Python (SQLAlchemy)
- Indexing and retrieving items in Elasticsearch for our app's search engine
- Setting up microservices to use niche AWS services such as Transcribe and Translate, setting permissions via IAM roles for each service, and manipulating Terraform files to make necessary infrastructure changes
- Implementing multithreading and multiprocessing as most appropriate to optimise performance
Makers
Student, March 2018 - June 2018 (3 months)
Makers is an intense, highly selective 12-week coding bootcamp in Shoreditch, London. I greatly enjoyed my time here and graduated in June 2018. Aspects of the curriculum included:
- Projects in Ruby, Ruby on Rails, and Javascript, with an emphasis on Object Oriented Programming (OOP)
- An emphasis on Agile and XP values, and an understanding of industry best-practice • All our code exemplified Test-Driven Development (TDD), typically with testing frameworks RSpec and Jasmine, but also with testing frameworks written from scratch
- Many of our projects were web-based, hosted by frameworks such as Sinatra, http-server, and Rails, and deployed by services such as Heroku. We also used SQL and MongoDB for database storage, and have been concerned to correctly deploy MVC.
Well-Typed LLP (September 2016 to September 2018)
Assistant Business Administrator, September 2016 - September 2018 (2 years)
As Assistant Business Administrator I was responsible for all aspects of the firm's administration, including sending and receiving invoices, upkeep of accounts and paying contractors. This was not strictly a development job, but all of the firm's records were written in Haskell files, so I was upkeeping these and interacting with homebuilt programs through the terminal to perform functions such as invoice generation and VAT returns.
I consider my communication skills to be my greatest asset. I've been lucky enough to hone them in a wide variety of contexts, whether as a teacher of unruly Guyanese schoolchildren, through tutoring undergraduate students in music, or in writing and directing plays!
When coding, I especially enjoy pair programming sessions and group work. I'm particularly happy breaking down and explaining code to another developer, and where necessary, teaching any new elements. The feedback I've received from other team members is that as a pair programmer I'm patient, very friendly, and able to ensure we tackle problems in a shared headspace.
Problem solving was, for me, the main draw of a career software development. Finding creative solutions to problems is incredibly invigorating, and for me the process is just as important as the eventual solution. I insist on understanding all constituent parts of a problem, and seeing their interaction fully realised in a solution. I'm not content to poke things at random until I get lucky; I insist on gaining visibility and understanding a problem from the bottom up so as to ensure I can find a lasting solution.
My sense of humour also works rather laterally, which is said to indicate an ability to find new ways to approach problems...!
-
The years 2010-18 I spent working in academia, studying and researching Classical music. This mainly centred around lots of Austrians named Arnold and Hans, as well as a Russian called Серге́й.
-
I'm a keen home chef, and often note that I take a similar approach to cooking as in coding: working methodically, with a focus on best practice (knife skills, mise en place) and an understanding of my ingredients and methods built from the ground up. And I very happily 'eat my own dog food'...!
-
I am currently working to achieve fluency in French (and also speak a bit of German too). I currently have an unbroken streak of 1650+ days' language learning on Duolingo; when I set my mind to learning something, I keep at it!
- After leaving school, I lived in Guyana and taught science and IT at a secondary school in the rainforest for an academic year. This taught me a great deal, including how to chase a snake out of your house with a machete.