Recent Projects
Sentu
2019 - 2020Co-founder of a startup in the education space; the application is currently in private beta on Android.
Fika
2017 - 2018Created the infrastructure and a mobile VOIP application for a startup in the mental health space.
Clients & Agencies
During my career I have worked with some very well known brands and digital agencies.
- Financial Times
- Orange
- Volkswagen
- Microsoft Xbox
- Namco
- Yo! Sushi
- Lastminute
- Square Enix
- BBC
- Ford
- Nokia
- Vidal Sassoon
- Method
- Tribal DDB
- LBi
- Wunderman
- Saatchi & Saatchi
- Start Design
History
Since creating my first web page in the 90s I have been studying programming and working in the digital industry.
Over the course of my career I have created many simple and complex web applications, desktop applications, e-commerce websites, implemented over the wire protocols and designed binary file formats.
I believe in using the right tool for the job and carefully evaluate the most appropriate technology stack for each project.
Operating solo or leading small to medium-sized teams of engineers is a walk in the park. I have led teams of 12+ engineers on multi-million dollar projects and guided junior engineers in small agile teams.
Open Source
As a believer in the benefits of open-source development I have contributed to many open-source projects including commonmark, source highlight and help2man.
Whilst working with Nodejs I have contributed over 200 packages to the NPM registry.
Like nearly all of my work this website is open-source, feel free to browse the code or fork the project but please make the style your own if you do! If you hit a bug raise an issue so that I can continue to learn and improve.
Latest Contribution
Bracket is a fast and correct implementation of Handlebars in Rust; read the documentation or view the source code.
Tech
- Environment
- Linux, Tmux, Vim
- Devops
- Docker, Packer, AWS
- Languages
- Rust, Go, Java, Kotlin, Javascript, Ruby, Python, Shell
- Style
- CSS3, PostCSS, Stylus, Sass, Less
- Markup & XML
- HTML5, XHTML, XML, XSLT, XPath, E4X
- Development
- Nodejs, Babel, Webpack, Browserify, Gulp, Grunt
- Databases
- Postgres, Redis, CouchDB, SQL, MySQL
- Mobile
- Android, React Native
- Documentation
- Markdown, Commonmark, LaTeX, Pandoc
- Source Code Management
- Git, Subversion, CVS
- Continuous Integration
- Travis, Coveralls, Jenkins
- Architecture
- OOP, AOP, MVC, IoC & Design Patterns
- Frameworks
- React, Vuejs, Alpinejs, D3
- Messaging
- REST, SOAP, XML-RPC, Open Sound Control (OSC)
For brevity many skills learnt along my journey have been omitted, I am keen to play with Elixir, Nim and Crystal.
Workflow
I evangelize a document, test, code and iterate workflow to create robust, maintainable software but am also able to be agile for startups that need to move fast.
Document
Writing documentation first not only creates a welcoming atmosphere for other developers it forces a thorough analysis of the task or problem domain. The end result is higher quality software that is easier to maintain.
Test
Testing software is an integral part of the process, we can leverage test frameworks, code coverage, continuous integration and deployment to develop robust programs. Software without a test suite is stumbling in the dark.
Code
Lint code, leverage static analysis, optimize the development environment for maximum efficiency, respect the DRY principle and have an attitude of constantly learning. Look for the better solution even when the code seems close to perfect.