I love to make pixels change colour with code. And I love the web, which freely empowers individuals to share their ideas and to create beautiful experiences for each other. I also have a passion for and deep experience in clear technical communication.
For more than 25 years, I’ve built amazing experiences for the web, taught others to do the same, and led teams and practices to do it at scale.
Skills
Technical
- Web platform: HTML, CSS, JavaScript
- Web apps: Storybook, Next.js, React, TypeScript
- Web servers: Node.js, Ruby, PHP
- Static site generation: Eleventy, Netlify, CloudCannon
- Infrastructure: AWS, Cloudflare, Buildkite, GitHub
- Videography, production and editing: Final Cut Pro
- Coding agents
Non-technical
- Written & verbal communication
- Strategic leadership & planning
- Delivery team leadership
- Line management
- Personal productivity
- Coaching & mentorship
- Public speaking
Work
-
Culture Amp: Lead Engineer → Principal Architect since 2015
An Australian startup success story, Culture Amp’s mission is to create a better world of work, although I've always thought of it as software that gives voice to the things people couldn't say out loud at work. I joined as employee #26 and have grown with the business to lead the practice of ~50 engineers (at once) who contribute to Culture Amp’s user interfaces.
- built numerous web apps, features, and components as an individual contributor
- led the Individual Effectiveness team to build Culture Amp’s second product, 360° surveys
- founded the Front End Capability team that created Culture Amp’s design system, Kaizen, standard front end app framework and AWS infrastructure
- led a performance optimisation project for customers in mainland China
- standardised front end application architecture and software stack for ~15 teams, ~50 apps
- devised technical roadmap and initial estimates for multi-year, group-wide UX uplift initiative
- programmed practice meetings, skills training, and internal resources
- provided informal mentorship to engineers across the organisation
- evolved Culture Amp's front end coding interview over multiple generations
- produced countless internal engineering standards, guides, RFCs, decision-making documents, and business cases
-
Avalanche & AVG AU/NZ: Chief Technology Officer 2012 → 2015
I began my tenure at Avalanche leading Information Technology and internal software development for AVG AU/NZ, a direct-to-consumer software sales business that was a wholly-owned subsidiary of Avalanche. This included delivery leadership for a small engineering team building the company’s in-house CRM and e-commerce platform. During my tenure, the business was acquired by AVG Technologies B.V., for which I facilitated the integration of the business into AVG’s global technology infrastructure.
I then transitioned to leading the engineering of Avalanche’s pre-seed startup initiatives: BreachAlarm (née Should I Change My Password, a password leak notification service similar to Have I Been Pwned), Sit the Test (an online test authoring and delivery platform), and Send a Slab (a gift-delivery service based on the Australian tradition of giving a "slab" of beer as thanks).
- led small engineering teams of 2-3 people on the above projects
- designed the systems architecture for BreachAlarm, Sit the Test, and Send a Slab
- implemented AWS continuous delivery and infrastructure automation (CircleCI, Chef)
- partnered with the business owner and executives on strategic initiatives
- ran internal IT (literally fixed the printer when it broke) and managed Windows network servers for an office of ~50 people
- trained the executive team on the Getting Things Done (GTD) personal productivity framework
-
SitePoint: Technical Director 2001 → 2011
SitePoint is a Melbourne-based technical publisher focused on web development. During my 11 years there, I split my time between personally authoring the “first” of the company’s various publication types – the first weekly tutorial series; the first printed book; the first multimedia course – and building the technical systems to scale these publishing activities into a sustainable business.
- wrote five editions of the book Build Your Own Database Driven Website Using PHP & MySQL (over 25,000 copies sold, 2002-2012)
- co-wrote the books Simply JavaScript (2007) and Everything You Know About CSS Is Wrong! (2008)
- edited nearly 300 issues of the SitePoint Tech Times email newsletter (reaching ~250,000 free subscribers, 2002-2010)
- wrote and presented online courses JavaScript Live with Kevin Yank and PHP Live with Kevin Yank to thousands of paid students
- led a small development team to extract SitePoint’s forum-based website auction marketplace into a standalone, custom application and independent startup, Flippa
- designed and built SitePoint’s publishing toolchain for print and digital (PDF + EPUB) books, including external-contributor-accessible WYSIWYG tools for writing, editing, typesetting, and indexing books
- designed and built Editize, a WYSIWYG HTML editor component delivered as a Java Applet, SitePoint's first paid software product
- product-managed and implemented a custom online courseware application including threaded Q&A forums linked to each content element, then later led the engineering team to relaunch this as an independent startup, Learnable (now the SitePoint Premium Library)
Volunteering
-
Melbourne Pen & Stationery Show: President since 2023
The Melbourne Pen & Stationery Show is Australia’s premier event for lovers of fine writing instruments, stationery, and craftsmanship, bringing the pen community together every year since 1998 (except 2020-2021). It is run as a nonprofit incorporated association by a small group of volunteers. I joined the committee in 2023 and was elected President in 2025.
Apart from leading the effort to organise the annual event, I have also built and maintained the event’s website and other technical systems.
- formed the new committee that moved the show from its longtime home in the suburbs to a city-centre venue, increasing attendance to 2.5× the previous record
- replaced the show’s ageing single-page web brochure with a modern, responsive website backed by CloudCannon Git-based CMS and Eleventy static site generator – the best pen show website in the world
- fully automated the show’s charity raffle with custom software that tracks sold tickets, awards prizes, and notifies winners
-
MelbJS: Venue manager since 2022
MelbJS is a perennial staple of the Melbourne tech meetup scene. I have managed Culture Amp’s venue sponsorship of the event since 2022.
- liaised between MelbJS organisers and Culture Amp budget owners to evolve sponsorship terms (venue, food, drinks)
- organised Culture Amp staff volunteers to provide security and logistics support every month
-
Impro Melbourne: President → Treasurer since 2007
An independent, nonprofit theatre company focused on improvised theatre, offering public performances most weekends of the year, and public workshops most weeknights. I have performed with the company for over 25 years, and since 2007 have served on the association's committee of management, for many years as President and now as Treasurer.
- after more than two decades of hiring spaces for shows and workshops, grew the business to establish and sustain a permanent, company-run venue since 2021
- built and maintained the company’s website, CMS, and other technical systems, including bespoke show and workshop management systems, software that has underpinned the business for over two decades now
- implemented multi-camera recording of performances, and the Impro Melbourne video membership
Publications
-
The Minimum Viable Test Suite (MelbJS 2026) talk
-
How to Build an Agent in JavaScript (MelbJS, Web Directions Summit 2025) talk
-
Help! Storybook is eating all our tests! (MelbJS 2023) talk
-
On Endings: Why & How We Retired Elm at Culture Amp (MelbJS 2023) talk
-
Four Kinds of Leadership in Team of Teams (Web Directions Code Leaders 2018) talk
-
Elm at Scale: More Surprises, More Pain Points (Compose Melbourne 2018) talk
-
Write a Robust, Functional Front End with Elm with Sebastian Porto (Decompress 2018) workshop
-
Don't break the Scrollbar (MelbCSS 2018) talk
-
Unpacking Webpack Performance (MelbJS 2017) talk
-
Developer Happiness on the Front End with Elm (RailsConf 2017) talk
-
Elm in Production Surprises & Pain Points (Elm Melbourne 2017) talk
-
Integrating Webpack with Rails (MelbJS 2016) talk
-
CSS Selectors Redux (Web Directions Respond 2016) talk
-
Up and Running with Sublime Text 2 (Lynda.com → LinkedIn Learning 2013) course
-
PHP & MySQL: Novice To Ninja, 5th Ed. (SitePoint 2012) book
-
Build Your First Website with HTML & CSS (SitePoint 2011) course
-
JavaScript Live with Kevin Yank (SitePoint 2010) course
-
PHP Live with Kevin Yank (SitePoint 2010) course
-
CSS Frameworks: Make the Right Choice (Web Directions South & Edge of the Web 2009) talk
-
Everything You Know About CSS Is Wrong! with Rachel Andrew (SitePoint 2008) book
-
The CSS Crash Course (SitePoint 2007) course
-
Simply JavaScript with Cameron Adams (SitePoint 2007) book
-
Coping with the New Web on the Server Side (Fundamentos Web 2006) book
-
JavaScript APIs & Mashups with Cameron Adams (Web Directions South 2006) talk
-
Build Your Own Database Driven Website Using PHP & MySQL 1st-4th Ed. (SitePoint 2002-2009) book
Other interests
- Impro Melbourne: I perform in unscripted theatre productions throughout the year, including Jane Austen Improvised, Theatresports™ and Smells Like a Song (an improvised musical).
- Subspace Radio: With a friend, I record and produce a podcast discussing new episodes of the Star Trek TV and film franchise as they are released.