Below is my portfolio
This will be a living document of software I develop professionally and side projects!
Caesars:
Ahead of NFL kickoff, Caesars partnered with a third-party vendor to launch a daily engagement game that rewarded users with bonuses for participation. I integrated the game into the sportsbook’s Web and Android clients across multiple brands, and into a sub-brand iOS app that builds from the same React/Capacitor codebase. This work involved embedding the game and handling its event communication with our app, creating a seamless user experience timed with the NFL season launch. The feature saw high early engagement, following launch.
The original referral program created a steady stream of support requests because users couldn’t clearly see their own reward progress or the status of their referees. I rebuilt the frontend flow to make referral states clear and intuitive, working with backend engineers to align new API responses and QA to validate edge cases. Beyond resolving the ambiguity, I designed the system to flexibly support dynamic campaign information and milestone types. These changes empowered the marketting team to apply segmented testing across user groups, brands, or other marketing metrics. The redesign not only cut support overhead but also gave the business a more adaptable platform for experimentation.
The signup process had to handle regulatory complexity across multiple US states while staying frictionless for new users. I developed the frontend for the registration journey, working with iOS counterparts to align API contracts and data handling. The result was a smoother, compliant onboarding experience that supported higher conversion.
Marketing needed customizable landing pages that matched rapidly changing campaigns. I built React-based templates tied into our headless CMS, enabling non-technical teams to spin up tailored experiences. This empowered faster campaign launches and better targeted acquisition efforts.
Aristocrat:
The Red Keep Bonus feature demanded complex payout logic that also had to run efficiently. I engineered a specialized calculator and worked with a Technical Artist to optimize asset overhead. The result was a smooth, visually striking feature that balanced design ambition with performance.
This project needed eye-catching gameplay to stand out at launch. I implemented the Encounter Free Games, plus edge lighting, animations, and hidden Easter eggs—largely unsupervised. Delivering these features independently marked a turning point in my role and helped shape the game’s player experience.
The game engine was still under active development, causing unpredictable issues. I built features in parallel while collaborating closely with the engine team, and ultimately tracked down a memory leak before production. My work stabilized the project and smoothed its release.
Bonus games like “Mariposa” and “The Lab” required handling complex concurrent states. I built helper objects to manage game logic and multi-slot comparisons. These mechanics powered two engaging free game features that deepened the overall gameplay.
Personal:
The first version of my fitness app was hard to iterate on and missing key features. I rebuilt it in React Native with TypeScript, integrated Firebase/Google auth, Supabase feature flags, and custom SVG graphs. Now it supports a workout tracker and will soon host an exercise encyclopedia—built for gym-goers who want simple, reliable tools.
My Friend Gym: iOS - Swift (inactive)
I wanted a quick tool for plate math and lifting metrics, but no app fit the bill. I built one in Swift with programmatic UI, algorithms for one-rep max and Wilks score, and my first iOS database integration. It was my entry point into mobile development and laid the foundation for later cross-platform work.
Knight's Arsenal: iOS - Swift (inactive)
D&D players needed a more portable way to manage characters and dice rolls. I built an iOS app with avatar selection, inventory logic, and simulated dice. It turned a tabletop tool into a digital companion that simplified play sessions.