About Me
I am a Software Engineer, based in New Zealand currently working for Atomic.io. I work primarily on the React Native and Android Mobile SDKs. I strive to provide the best possible developer experience and deliver a reliable, full-featured and easy to integrate platform for our integrators to rely on.
I enjoy solving difficult technical challenges and finding solutions that make complex problems easy to reason about. My favourite commits are those that remove, rather than add LOC and make explicit, implicit assumptions in the code. I'm passionate about DX and love finding ways to improve the productivity of myself, my team and our users.
Work
Senior Software Engineer - Atomic.io
- Aug 2023 - Present
Software Engineer - Atomic.io
- Nov 2022 - Aug 2023
- Updated React Native SDK to achieve parity with other SDKs, including adding features, fixing bugs, automating the CI and release process, and improving documentation
- Developed features and fixed bugs in the Android SDK
- Developed a new feature from concept to delivery in the Web SDK
- Wrote developer documentation and guides
Software Engineer - Verizon
- Mar 2021 through Nov 2022
- Delivered iOS Client SDK to successful GA release
- Created a CI pipeline and developer tooling for push-button releases
- Worked with QA engineers to develop a robust automated testing suite
- Wrote developer documentation and guides
- Provided technical guidance for a major integration project
Intern - BlueJeans Network
- Nov 2019 through May 2020
- Test automation with Appium, Cucumber and Java
- Created a POC for a multi-device UI testing framework
- iOS Development, migrated Objective C code to Swift
Lab Demonstrating
- Helped students learn to program, assisted with exercises and explained programming concepts.
- Introductory Programming in Java, Introductory Programming in Python, Web Development, Web Application Development
Skills
React Native Development
- JavaScript, TypeScript
- React (Class and Hooks)
- Push Notifications
- Native library, iOS and Android
Android Development
- Kotlin and Java
- Kotlin Co-routines, Flows
- Firebase Push Notifications
- LiveData, Room DB, SQLite, Moshi, Koin
- MVVM, Dependency Injection, Reactive Programming
- Unit testing, Instrumented tests
iOS Development
- Swift
- SwiftUI
- UIKit
- MVVM
- XCTest
- Swift Package Manager, Carthage
- Reactive Programming (RX, Combine)
General
- Writing developer documentation
- Estimation and planning
- Git
- Bash and Unix Shell Scripting
- Agile
VR/XR prototyping and research
- Building prototype applications in ThreeJS, Typescript, WebXR
- Video editing, FFmpeg, OpenCV
- Designing and running user studies
- Statistical analysis
- Paper writing
Education
Honours - University of Otago
- First Class Honours
- 6DIVE: 6 Degrees-of-Freedom Immersive Video Editor
- Supervised by Stefanie Zollmann
BSc Computer Science - University of Otago
- University of Otago Prestige Scholarship in Science
- Electives: Artificial Intelligence, Computer Graphics, Theory of Computing, Databases