Over 25 years of experience developing websites, web applications and mobile applications, mostly in Typescript using React and NodeJS.
I have over 25 years experience developing websites, web applications and mobile applications. My recent roles have been developing client-side and server-side applications in Typescript using React and NodeJS. Combined with my knowledge of databases like Postgres and MySQL, I deliver high-quality software that drives business success.
Considered a "git wizard" by colleagues, with extensive experience in advanced Git workflows and CI/CD.
I have given company wide talks on the git version control system. I have written pre-commit hooks to check code for linting errors before committing and worked on a tool to eliminate merge conflicts caused by linting fixes to a codebase. I have written a tool to find the last place in history that on old branch will rebase to without conflicts, which often makes resolving rebase conflicts easier. I've used git as a front end to svn in an svn-only company using the git-svn plugin which enabled me to manage my versions and commits locally then merge them centrally when they were tested and ready.
I know my way around Github and Gitlab's CI services, including advanced configurations that ran different kinds of tests depending on different triggers and tests that contribute code back to the original repository. I have also used CircleCI, AWS Codebuild, Travis and Jenkins in the past. I have made a small contribution to the original github "hub" command to fix a bug when a single commit has a large number of CI jobs.
Fan of configuration as code, including developing tools for Redash BI server configuration and Bitfocus Companion.
I like to ensure all configuration is managed as code and tracked in source control. I've written a tool to extract the query and dashboard configuration from a Redash BI server and store it as a series of YAML, SQL and JSON files that can be committed to git, allowing the state to be tracked, branched and reverted. It can also be loaded into other Redash instances running similar databases in different locations. I wrote the YAML import/export features in Bitfocus companion to help us manage the A/V and streaming setup at my church.
I have recent experience managing dependencies with npm and yarn for Javascript/Typescript and poetry for python. I have also used Ruby's bundler and PHP's composer.
I have managed docker containers, optimising built containers to contain only the runtime binaries without the build tools. I've used docker-compose to orchestrate containers.
Experienced with Agile practices and collaboration to find innovative solutions.
I'm experienced with Agile working practises and have led planning, retrospective and daily stand up meetings. I enjoy working with product owners to find innovative solutions that improve customer experience at the same time as streamlining development.
Extensive volunteer experience in audio-visual operations.
In my spare time I have a volunteered in audio-visual operation since I was a young teenager. I have about 20 years experience about once a month as a sound engineer, but I now mostly direct and vision mix live multi-camera video for our church YouTube Live streams and IMAG (Image MAGnification - i.e. the screens for the congregation in the room).
Significant contributions to open-source data.
I've contributed extensively in the early days of MusicBrainz, OpenStreetMap and Stack overflow.
Feel free to reach out if you're interested in collaborating on a project or discussing web development.