adjoe builds the technologies behind mobile apps growth and monetization. With our core product Playtime Arcade, we've become the global leader in rewarded advertising, an ad unit built on a simple premise: users earn real in-app rewards for engaging with new apps. The result is one of the most effective value exchanges in adtech, connecting advertisers and publishers with over 770 million users annually.
Serving 2,000+ Distinct Ad Experiences With Sub-Second Time to Interactive
The rewarded ad experience is where the value exchange becomes real, the second a user decides whether to engage or scroll past. The Catalog team owns that moment, designing how users discover and interact with the most relevant ads. With over 200 million monthly visits, there's no room for slow rendering or poor personalization. Performance and relevance have to be perfect on every request.
The system runs on AWS Spot Instances spare compute capacity that can disappear at any moment, yet our system is built to stay online without any interruption for the user. Backed by Kubernetes with event-driven autoscaling, everything is tuned for millisecond-level data retrieval so the experience never feels slow, even at 200 million monthly visits. The frontend is built on React and Vite, leveraging Code Splitting and Tree Shaking to keep core bundles lean and Time to Interactive under a second. On top of that, a config-driven engine lets the team customize the entire ad experience or run A/B experiments per more than 2000 games on the fly, ensuring the right ad reaches the right user while continuously moving conversion rates in the right direction.
Your Mission & Who We Are Looking For:
React and TypeScript Development. You will develop applications and shared packages inside a Lerna monorepo to serve over 200 million monthly visits. We are looking for 2+ years of overall software development experience from product-based companies alongside 1+ years of hands-on experience with React (hooks) and TypeScript to keep our frontend bundles lean using Vite, code splitting, and tree shaking.
Dynamic UI Customization. You will build highly adaptable interfaces handling variations in layouts, typography, and colors for a config-driven engine running A/B experiments across 2,000+ games. We need someone with an eye for UX/UI mechanics to ensure these interfaces render perfectly when users decide whether to engage or scroll past. Plus: Experience with Material UI.
Network and State Management. You will manage application state and async data fetches using Redux and RTK Query to maintain sub-second Time to Interactive. We require a solid grasp of web fundamentals—specifically HTML, CSS, core JavaScript, async programming, HTTP methods, and JSON—to handle millisecond-level data retrieval seamlessly.
Software Craftsmanship and Testing. You will apply SOLID principles to keep our repository structured and accessible for the entire engineering team. We look for someone who writes meaningful unit tests using Vitest to actively prevent production bugs rather than simply chasing a coverage percentage.
Browser-Level Troubleshooting. You will isolate and resolve real-world user issues, meaning you must be comfortable debugging directly in the browser and analyzing network calls. You will use Git for version control to manage your contributions safely within our continuous deployment pipeline.
Cross-Functional Collaboration. You will work alongside backend, QA, design, and product teams to ship optimization features for our rewarded ad experience. We are looking for an engineer eager to learn our technical ecosystem and scale their skills alongside a team managing infrastructure backed by Kubernetes and AWS Spot Instances.
What’s in It for You?
At adjoe, you’re not here to just close JIRA tickets, you’re helping build the infrastructure behind one of the most impactful platforms in adtech. The systems you work on will reach hundreds of millions of users and power billions of decisions every day.
Go Big. Own projects with impact on 770M users and push adtech boundaries.
Move Fast. Ship solutions multiple times a day, learn from results, and keep momentum.
Be Direct. Solve problems openly and collaborate across teams.
Thrive Together. Grow with a diverse, global team of people from over 40 different countries that learn from each other.
Have Fun. Celebrate wins, enjoy daily victories, and bring your energy.
We welcome applications from people who will contribute to the diversity of our company.