Alfie John - Résumé
My objective is to work on cool stuff.
I've been developing software professionally for over 20 years at all levels (front-end, middleware and back-end) but now find myself enjoying life most when my time is spent on the backend; building services, developing tools to help get things done, automating everything so that repeatability is the norm, and creating automated tests so that we can all sleep better at night.
Experience
Rust Developer at (NDA) Undisclosed Blockchain Companies (2023 - Present)
- Implemented feature requests and bug fixes to an Ethereum-to-Solana JSON-RPC proxy written in Python, with the aim of feature parity with Geth (Go Ethereum)
- Implemented Ethereum Mempool transaction eviction, Mempool queueing and gas price optimisation in Python
- Created a network node operator API service in Python
- Implemented a highly performant, non-blocking, multi-threaded, block producer for Proof-of-Work and Proof-of-Stake consensus in Rust using Tokio, slave_pool::ThreadPool, Serde, asynchronous message passing, and atomics
- Developed high-coverage blockchain unit testing in Rust, preferring the Mockall crate
- Implemented functional tests in Python via Bitcoin's JSON-RPC libraries
- Implemented blockchain explorer in Rust using Axum, Tokio, and PostgreSQL
- Developed blockchain explorer unit tests in Rust using an in-memory database
- Code reviewed blockchain PRs from across the whole project
Founder at Rustjobs.com (2022 - Present)
- Building a Rust jobs website in Rust itself
- Open sourcing the code, tooling, and blogging about the journey
Developer at YesLogic (2019 - 2022)
- Added AVIF and WebP image support to Prince in Mercury and C
- Implemented serverless Prince using AWS Lambda in Rust and API Gateway via CloudFormation
- Dockerised the development environment for Prince
- Setup Travis for CI/CD to build and test Prince on supported platforms
- Added Syriac and Arabic shaping for OpenType fonts to the Allsorts Rust crate
- Added OpenType GSUB Lookup Type 8 (Reverse Chaining Contextual Single Substitution) to Allsorts
Senior Developer at Forticode (2018)
- Backend development of cryptography protocols for Cipherise in Golang
- Dockerised development and production enviroments of services in Golang and Makefiles
Chief Technical Officer at Intraverse (2018)
- Blockchain consulting to corporates (Loving Earth, Jetstar, Talisman)
- Automated deployment using Ansible and Docker of customized Stellar Nodes (Stellar Core, Horizon, PostgreSQL) i.e not using official Docker images
- Developed scripts to automate the creation of ICOs via Stellar in Python
- Created Experimental websites using Python and Lean Startup principles in order to help find Product Market Fit
- Developed backend MVPs in Rust (using Rocket)
- Contributed many patches to Stellar (Core, Horizon, py-stellar-sdk)
Senior Developer at Savvi, later succonded to the NBN (2016 - 2017)
- Worked on the ETL for NBN's public-facing Speed Test in Python
- Developed a configuration file parser for Cisco and Alcatel switches in Rust, to be used in the monitoring of NBN's National Connectivity Network
- Implemented the ETL for NCN configuration data in Rust, Perl and Bash
- Implemented automated unit and functional tests in Rust, Javascript, Perl, and Bash, for front-end, middleware, and backend code developed by Savvi for the NBN
- Designed overarching Continuous Integration and Testing Strategy for NBN's DASH team
Senior Developer at FastMail (formerly Opera Software) (2011 - 2016)
- Worked on a full coverage, interoperability test suite for the JMAP specification (jmap.io)
- Painstakingly duplicated the production environment within Vagrant to create automated and repeatable testing and development environments
- Developed build and deploy scripts to automate deployment of configuration and code
- Developed tools to automate MySQL administrative tasks
- Designed and developed MySQL::Replication; a peer-to-peer, decentralised, multi-master MySQL replication scheme
- Worked on database architectural design to achieve complete host and data centre redundancy
- Developed a provisioning API for service providers
- Developed A/B email drip campaign for marketing
- Worked on features and maintenance for the Fastmail webmail interface
- Investigation of spam and fraudulent signups
Senior Developer at MailGuard (2007 - 2011)
- Co-architected a multiple read/write, self healing, selective-mesh database replication layer
- Developed a database auditing system for the MailGuard management interface
- Project lead, incremental feature enhancements and bug fixes to WebGuard, a HTTP reverse proxy written in Perl
- Incremental feature enhancements and bug fixes to MailGuard, a Postfix content filter written in Perl
- Integrated 3rd-party libraries to detect pornographic images for email policies
- Integrated 3rd-party libraries to classify URLs for web browsing policies
- Developed an ITIL based Change Management system
- Developed an automated provisioning system, replacing the erroneous and tedious manual task
- Mentored junior developers and managed interns
- Level 3 support and triage
Founder at Online Classifieds Australia (2006 - 2010)
- Used as my personal playground to experiment with new tools
- Profitable enough to pay for my programming books addiction and coffee habits
- Made a modest amount when I sold Share-House.com.au in 2009, which was integrated with Flatmates.com.au and onsold to Realestate.com.au for $25M
Senior Developer at Monash University (2004 - 2007)
- Architected and developed a highly abstracted, yet optimised framework, underlying the My Monash Portal redesign (60,000 users per day)
- Rewrote aging and spaghetti coded university website course search engine according to Perl Best Practice and coding style guides
- Designed and developed in-house Class::DBI like module (for legacy reasons) using advanced perl-fu (closures, inside-out objects, symbol table hacking)
- Redesigned and rewrote highly-buggy database synchronsation middleware in PL/SQL between the University's WebCT and in-house student/staff management interface
- Co-developed unifying system of all the different class and event booking systems throughout the faculties
Developer at Deakin University (2004)
- Reverse engineered Berkeley CASES using OllyDB to binary patch a tight loop allowing it to run on multiple virtual machines (amazingly still in use as of 2014)
- Developed web interface to Berkeley CASES
- Developed survey templating system for Berkeley CASES
Technical Reviewer
- Rust Essentials, by Ivo Balbaert, Packt Publishing (2015)
- MySQL High Availability, by Charles Bell, Mats Kindal and Lars Thalmann, O'Reilly Publishing (2014)
Achievements
Google Treasure Hunt (2008)
- Runner up contestant
International Collegiate Programming Contest, ACM (2003)
- Placed 20th in the South Pacific Region
Victoria University (2000)
- Perfect score of 100% - Data Structure and Algorithms
Education
ProActive Services (2006)
- ITIL Service Management Essentials - Foundation Certificate
Thomsett International (2005)
- Project Management - An Introduction
Monash IT (2005)
- Data Modelling Techniques
Damian Conway (2004 - 2005)
- Advanced Module Interface Design Techniques
- The Productive Programmer
- Perl Best Practice
- Intermediate Object Oriented Perl
Victoria University (2001 - 2003)
- Bachelor of Science, Computer Science
Victoria University (completed first year in 2000)
- Bachelor of Engineering, Computer Engineering