Experience
Moving to the UK in 2023, my initial stomping ground was working at the spoons in Burton upon Trent. Funnily enough, that job didn't make the list below.
Scroll for moreCore competencies
#Languages
- Python
- TypeScript
- JavaScript
- Java
- Go
- Swift
- C++
AWS
- AWS
- Cognito
- Lambda
- Kinesis
- DynamoDB
- S3
- SageMaker
- EKS
- RDS
- Athena
- IAM
- VPC / PrivateLink
Frameworks
- React
- React Native
- Node.js
- TensorFlow
- OpenCV
- Spring Boot
- Vite
- FastAPI
- Flink
- Kafka
Infrastructure
- Terraform
- CDKTF
- SST
- Docker
- Kubernetes
- Git
- Linux
- OpenAPI
Data
- PostgreSQL
- MySQL
- Firebase
- Iceberg
- Data lakes
Practice
- Computer vision
- Solutions architecture
- Agile delivery
- Experiment design
Roles
#Founding member of the development team building a biometric authentication service, now leading it.
Progression at zally
Software Engineer
Founding member of the development team.
Senior Software Engineer
Engineering Team Lead
- present
1 year 6 months in the role
Selected deliveries
Identity and access management
Slack permission bot for production access
A Slack integration letting developers request scoped production access on demand, approved or refused by a manager in the channel.
Requests are managed through GitOps: an approval in Slack relays back to the GitHub environment, and the granted permission set is bolted onto the requesting developer for as long as the work needs it. It sits inside the wider IAM estate, which I owned end to end. Automated actions would then revoke the access either during manual revocation or after the requested time had elapsed.
- Slack API
- GitHub Actions
- AWS IAM
- Terraform
- GitOps
Internal platform
Internal stability monitor and employee interface
A pet project taken to production, giving the company oversight of the home-rolled systems the whole development suite runs on.
A fleet of pods pulses system state into DynamoDB, and the front end turns that into pages an engineer can read at a glance. Data engineers, AI engineers and software engineers work from one view of the estate without any of them stepping outside their IAM restrictions to get it. Role-based access is built in through custom attribute mapping in Keycloak, so permissions are team-specific and a team can be locked down in a single change.
- Kubernetes
- DynamoDB
- Keycloak
- React
- TypeScript
- AWS
Application security
Continuous API security in the delivery pipeline
An automated suite that tests the whole API surface on every pull request and every night, built on open-source tooling.
Static gates cover secrets, static analysis, dependencies, containers and infrastructure as code, alongside a lint holding the OpenAPI audit metadata to a threat model kept in the repository. A scheduled suite then tests the running service: contract conformance, regression tests for broken object and function level authorisation, fuzzing, and passive and active dynamic scanning. Every check maps to an OWASP category. Each gate landed report-only and was promoted to blocking once the backlog behind it was clear, so the team was never handed a red pipeline with no route through it.
- Semgrep
- gitleaks
- Trivy
- OSV-Scanner
- OWASP ZAP
- Spectral
- OpenAPI
- GitHub Actions
ML-Ops
Training management and model scoring harness
The operational layer behind a model per user, scored in real time.
One model per user is a different operational problem from one model per product: the binding constraints become cache management and how fast the fleet can scale, not the model itself. The harness handles both, and carries the release machinery around them. Shadow transitions let a new model score live traffic without affecting anyone, and phased rollout moves a version out to users in stages rather than all at once.
- SageMaker
- Python
- Kubernetes
- AWS
- Terraform
Engineering leadership
The team's move to AI-assisted engineering
Championed the shift to autonomous coding, and reshaped the practices around it so the change could be made safely.
Adopting autonomous coding is a process decision more than a tooling one. Review, testing and delivery habits calibrated for hand-written code stop being calibrated the moment most of the code is not, and the failure mode is not bad code so much as unexamined code. I ran the experiments that worked out which of those habits had to change and which had to hold, and set up weekly exploration days so engineers have protected time to meet emerging tooling somewhere other than the middle of a delivery sprint.
- Agentic coding tools
- Review and testing practice
- Team enablement
Cross-platform engineering
Multi-platform SDKs and third-party OAuth exchange
Founding development of the motion-sensor SDKs, and the token exchange that lets third parties stream to us securely.
Native SDKs in Swift and Kotlin with a React Native layer over them, so an integrator meets the same surface whichever stack they build on. Alongside them, a third-party OAuth token exchange, which is what makes the streaming integration an industry-standard one rather than something bespoke per customer. Before the pivot, the same run of work included a full-stack password manager with autofill.
- Swift
- Kotlin
- React Native
- OAuth 2.0
- Keycloak
- Node.js
- TypeScript
- AWS
- Cognito
- Lambda
- Kinesis
- DynamoDB
- React
- React Native
- Node.js
- TypeScript
- Terraform
- Docker
- Swift
- OpenAPI
Previous employment
- Website management, Discover Year. May 2021 - Jun 2023
- Website management, MentorU. Mar 2020 - Jun 2023
- Regional Mentor, University of Ottawa. May 2019 - Apr 2020
Also worked with
#Some freebies and packages I've had the chance to learn in passing.
- Kotlin
- Tcl
- OCaml
- Prolog
- Racket
- API Gateway
- ECR
- SNS
- Jira
- Confluence
- Express
- Robot Framework
- NumPy
- pandas
- MediaPipe
- PyGame
- Thymeleaf
- Embedded systems
Education
#BSc, Major in Computer Science, Major in Psychology
University of Ottawa, Ottawa, ON, Canada
Aug 2018 - Dec 2022
- Graduated Magna Cum Laude, equivalent to first-class honours
- Dean's Honours List, 2018 to 2022
- Eligibility
Right to work in the UK through British nationality
Active Canadian Reliability security clearance