Drummer, software engineer and online-learning fanatic.
Senior Software Engineer | GitHub
- Present, Amsterdam
I help to secure the worlds code, developing the Code Scanning feature for GitHub Enterprise, ensuring that as many vulnerabilities as possible are caught prior to merging pull requests, catching them before users release the vulnerable code. The main languages involved in my role are Golang, TypeScript and Ruby, and I will add further details once I am a little further along in my journey with GitHub.
Senior Software Engineer | Jump
- , London / Amsterdam
At Jump I work full-stack, primarily on a python Django backend, and React front-end. In my time there I have planned numerous projects and managed other web developers, had deep input into infrastructure decisions, accommodated full re-designs and implemented a huge amount of technical SEO. Building a high-scale, SEO friendly smart job platform has involved numerous technical challenges, but the lean organisational structure, and tight feedback loops have ensured that we always deliver successful features, and we work hard to ensure that outcomes are evaluated with quantitative or qualitative data to verify the success of our work.
As well as working on the web side of things, I have worked substantially with complex SQL analytics queries, and data aggregation and management to ensure that we maximise our use of data from disparate sources and create actionable intelligence to inform our decision-making process. This has enabled people from across all teams to make smart decisions and report on the success of our projects and OKRs.
Software Engineer | IntelliSense.io
- , Cambridge
Working at IntelliSense was my first professional introduction to IoT, ML and big data. In my role I worked as a full-stack developer to deliver custom front-end charting and display of data, backend data processing and account management, and some devops for a range of companies (from facilities and chip fabrication to mining and big industry). One of the largest pieces of work I completed was implementing our bare metal Kubernetes solution, enabling us to offer our ML, web, data collection and API tools to both pubic and private cloud hosts with relative ease.
Processing and managing data at that scale, while delivering real-time insights is certainly challenging, but the team was full of passionate and smart engineers and scientists, and it taught me a lot about delivering such a large-scale enterprise product - in a market dominated by large incumbents.
Web App Developer | BBC
- , Belfast
During my time at the BBC I enjoyed working on a diverse range of projects such as an internal inventory management system, software for quiz shows, rolling out git version management to my team (which was made more difficult by a requirement to use an internal tool hosted on Microsoft IIS servers, which limited options somewhat) and building a web page for the North West 200 motorcycle race.
In delivering these projects I utilised technologies such as NodeJS, Angular, PHP, SQL, python, MongoDB and both internal and various cloud hosting tools.
I have a pet project creating a notes / reminder app for inbox zero lovers, which focuses on reducing cognitive load by requiring you to schedule notes to appear later, when you create them, so you only see items when you expect to be able to do something about them - or when you want to think about them.
The project is currently built in Rust and GTK and is targeting the PinePhone, Librem 5 Linux Phones, ElementaryOS and other Linux distributions. Once available for the above targets I will be looking into supporting Android/IOS, Mac and Windows.
Submitted various pull requests for Ruffle, a WASM Flash emulator built in Rust. This is quite personal to me as I grew up in the era where Flash content was king, and with 2021 being the year that Flash player officially dies, it seemed a fitting tribute to work on improving the tool that should help keep much of it alive. Archive.org are using it to preserve thousands of swf files, and NewGrounds are using it too. Read more.
I worked with the Adobe Aero team to enhance parts of the Aero Mobile app and link sharing experience, as well as working on prototype web applications using React and other technologies. I really enjoyed my collaboration with Adobe, and hopefully will work with them again in future.
Worked on a prototype game show as the only software developer, building a fully functional interactive gameshow system with a live animated computer game component in every round, building a system to support real-time-communication across multiple machines, with multiple display outputs to provide all the different components:
- Main game screen
- Buzzer input
- Score boards
- Question and player management
- Round management
I also provided live technical support during major television network pitching sessions, and the prototype was 100% functional. I was able to iterate rapidly when changes were requested during development, and managed to accommodate every different round they wished to experiment with, and I was able to incorporate sound effects and graphics quickly as design iterations occurred. I'd love to share a video of the end result, but alas I'm not currently permitted.
Over the years I have made numerous contributions to open-source projects, and it's something I love to do, and definitely intend to continue! I make a point of trying to help fix issues when encountering bugs or missing features, especially when they impact my day job - rather than only opening issues and expecting others to do the work. I find open source contribution to be some of the most rewarding work I have done. I particularly enjoy seeing issues close that affected many people, as a result of a feature/fix. I encourage all my employers to allow work time to be spent on open source contributions, as virtually all software companies these days rely on open source dependencies to build their own software.