I help businesses & individuals to create mobile & web applications that solve their needs, by developing apps, managing development teams, and defining product roadmaps.
I am currently taking on new projects. Please get in touch if you’d like to work with me.
Skills & Interests
Many software development projects fail, or take much longer than anticipated, because the requirements and scope are not precisely defined up-front, or change throughout the development process. I often speak to people who tell me they need a developer, but I often find that I can help them much more effectively by helping them discover and define their requirements precisely, and presenting these requirements in a way that is useful to developers. Especially for bigger projects with many stakeholders, this process vastly reduces the amount of uncertainty, stress, and ultimately, the total cost of the project. As such, I have acted as product manager and technical project manager on various projects, and have helped companies set up their product development process before hiring their first full-time product manager.
As a professional developer, my current tools of choice are React & React Native, TypeScript and GraphQL. For web apps, React is by far the most mature & widely-used framework available. React Native uses the same underlying technology, but can be used to create mobile apps. Apps written in React Native can be launched on Android & iOS simultaneously, without duplicating development effort for each platform, and without having to hire experts for both platforms. Indeed, most web developers who are familiar with React can quickly become very effective mobile developers using React Native, with a little bit of guidance. TypeScript and GraphQL are effective tools for ensuring that most bugs happen during development time, instead of while your app is in your customers’ hands.
My personal interests lie close to the ‘distributed web’ movement. I currently have a particular interest in the ‘hyper-stack’ surrounding the Dat project. I have written a number of proofs of concept and technical guides, have contributed minor features and bug fixes, and have led technical workshops explaining the core concepts of this stack.
I am also interested in the future of programming environments, which was the focus of my Master’s thesis at Imperial College London. My project presentation is the most accessible introduction to this work.
I enjoy trying to make complex technical topics accessible, especially to younger and/or non-technical audiences. I have delivered many technical workshops & presentations to students, and have some experience teaching computer science fundamentals & app development.
I prefer working in small teams, so that I can have a personal connection with everyone involved in the project, but I have also worked for some of the largest tech companies in the world.
- June 2017-now—freelance work, various clients. Responsibilities have so far included:
- End-to-end delivery of an iOS app for a seed-stage startup: product discovery, implementation, mentoring a junior developer, project management & launch on the App Store—implemented in React Native + GraphQL and a Node.js + MongoDB backend using a type-safe event sourcing architecture,
- web app implementation (SPA) using React & Next.js,
- product management for startups: product discovery workshops, user interviews, roadmap building, writing functional requirements,
- technical project management for startups: setting milestones; communicating development progress to the wider business; building requirements gathering, development & QA processes,
- technical recruiting: applicant sourcing & assessment, technical interviews,
- web design & implementation of portfolio websites using a custom static site generator built in Node.js,
- teaching computer science basics & mobile app development to a teenager.
- February 2013-September 2018—co-founder, HackCampus, London. While at university, I co-founded an internship programme connecting student software engineers with startups in London, supported by Index Ventures. Over the course of four years, we placed exceptionally talented software engineering interns at 11 companies in London, several of whom have returned as full-time engineers after graduating. I was responsible for (almost) everything, ie.
- designing an effective online process for testing software engineering talent,
- vetting candidates & matching them to companies based on technical ability & special requirements,
- developing a web app to manage the application process,
- organising workshops, tech talks and networking events for the intern cohort,
- marketing, promotion & sales.
- July 2015-June 2017—Head of Development, Boiler Room, London. I was hired as the first full-time developer, and helped scale Boiler Room’s product team to a team of 10. I was responsible for technical delivery, infrastructure and processes, including:
- creating a modern web app (using React) for Boiler Room’s live streams & content archive,
- leading the development of React Native apps launched on iOS, Android and Apple TV (to my knowledge the very first React Native-based Apple TV app to be featured on the App Store),
- transitioning Boiler Room’s content management system from a highly customized Wordpress installation to a Django-based CMS,
- recruiting developers (mobile/frontend/backend/devops) & product managers,
- sourcing & managing contractors for mobile & web development,
- gathering technical requirements & negotiating with various cloud computing providers & video delivery platforms,
- developing custom web solutions for various external clients including Adidas, Ray-Ban, Samsung, Audi, Nike, AB InBev, Warp Records, Red Bull Music Academy, Barbican, British Council, The Guardian, and others.
- April 2014-September 2014—Software Engineer Intern, Knowledge Exploration (Events) Team, Google, New York.
- Developed and launched a new version of the Event knowledge card shown on the main Google search page (>100k impressions/day), featuring improved i18n, more consistent styling and additional functionality,
- performed extensive refactoring of several related components in C++ and Java serving code, particularly related to date & time and i18n.
- July 2013-September 2013—Software Engineer Intern, YouTube Annotations Editor Team, Google, Zürich.
- Added chapter marker functionality to the YouTube annotations editor,
- built a working prototype of a new version of the annotations editor,
- created a reusable timeline component for use in YouTube editing interfaces.
- July 2012-September 2012—Software Development Engineer Intern, Amazon, Seattle.
- Implemented and shipped an iPhoto Import feature for Amazon’s Cloud Drive Mac desktop app, working in Objective-C on the client side and Java on the server side,
- proof-read and improved the French and German translations for Cloud Drive’s web and desktop UIs,
- prototyped and started development of an iPhone app.
- July 2010—Intern, KSB, Bordeaux.
- Responsible for rewriting from scratch a set of valve recommendation tools (implemented in Java), which were originally written in Visual Basic,
- proof-read English and German translations of data sheets and valve assembly instructions, correcting spelling and grammatical errors.
- 2011-2015—MEng in Computing, Imperial College London
- Thesis: Augmented code editor for a functional programming language (pdf), supervisor: Prof. Susan Eisenbach
- 2009—Early University Entrance, Engineering, Dublin City University
- Completed one semester of DCU’s undergraduate Engineering course at the age of 16, in the first year of the Early University Entrance project organised by the Centre for Talented Youth, Ireland (CTYI).
- 2001-2011—St. Kilians Deutsche Schule Dublin
- Achieved 580 of 600 possible points in the Irish Leaving Certificate.
- Was awarded an academic scholarship for full 6 years of secondary schooling.