Fork me on GitHub
Download the PDF version

Oscar Byrne

+1 (604)-355-1519 phone_me

Motivation

I'm a curious developer with a particular loyalty to Python, although I'll use whatever tool is best for the job. If I learn something new I like to learn how to use it properly. What you should know about me: there’s nothing better than a neat source file. That means: beautiful interfaces; no fear for refactoring; and, of course, following the style guidelines(!).

Work Experience

Ultrahaptics, Developer Operations Engineer

February 2017 - August 2017

I joined Ultrahaptics around the time that a new server room was being installed which was due to hugely increase our available compute. This gave me a unique chance to treat my short time there as a green-field project where I was able to leave my mark in a meaningful way.

Accomplishments:

  • Maintained existing infrastructure - responsible for provisioning nodes, maintaining TeamCity CI pipeline and putting out fires as they came up. This network was a mix of Windows and Macintosh machines, real and virtual.
  • Roadmapped a transition to maintaining infrastructure as code by developing a proof of concept immutable server continuous deployment pipeline able to: provision golden images from the ISO up, test they are fit for purpose and deploy them to the production network. This involved combining Ansible, Packer, Boxstarter and Jenkins Swarm using Python, PowerShell and Bash.

Cisco (formerly Acano), Software Engineer

October 2014 - July 2016

I joined Acano during its start-up phase as part of the first wave of graduates, where I was involved in QA for its on-prem solution. After its acquisition I was moved to a new, agile team developing its next-gen, cloud-based product.

Accomplishments:

  • Introduced to networking concepts debugging industry standard (and not so standard!) VOIP deployments.
  • Made a move from waterfall to agile development possible and helped improve cross-platform consistency by championing test automation. I developed a test framework, built on Selenium and Appium, able to run the same set of behavior-driven tests on platforms including Android, iOS, Windows, Mac and various web browsers. In developing this framework I wanted it to be accessible as possible to people with limited computing experience - I essentially used Python to create a DSL for tests using the page object pattern.
  • Saw our beta testers increase from a handful within the office to thousands through the Cisco Beta Program. This was a change of scale that was only made possible by increased confidence in our code thanks to a comprehensive test strategy and reliable continuous integration, both of which I was responsible for. As this was an Android-based project with experimental hardware this presented some challenges - for example, there were worries a test rig could burst into flames if left on overnight - and involved hacking on multiple levels with Java, Groovy, Python, Jenkins and Phabricator.

DESY, Summer Studentship Computing Program

July 2013 – August 2013

A 2 month paid internship working with the world's most brilliant X-ray source at DESY (Germany's answer to CERN). Aside from a minor project involving RPC technologies, I cut my teeth on Python developing an automated toolchain for processing tomographic images.

Hobbyist Portfolio

Experiments combining Python and Bash

I often find projects start with a Bash script. It's a great language for stitching together external tools or doing weird things with the file system. Despite that certain operations might as well be black magic in terms of readability, and sometimes a feature just isn't there (no hash tables before Bash 4?!). That's why I came up with a tool - Pysh - which gives you a persistent Python interpreter which is easily accessed inline from Bash. This was a great learning experience for me where I gained an appreciation for the difference between in- and out-of-band signalling, and what exactly a fifo is good for.


Arduino-Based Synthesiser

I became interested in the Arduino platform for generating audio after building some simple audio-based electronic circuits. This has involved developing my own 1-bit DAC, requiring a custom PWM implementation, which I ultimately intend to output audio generated on the chip. Getting this close to the metal was a great experience, and I really enjoyed pushing the limits of the chip.


Music theory with Python

I have a number of hobbyist projects using Python, but the one which I am most happy about (aka the most recent!) is a tool for composers which classifies musical objects according to 'musical set theory'. In this project I have come to realise how the abstract base classes for containers defined in the standard library can be used to cleanly define custom classes. It is also a good example of how I try to keep method definitions to be 5 lines or less, often with the help of Python's excellent itertools module.

Education

University of Birmingham, MSci Physics

2010 - 2014

For my fourth year project I became involved with front-line research in metamaterials, and contributed to a project which was presented as part of the PIERS conference 2014 in China. I chose mostly computing-related modules, including:

  • Computational Modelling of Physical Systems, for which I implemented a dynamical billiards simulation using C++
  • Teaching in Schools, for which I spent 11 weeks teaching in a Primary school
  • Image Processing, which mostly focused on algorithms

Sir Thomas Rich's School, Gloucester

A levels:A*, A, B, C
AS levels:B
GCSEs:4 A* passes, 5 As and 2 Bs

Other Interests

References

References are available on request