- 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