Senior backend engineer at Toddle,
working on authentication and identity infrastructure.
// Now
August 2026
Maintaining the Jenkins production pipelines I set up. Cutting latency on features
that need to hold up for 32k+ users. Scoping an auth dashboard for per-org
authentication stats, and a better session management system.
// Selected Work
Becoming an Identity Provider
Toddle · 2026
Toddle now acts as an identity provider for third-party and internal applications.
I built the SAML side: signed assertions, metadata exchange, certificate handling,
per-relying-party configuration.
Sign-on is IdP-initiated. The user authenticates with us, picks an application, and
we check they belong to the organisation that relying party is configured for
before signing anything. For OIDC I did the scoping, wrote the design spec, and
I’m guiding the implementation.
IdP-initiated SAML. The assertion is unsolicited, so there’s no
AuthnRequest to correlate against.
Impact —
SAML is shipped. OIDC is in development against the spec I wrote.
What I’d redo —
I scoped the first cut to meet a deadline. A couple of the deferred pieces
belonged in the initial design, and I’d push for them earlier next time.
Self-serve SSO, From Scratch
Toddle · 2023–2024
SSO meant Google and Microsoft OAuth, hardcoded. Schools were turning up on Okta,
Azure AD, ADFS and in-house IdPs, and each one was a bespoke project. Everyone
shared a single login page, so enabling a provider for one school still meant a
database flag and sometimes a small backend change: a ticket and a deploy sitting
on the path to going live.
I built generic SAML and OAuth integrations that work against any compliant
provider, plus per-org login pages that admins configure themselves. Allowlisting
is enforced server-side, so a method disabled for a school is disabled on the
shared page too.
Impact —
Any standards-compliant IdP, configured without engineering. Cut
~15 engineer-hours/month of manual enablement across
500+ organisations.
What I’d redo —
The SAML library has leaky abstractions and thin documentation, though nothing
better was available at the time. The admin setup flow also leans on documentation
more than it should.
Workflow Orchestration on Temporal
Toddle · 2024–2026
Syncs, bulk exports and migrations ran on a homegrown system that predated the load
we were putting through it. Retries were ad hoc, partial failures left inconsistent
state, and every team rebuilt the same scaffolding.
I built an orchestration framework on Temporal with progress tracking, retries and
graceful degradation. Several teams now use it for long-running jobs across regions.
Impact —
Now the standard path for long-running work at Toddle.
What I’d redo —
The framework is more general than it needs to be. Teams can express almost any
workflow shape, so it can’t warn them when a design is wrong. I’d trade
some flexibility for guardrails.
Self-serve Client Onboarding
Toddle · 2022–2023
Onboarding a school meant moving student, staff, parent and class data out of its
SIS: PowerSchool, Clever, Veracross, iSAMS, or something in-house. An engineer did
it by hand, usually over several rounds of fixing data shape with the school.
I built the self-serve rostering module. Schools configure their own migration,
watch it run, and opt into recurring sync. I wrote the PRD and did the UX alongside
the implementation, and later cut Lambda invocations by rescheduling the cron
behind it.
Impact —
Removed engineering from the standard onboarding path for
200+ schools.
Also at Toddle: async document generation on AWS, a Slack-based release approval
system, MFA, passwordless parent signup with child-scoped invite tokens, and ongoing
production incident response.
// Experience
Toddle
Sep 2022 – Present
Senior Software EngineerJul 2026 – Present
Software Engineer 2Jul 2024 – Jul 2026
Software EngineerJul 2023 – Jul 2024
Associate Software EngineerSep 2022 – Jul 2023
Leading design of a unified OIDC identity provider: authored the design spec and guiding its implementation.
Turned the SSO platform into an identity provider issuing SAML assertions and OAuth tokens to third-party and internal applications.
Built a Temporal orchestration framework used by several teams for long-running jobs across regions.
Built async document generation on AWS and a Slack-based release approval system. Own the patch and minor release pipelines.
Maintain data sync for 200+ schools: role and permission assignment, manual-override preservation, academic-year rollovers.
Primary responder for authentication and integration incidents; resolved 100+ customer-facing issues.
Software Development Engineer ·Pathfndr
Feb 2022 – Aug 2022
Customer-facing features including a Book Now Pay Later flow, and ownership of production microservices.