Experience
Limejump
January, 2021 - Present
| Technical Lead
| limejump.com
I lead the "Data & Reconciliation" team that handles the company's data collection & billing systems primarily through two flagship systems: a custom Python daemon that consumes data from multiple external sources, and a largish Django-based app that understands all the different ways of doing billing in the energy industry (there are just too many). It's not glamorous, but it's challenging and the team is pretty awesome.
Accomplishments
- Fostered a culture of shared libraries throughout the company, open-sourcing one project (mpan) and releasing even more internally.
- Designed & built an application to consume data from industry sources as they're made available with limited latency.
- Designed and built an automated system that pulls data out of production and pushes it into staging while simultaneously anonymising said data to protect from developer error and data leaks.
- Migrated a monster legacy project from a complex maze of custom bare-metal configurations to a CI-driven, containerised, developer-friendly rig. I even made a video (with music!) introducing it to the team.
- Fostered a culture of cross-team knowledge sharing, helping colleagues across the company with Docker, Poetry, and Kubernetes.
- Lead a small team to consolidate various legacy applications into a single collectively-designed and easy-to-maintain system. It does the billing for the company, so we named it "Billy" and it's beautiful :-)
Notable Technologies Used
Agile
Amazon Web Services
Architecture
Celery
CI/CD
Django
Docker
Git
Kafka
Kubernetes
Terraform
Zishi Group Limited
April, 2022 - April, 2022
| Technical Trainer
A side contract to run two days of training for engineers new to two topics: Linux and Docker. The sessions included lectures with slides I prepared in advance, questions, and workshops.
Notable Technologies Used
Docker
Linux
Workfinder
November, 2018 - November, 2020
| Senior Developer
| workfinder.com
Workfinder is a for-profit spin-off of the Fouders4Schools charity. Its focus is to connect young people and business with the work experience they both need.
Accomplishments
- Containerised three distinct application layers in an effort to smooth the development process.
- Wrote a pre-caching engine to automate & simplify the the caching process for a number of CPU-heavy pages.
- Built an elaborate database & API combination to help determine the "truth" in a sea of suspect data. It's actually kind of amazing and I'm really proud of it.
- Built a CI/CD pipeline that leveraged GitLab's private Docker repository to build, test, and deploy containers to AWS ElasticBeanstalk with a single click in minutes.
Notable Technologies Used
Agile
Amazon Web Services
Architecture
Celery
CI/CD
Django
Docker
ElasticSearch
GitLab
Javascript
jQuery
Linux
PostgreSQL
Python
Redis
REST
Shell Scripting
BG Consulting
December, 2020 - December, 2020
| Technical Trainer
A side contract, I produced and led two remote training sessions for engineers hoping to expand the scope of their knowledge around security hygiene and technical debt. The sessions included lectures with slides produced by me in advance, Q&A, and a workshop.
Notable Technologies Used
Architecture
Money Mover
November, 2016 - November, 2018
| Lead Developer
| moneymover.com
A fintech startup that handles big money transfers across currencies and international boarders, I led the technical development of the web application. Primarily a Python/Django/PostgreSQL stack, we make use of a series of APIs to facilitate transfers by individuals and companies through a 3rd-party broker to destinations all over the world.
Primary roles include: Software architecture & development, hiring, and sprint management.
Accomplishments
- Created a build-server system that listens for the creation of new branches in GitLab and spins up a copy of the app in a series of Docker containers based on that branch.
- Oversaw the migration of a legacy codebase from Django 1.6 to 1.11 and Python 2.7 to 3.6
- Increased test coverage 1200%
- Integrated MoneyMover systems with the UK's international sanctions list to ensure financial transfers remain lawful.
- Wrote an elaborate payments flagging system to track suspicious payment information.
- Wrote the Python module for handling MT103 messages, the standard for Swift payments.
Notable Technologies Used
Agile
Amazon Web Services
Architecture
Celery
CI/CD
CSS
Django
Docker
Flask
Git
Javascript
jQuery
Linux
Nginx
PostgreSQL
Python
RabbitMQ
Gynii-Me
August, 2016 - Present
| Chief Architect/Side Project
| gyniime.co.uk
I consult occasionally for a women's fertility platform. Primarily my role is advisory: I audit proposals from agencies offering to build the site and ensure that the medical data storage & transfers adhere to good security practices.
Notable Technologies Used
Architecture
Elder Nerd Ltd.
January, 2016 - May, 2017
| Owner
A freelance consultancy specialising in web architecture. I primarily helped companies with systems design and hiring & retention. My contracts included:
UK Trade (formerly UKTI): Technical architect
A short-term contract with the British government to help design & build some of their internal systems. As technical architect I directed the layout of two projects and one demo using some fun tactics like splitting Django forms across a REST API using metaclasses and scraping email into a calendaring system in real time.
Cyan/Connode: Senior developer
Contract work wherein I assisted in assessing & fixing a bottleneck in their energy readings & storage infrastructure and helped work out some kinks in the hiring & retention process.
Accomplishments
- Helped win over upper management by spearheading a fast-tracked project and developing some crazy-interesting tech.
- Designed a lightweight, security-focused two-stage API/UI architecture with some nifty mirroring magic keeping the project DRY.
Notable Technologies Used
Agile
Amazon Web Services
Architecture
Celery
CI/CD
CSS
Django
Docker
Flask
Git
Javascript
jQuery
Linux
MySQL
Nginx
PostgreSQL
Python
RabbitMQ
REST
Shell Scripting
RxLenses.ca
November, 2013 - March, 2018
| CTO/Side Project
I served as the primary technical contact and software engineer. The site was a simple Django/Bootstrap blend, patched into a transnational ordering system.
Accomplishments
- Designed and built everything from top to bottom.
- Integrated credit card purchasing with the Django backend.
Notable Technologies Used
Architecture
CSS
Django
Docker
Git
Javascript
jQuery
Linux
Nginx
PostgreSQL
Python
Shell Scripting
RIPE NCC
August, 2012 - January, 2016
| Software Engineer
| ripe.net
As a member of the RIPE NCC's Research & Development department, I worked primarily on RIPE Atlas, a project implementing a highly scalable trans-continental infrastructure in an attempt to measure the Internet. I primarily maintained the user-facing tools: the website, RESTful API, the parsing library, Sagan, and the RIPE Atlas Toolkit.
Accomplishments
- Revamped the website's entire user experience, and worked to integrate the satellite site with the overall RIPE NCC brand.
- Was the primary developer for the RESTful API, including how it communicated with the Hbase backend.
- Spearheaded, designed, developed, and continue to maintain Sagan a GPL'd parsing library used to make sense of the hundreds of terabytes of measurement data made publicly available through the RESTful API.
- Helped facilitate and build relations between departments by encouraging the adoption of standards and building tools to accommodate the needs of multiple parties.
- Was the lead engineer on the the RIPE Atlas Toolkit, a GPL'd command-line interface to the wider RIPE Atlas infrastructure.
- Managed to write a threaded collection engine capable of dumping Twitter's live stream into a compressed archive, generating aggregates and statistics in real-time.
Notable Technologies Used
Apache
Architecture
Celery
CSS
Django
Docker
Git
HBase
Javascript
jQuery
Linux
MySQL
Python
RabbitMQ
REST
Shell Scripting
Oxyor/MarketSims
March, 2011 - August, 2012
| Development Lead
| marketsims.com
I was hired to build a community site and education portal focused on training and certification in the field of banking and investment. With a directive to focus on extendability over scalability, I was given free reign over technological choices and architecture, writing the entire server-side component. Thankfully though, the design component was handled by someone with more artistic skill.
Some of the nifty stuff I built included some two-way video conferencing, a scheduler, integration with 3rd party trading simulators, and the first generation of my CSS/JS aggregator.
Accomplishments
- Complete data architecture for the community site.
- Wrote a complete real-time video conferencing component to the site that works 100% through the web browser and bills by the minute.
- RESTful API server to handle interactions with 3rd party financial simulators.
Notable Technologies Used
Apache
Architecture
CSS
Django
Javascript
jQuery
Linux
PHP
PostgreSQL
Python
Shell Scripting
Subversion
TheChange.com
November, 2009 - May, 2010
| CTO/Side Project
A company I co-founded, the site was meant to serve as a "platform for change", or a way for companies to reach out to the public (and other companies) to help make everyone involved develop a more sustainable way of doing business.
Notable Technologies Used
Apache
Architecture
CSS
Django
Javascript
jQuery
Linux
PostgreSQL
Python
Shell Scripting
Subversion
Work [at] Play Social Media Labs
February, 2008 - November, 2010
| Senior Software Developer
| workatplay.com
W@P is a small social networking software company based out of Vancouver. With an office of roughly 30 people, they've managed to produce high-capacity sites for non-profits and Fortune 50 companies alike. For those interested in name-dropping, some of their biggest clients include Mattel, MTV, Budweiser, and the Knowledge Network.
Accomplishments
- Served as mentor for various junior developers to help develop their skills
- Managed teams of developers for multiple projects
- Co-authored "Epic", a game statistics and leaderboard engine to serve as part of the greater Velocity software suite.
- Served as development lead on a number of Drupal-based projects for high-profile clients.
- Co-wrote a Perl-based automated remote data importing tool for a US government data repository using a variety of tools including OCR recognition with both Tesseract and OCROpus, and "screen-scraping" with Mechanize.
- Co-wrote a deploy module for Drupal-based websites that made use of shared keys, Subversion and rsync to enable users to push code from one stage of testing to another, and eventually to production, all with a single button-click.
- Designed and directed a team to build a multi-platform virtual economy engine and server capable of managing digital items, awards, quests, trades, purchases, and levelling in eight formats, over three protocols. Termed "Rally", the software is scalable, extensible and awesome.
- Co-wrote the gateway API server for the Rally/Epic application. Termed "Arcade", it utilises the Kohana framework to serve as a lightweight intermediary between Rally/Epic and the untrusted masses.
- Was the lead developer for Velocity the name given to the combined powers of Rally, Epic and Arcade mentioned here.
Notable Technologies Used
Agile
Apache
Architecture
CodeIgnighter
CSS
Django
Drupal
Javascript
jQuery
Kohana
Linux
MySQL
Perl
PHP
PostgreSQL
Python
REST
Shell Scripting
Subversion
Club Detailer
October, 2007 - March, 2011
| CTO/Side Project
A family business that I was involved with from its inception in 2007. The product was a vending machine that used a series of sonic generators and pumps coupled with a PLC and a tiny headless computer, to handle credit card transactions, remote monitoring, and operate the golf club cleaning process.
Accomplishments
- Wrote a Python-based application that ran on top of the aforementioned embedded Linux platform and interfaced with a PLC over a serial connection to control the running of the machine.
- Customised embedded Linux for a headless ARM system including getting a proprietary GPRS modem on a USB stick to play nice with the OS.
Notable Technologies Used
Architecture
Celery
CSS
Django
Git
Javascript
jQuery
Linux
Nginx
PostgreSQL
Python
RabbitMQ
REST
Shell Scripting
Riptown Media
November, 2006 - September, 2007
| Software Developer
Riptown was the IT component to the larger Bodog entertainment empire. I wrote PHP software for their Battle of the Bands project as well as for the main Bodog Music site. We worked in an Agile programming environment on a one-week iteration cycle.
Accomplishments
- Rebuilt a high-traffic website by refactoring mountains of legacy code slowly over time.
- Developed a comprehensive multi-lingual MVC framework
- Wrote a deploy system in Perl that automated the deploy process including branching, syncronisaiton, backups and rollback.
Notable Technologies Used
Agile
Architecture
CSS
Javascript
Linux
MySQL
Perl
PHP
Shell Scripting
Subversion
Primus Telecommunications
July, 2006 - October, 2006
| Systems Analyst
| primus.ca
Primus Canada is a large telecommunications corporation struggling to siphon market share from the established giants. Its primary business is long distance phone service, a functionality managed through VoIP technology.
Accomplishments
- Maintained a series of 150+ servers including regular password changes, software upgrades and emergency diagnostics.
- Custom scripting (Perl/Bash) for a variety of server-related tasks including password changes and monitoring.
Notable Technologies Used
Linux
MySQL
Perl
Shell Scripting
Subversion
Unix
Rydium Online Advertising
January, 2004 - July, 2006
| Network Admin & Web Development
| suite66.com
Rydium is a media representation company with approximately 300 websites in its network, selling targeted advertising to Fortune 500 companies across a network of various vertical markets.
Accomplishments
- Built on and repaired hundreds of lines of legacy code.
- FreeBSD and Linux Administration of both an office LAN as well as a remote server cluster.
- Custom firewall development and maintenance.
- Cisco switch administration.
- QoS network management.
- Split DNS administration for approximately 60 domains on two different networks.
- Mail hosting of 15+ domains and administration including spam blocking and greylisting.
- Webserver maintenance for 10+ custom projects.
- Project management and task delegation.
- Managed a cluster of Unix machines in a remote facility hosting a variety of services including HTTP, DNS, SMTP and MySQL.
- Designed a complete security schema for our network and built an advanced router for load balancing with Linux Virtual Server.
- Near-mastery of Object-Oriented programming (PHP).
- Advanced database design theory and complex queries in MySQL.
- Reverse-engineered a large-scale and complex ad-serving solution while working around poorly written legacy code.
Notable Technologies Used
Apache
Architecture
Bind
CSS
Exim
FreeBSD
Javascript
Linux
MySQL
Perl
PHP
Shell Scripting
Subversion
Trytel Internet
November, 2002 - October, 2003
| Web Programming: Development Team Lead
| trytel.com
Trytel Internet was both a small ISP as well as a web development shop in Ottawa. Dealing with a variety of clients, we designed and built online products for large corporations like Merkley Supply and the Canadian Wood Council.
Accomplishments
- Acquired extensive experience with PHP and MySQL in a team environment.
- Client communication and management.
- Built a complete development environment using Apache, MySQL, PHP and Gentoo Linux.
- Construction of a multi-lingual content management system.
Notable Technologies Used
Apache
Architecture
CSS
Javascript
jQuery
Linux
MySQL
Perl
PHP
Shell Scripting
Netgenetix Media Inc.
April, 2001 - September, 2002
| Db & Systems Admin, Web Programming & Design
| netgenetix.com
Netgenetix is a small web development shop that specialises in large numbers of simple sites rather than larger, monolithic projects. They're currently based in Vancouver, BC.
Accomplishments
- Built the company's entire intranet using Perl and MySQL
- Built the company's only development environment using a Linux server solution
Notable Technologies Used
Apache
Bind
Exim
Linux
MySQL
Perl
Sendmail
Shell Scripting
Moshpit Entertainment
February, 2000 - March, 2001
| Programming and Graphic Design
Moshpit was a game development and service provider that pioneered the online gaming industry by creating a system that would allow gamers to wager real money on their own performance in an array of available games.
Accomplishments
- Helped to design (both visually and in Perl/JavaScript/HTML) a massive community website.
- Advanced my knowledge of server software development in a Linux environment.
Notable Technologies Used
Javascript
Perl
Shell Scripting
eConquest.com
November, 1999 - February, 2000
| Programming and Graphic Design
eConquest was a small web development company based in Vancouver. Their technologies were primarily Microsoft-based and their client list included a variety of small and large companies.
Accomplishments
- Helped to design (both visually and in Perl/HTML) a number of small sites for various clients using Perl and ASP
Notable Technologies Used
Javascript
Education
Simon Fraser University
December, 1996 - December, 1998
| General Arts
| sfu.ca
Attended courses in world religions, African history, macroeconomics, and political science.
Vancouver Film School
December, 1997 - December, 1999
| New Media Division
| vfs.com
Certificate of new media design.
Kwantlen Community College
December, 2000 - December, 2001
| Russian History
| kwantlen.bc.ca
Russia from Lenin to Gorbachev. One course to learn more about something less technical.
Notable
- Real social skills
- Exceptional Nerf dart accuracy
- I teach people how to code at Codebar sessions in Cambridge.
- Two-time hackathon winner: once building a monitoring system for networks at the RIPE Atlas hack, and again building a diagnostic and coping tool for macular degeneration patients at the Sudo:Immerse hack.
- Led two presentations and live demonstrations on software I developed at London Django Meetup.
- Prepared and led a workshop for learning Python & Django at DjangoCon Europe 2015.
- Author/maintainer of a number of reasonably popular Free software projects including Paperless, a document indexing system that's since been widely adopted by the community and forked into a variety of sub-projects, Aletheia a less-popular, but (I think, anyway) novel way to combat fake news / deep fakes online, Majel a voice-activated desktop automation system, and MT103, a parsing library for the Swift payments network.
- Presented a personal project, "Aletheia" at PyCon UK (video).