Built countless projects on AWS of all types, complexities, and scales. Architected and operated a scale-to-zero webapp that seamlessly handled viral success. Experience adapting and optimising monolith applications to make efficient use of the AWS platform.
EC2
100+ hours experience
Running production workloads in EC2 with Application Load Balancers and Auto Scaling Groups. Using IAM Instance Roles for securely interacting with other AWS services.
Lambda
100+ hours experience
Developed proof-of-concept APIs using Lambda with DynamoDB and API Gateway. Developed custom Alexa Skills using Alexa Skills Kit. Developed Lambda-backed CloudFormation custom resources. Automated infrastructure management tasks with Lambda & SNS. Used Lambda@Edge to implement password protection and other features for CloudFront.
CloudFormation
100+ hours experience
Migrated existing infrastructure for a complex SaaS application to be managed by CloudFormation. Created numerous Lambda-backed custom resources to enhance capabilities of CloudFormation, including fully-automating HTTPS certificate acquisition.
Elastic Beanstalk
100+ hours experience
Deploying, operating, and maintaining a mission-critical application with thousands of daily active users.
S3
100+ hours experience
Created an automated tiered backup system using S3 Lifecycle Policies. Designed & implemented a system to allow users to upload large files from any platform using S3 Multipart Uploads, EvaporateJS, Cognito & AWS Amplify. Hosted static websites using S3 Static Website Hosting and CloudFront.
CloudFront
100+ hours experience
Hosted single-page apps and static websites on CloudFront. Used CloudFront as a CDN for videos and other media. Used Lambda@Edge to password protect sites, as well as to implement custom redirects and other functionality.
Cognito
100+ hours experience
Used Cognito User Pools to rapidly develop proof-of-concept applications. Used Cognito Federated Identities with Developer Authenticated Identities to safely grant users with limited direct access to S3 services.
IAM
100+ hours experience
Created many IAM Policies, Roles & Users according to Principle of Least Privilege. Utilised Conditions in order to facilitate automated testing of an application under different sets of permissions.
RDS
10+ hours experience
Administrated multiple highly-available production databases.
CodeBuild/CodePipeline
10+ hours experience
Created an automated multi-stage build process for Gatsby websites using CodeBuild, CodePipeline, and gatsby-plugin-s3.
Simple Queue Service
10+ hours experience
Used SQS for efficient data processing in a scale-to-zero microservices application.
CloudWatch
10+ hours experience
Developed a simple daemon process to provide custom metrics about per-method resource utilisation, allowing for visibility into which parts of the application had the most potential for optimisation. Used CloudWatch Events to create a scaleable cron alternative.
AWS Elastic Transcoder
10+ hours experience
Architected and implemented an adaptive streaming system using Elastic Transcoder to transcode videos at multiple bitrates.
Amazon Connect
100+ hours experience
Designed a call-centre IVR workflow using Amazon Connect, including mechanism for callers to request a callback instead of waiting on hold.
more...
DynamoDB
100+ hours experience
Developed scale-to-zero queue management and fan-in processing as part of a complex data processing pipeline. Additional experience using DynamoDB for rapid-prototyping.
API Gateway
100+ hours experience
Design of public-facing Lambda-backed APIs.
Route 53
10+ hours experience
Certificate Manager
10+ hours experience
Acquired and deployed HTTPS certificates for CloudFront & Load Balancers. Developed automation for this process.
IoT Core
10+ hours experience
Created a proof-of-concept demo allowing multiple devices to communicate via AWS IoT Device Shadows & Messages.
Simple Notification Service
10+ hours experience
Allowed cloud-hosted applications to react to events generated by AWS services, such as Elastic Transcoder. Automatically whitelisted AWS service IP addresses for private apps using AmazonIpSpaceChanged topic. Allowed CloudWatch to send SMS messages to key personnel when certain alerts were triggered.
My first true love. Still one of my favourite languages.
Umbraco
1000+ hours experience
Worked on multiple Umbraco sites, both frontend and back-office features. Built a flexible WYSIWYG editor that allows non-technical users to build visually-impressive, responsive pages.
.NET Core
100+ hours experience
Wrote an integration to transfer data from a cloud-based system to an on-prem solution. Created a tool for retrieving data from failing Solid State Drives.
more...
Avalonia
10+ hours experience
Created a simple GUI wrapper for a data export script.
Simplified and accelerated processing of business-logic using LINQ.
JavaScript (Browser)
1000+ hours experience
I find JavaScript's quirks very endearing.
Angular (2.0+)
1000+ hours experience
Used Angular for several published hobby projects and many unpublished ones. Planned and contributed to upgrade from AngularJS to Angular via hybrid app approach.
React
100+ hours experience
Use of React SSR in Static Site Generation projects. Development of custom client-side components, including support for hydration.
AngularJS (1.x)
1000+ hours experience
Built highly-complex interactive webapps using AngularJS. Optimsed AngularJS apps to run on low-performance platforms such as Smart TVs. Very familiar with directives, services, digest cycle, scopes, etc...
VanillaJS
100+ hours experience
No jQuery, no framework. One of my favourite ways for putting together a fast proof-of-concept or a simple tool.
Vis.js Timeline
100+ hours experience
Created an interactive timeline-based webapp, with deep integration with AngularJS via a custom directive. Contributed multiple significant performance improvements upstream.
TypeScript
1000+ hours experience
My favourite language. Experience targeting both browsers and NodeJS. Striving for full static typing. Comfortable with advanced typing features such as generics, intersection & union types, type guards, aliases, etc...
NodeJS
1000+ hours experience
Have written static content generators, simple APIs, realtime video processing pipelines, business-logic integrations, and more.
CSS
1000+ hours experience
Experienced practitioner of Progressive Enhancement. (Try disabling JavaScript on this site.) I love doing things in CSS that most developers don't realise are possible.
SCSS
10+ hours experience
Authoring stylesheets using SCSS syntax.
Terraform
100+ hours experience
Wrote several open source modules for deploying static websites to AWS S3+CloudFront. Used Terraform to manage infrastructure for multiple cloud-native applications.
Video manipulation
100+ hours experience
Built systems for processing both live and on-demand video content. Very familiar with high-level concepts such as transcoding, remuxing, encoding, and decoding.
ffmpeg
100+ hours experience
Used ffmpeg fairly extensively for transcoding, remuxing, and simple editing. Integrated ffmpeg programmatically for processing live and on-demand videos. Used complex filters to convert Advanced SubStation subtitles to transparent video.
gstreamer
10+ hours experience
Designed and deployed live video transcoding pipelines in gstreamer.
mpeg-ts
10+ hours experience
Limited experience directly manipulating mpeg-ts streams. Wrote an open-source library (mpegts-tools) for performantly parsing mpeg-ts streams in NodeJS.
more...
AviSynth/AviSynth+
100+ hours experience
Automated simple video editing tasks.
DVBdirect/DVBjet
10+ hours experience
Used DVBjet to create livestreams based on terrestrial TV.
HLS.js
10+ hours experience
Built a simple video player using HLS.js, including extensive error handling.
Experience with MySQL, MariaDB, PostgreSQL, MSSQL, and SQLite. Architected fully- and partially-normalised databases. Proficient at using EXPLAIN to optimise existing queries.
Interpersonal
1000+ hours experience
Well-liked and respected by previous coworkers. Friendly, approachable, and usually able to point people in the right direction.
Teaching
1000+ hours experience
Passionate about helping others understand technology concepts. Able to simplify complicated concepts for laypeople, or provide in-depth technical explanations for developers. Helped teachers teach programming to other students while in highschool.
Support
100+ hours experience
Provided tier 1, 2 & 3 support for over a year at a company with no dedicated support staff. Was often specifically requested by frequent callers.
Code reviews
100+ hours experience
Reviewed many pull requests. Strict code-cleanliness standards. Careful to keep all criticism constructive.
Leadership
1000+ hours experience
Technical Lead for a team as it grew from 4-15 developers.
Date & Time
100+ hours experience
Inadvertantly become passionate about dates, times, timezones and their representations within computers. Can tell you the difference between POSIX and ISO GMT offsets, how UTC is based on a false premise but is still worth using almost everywhere, or why an Olson timezone name is superior to a timezone abbreviation.
Moment.js
100+ hours experience
Developed a private library for working with recurring events.
Chronos (CakePHP)
10+ hours experience
Assistance porting a private library for working with recurring event library to PHP.
Noda Time
10+ hours experience
Ensured correct handling of timezones while developing a system for converting exported data between two different formats.
IT Administration
1000+ hours experience
ASD Essential Eight
100+ hours experience
Implemented Essential Eight Mitigation Strategies as outlined by Australian Signals Directorate.
Microsoft Intune / Endpoint Manager
100+ hours experience
Wrote configurations to enhance security. Packaging Win32 apps.
Android Work Profiles / iOS User Enrollment
100+ hours experience
Assured users of privacy of personal data. Wrote and tested configurations for Data Leakage Prevention. Documented enrollment process. Developed plan for rollout.
Airlock (Application Whitelisting)
100+ hours experience
Responded to user requests for adding applications to whitelist. Evaluated business use case and security implications of new applications. Updated whitelist in response to application updates. Troubleshooting related issues.
Email hardening
100+ hours experience
Setting up DKIM for many different services. Tightening SPF rules. Monitoring DMARC reports (both manually and via Valimail). Enforcing DMARC.
Static Site Generation
1000+ hours experience
Development & deployment of many cost-effective & fast websites. Created/maintained multiple open source tools for infrastructure provisioning and content deployment.
Gatsby
100+ hours experience
Leveraged Gatsby to build my blazing-fast blog, along with several other websites. Have written or contributed to several open source Gatsby plugins.
Parcel.js
100+ hours experience
Built this website, other websites, and several Single-Page Applications. Experience with both v1 and v2.
Docker
100+ hours experience
Dockerised my homelab. Published several open source Docker images and compose files.
Dockerfile
10+ hours experience
Published several open source Docker images for various purposes.
Compose
100+ hours experience
Extensive use of Compose for managing my homelab.
Linux
100+ hours experience
Used Linux extensively for both personal & professional purposes. Hosted production services on CentOS, RHEL, Ubuntu Server, Alpine, etc... Comfortable with GNU utils, can also use BusyBox utils. Used Ubuntu as my primary desktop environment for several months.
PowerBI
100+ hours experience
Created dataflows to ingest and transform ESdat-format CSV data received from labs. Designed and refined reports tailor-made for specific use cases.
PHP
1000+ hours experience
Architecture, ownership, and maintenance for legacy and greenfields projects. Large scale automated refactorings. Performance optimisation via Blackfire and xdebug.
CakePHP
1000+ hours experience
Architected a scaleable API for a highly-complex SaaS solution. Assisted development team with performance optimisations.
PHPUnit
100+ hours experience
Designed testing methodology for a large scale SaaS solution. Modified setUp/tearDown system to improve performance, allowing thousands of tests to be run without taking multiple hours. Assisted team with writing tests.
WordPress
100+ hours experience
Wrote some plugins, customised some themes. Developed a self-service portal to allow designers to create new websites with our standard plugins preinstalled, migrate websites between different servers (dev/prod), safely move websites to different domains, and backup websites.
phpBB
100+ hours experience
Developed secure invite-only forums to allow a vendor and their customers to discuss sensitive topics privately.
more...
Hardware
100+ hours experience
Here are my meatspace skills.
PC building
100+ hours experience
Built more than 10 PCs. Upgraded more than 15. Experienced at selecting cost-effective parts within a variety of budgets.
Specialised server design
10+ hours experience
Part-selection for a purpose-built video transcoding server.
3D modelling (CAD)
100+ hours experience
Familiar with SolidEdge, 3DS Max, Fusion360, Blender, OpenSCAD, SolveSpace, SketchUp, 123D Design, etc... Crafted 3D animations and designed prototype hardware.
3D printing (CAM)
100+ hours experience
3D printing enthusiast. Produced prototype/proof-of-concept parts in a variety of materials on my FFF printer. Understand the relative strengths and weaknesses of different printing technologies such as SLA and SLS.
more...
Custom loop water cooling
10+ hours experience
Designed and built a custom water cooling loop for my primary personal computer.
Built simple scripts using libraries such as Scrapy and PRAW. Experimented with machine learning stuff using Numpy & Tensorflow. Managed dependencies using pipenv.
GML
100+ hours experience
SharePoint JSOM
100+ hours experience
Built a library for creating advanced cross-platform SharePoint forms with AngularJS to replace InfoPath.
XSLT
10+ hours experience
Created simple data visualisations for SharePoint dashboards.
Power Automate
10+ hours experience
Automated simple tasks in SharePoint and Exchange Online.