👋 Hi! 👋
I'm Cam, a software developer and consultant from Melbourne, Australia. I love writing code, building great products with great people, and sharing my knowledge through writing, speaking, and consulting. Read on if you'd like to know more about my work and my skills. Or to get in touch, reach out via one of the links above.
(Some of) my projects
Micro frontends writing
In 2019 I published a long-form article on micro frontends on martinfowler.com, explaining the theory and practice of this architectural style, including a fully-functional demo website. The demo is located here, and the source code is all on GitHub.
I try to stay fit by running, and I find that having a song with the perfect BPM to match my running pace really helps! So I created a set of scripts that queries my spotify library and automatically compiles a playlist of songs I can run to.
Full stack web development
While frontend is my passion, I believe strongly in full-stack development. I have experience building APIs and CLI tools using Node.js, Ruby, Python, Rust, and Java. For some strange reason I really enjoy shell scripting too.
Ops & Infra
Whenever possible I own my apps in production, including the path to get there. I'm experienced in building CI & CD pipelines, deploying to both cloud and on-prem infrastructure, writing all config as code.
Speaking & Writing
Micro frontends is an architectural style where independently deliverable frontend applications are composed into a greater whole. I helped pioneer the technique, and have written and spoken extensively on the topic. You can find some of my writing on martinfowler.com, and microfrontends.com.
I've worked with multiple household-name organisations to transform their frontend architectures, increasing team autonomy and drastically improving speed of delivery. All while maintaining product and technical consistency where it matters.
Practices & people skills
I'm an advocate for XP practices like pair programming and test-driven development. Whether I'm working at a start-up or a large enterprise, I always encourage my team to improve speed and quality of delivery by embracing agile, devops, continuous integration and continuous delivery.
I'm an experienced consultant, with skills in stakeholder management, influencing, facilitation, and training. As a team lead, I care deeply about the welfare of my team, and I try to make everyone's voice be heard, especially those from underrepresented or marginalised groups.