- Developed the `events` application and infrastructure, taking events emitted from applications and passing them onto Sift for fraud purposes
- With the core team, rolled out a new sessions infrastructure in place of the old one with no downtime. Increased the security of user sessions while also making the data stored inside extensible
- Rolled this out to all other downstream applications, including developing PHP and Ruby session libraries and removing the old session code completely from 99designs
- Introduced the analytics tracking plan, increasing the quality and trustworthiness of analytics data being emitted from apps
- Developed our `segment` application https://github.com/99designs/segment to read tracking plan files and use convert these to Segment API calls
- Converted all existing Confluence-based tracking events repository https://github.com/99designs/analytics/tree/master/tracking-plan, and also built CI to automatically update Segment where required
- Working with the analytics working group, removed Snowplow from our analytics stack, replacing attribution and session workflows by using Segment directly https://99designs.atlassian.net/wiki/spaces/ANALYTICS/pages/988938327/A+plan+to+say+goodbye+to+Snowplow
- Moved account settings into the SPA as one of the first squads to use the BFF/frontend application, including adding the graph to the BFF https://github.com/99designs/frontend/pull/414
- Updated `payments` to follow SCA regulations before deadline. Worked on both frontend and backend code to support this, including using new Stripe features to validate information mid payments flow where required.
- Rolled out designer curation features to vet designers before they can enter 99designs contests and projects, increasing the quality of design across the platform
- Allow designers to upload work samples from previous work
- Give designer curation team tools in 99admin to evaluate and approve/de
- Led and developed 2FA functionality for suspect user logins, and further extended this to require designers to authenticate via 2FA before adding a new payout method