As an Engineer at Skillshare, you’ll help shape the iOS and Android experience, with a strong focus on mobile while also contributing to the web and backend systems that support it. You’ll work in a TypeScript monorepo built with React Native / Expo, React Router, NestJS, GraphQL, and Cloudflare Workers.You’ll collaborate closely with product, design, data, and backend engineers in a small, fast-paced team that values craftsmanship, ownership, and collaboration.
Your expertise: * You have 5+ years building product software, including meaningful production experience shipping React Native apps to the App Store and Google Play * You are proficient with an agentic coding harness — Claude Code, or a comparable tool — as your normal way of building software, not as occasional autocomplete. You’re comfortable with a model writing the majority of the code while you own the direction, the review, and the result * You review generated code more sceptically, not less. You catch the plausible-but-wrong, notice the quietly dropped edge case, and never let something land because it reads confidently. Whoever typed it, you’re accountable for what you merge * You have deep React and TypeScript experience and write code that holds up in a large, strictly-typed codebase — you reach for the type system rather than around it * You’ve shipped a server-rendered React app in production with a modern meta-framework — Next.js, Remix, React Router, or similar. What matters is that you’ve worked with nested routing, server-side data loading, and rendering strategies, and understand the trade-offs between rendering on the server and in the browser; which framework you did it in matters much less * You’ve worked with Expo in production (or have equivalent bare-RN depth) and are comfortable with file-based routing, dev clients, config plugins, EAS Build/Submit/Update, and the realities of native module upgrades and SDK bumps * You know how to make a React Native app fast — you’ve profiled real jank, fixed re-render and list performance problems, and have opinions about animations running off the JS thread * You’ve handled the unglamorous parts of mobile: store review, versioning and staged rollouts, crash triage, permissions, and platform differences between iOS and Android * You’ve built and consumed GraphQL APIs and understand client caching, pagination, and how schema design affects mobile payloads and perceived speed * You’re comfortable in a Node.js / TypeScript backend — you can trace a bug from a screen through the API into the database and fix it where it actually lives * You care about testing at the right altitude and can tell the difference between a test that protects users and one that protects a snapshot * You’re a collaborative engineer who values ownership, clear communication, and delivering high-quality experiences for real users * You can overlap with our US-based team until at least 1:00 PM Eastern each day (8:00 PM if you’re based in Ukraine), which is when code review, pairing, and our Monday goal-setting and Friday demo happen. Outside that window we work asynchronously, so Upper-Intermediate English and the habit of leaving good context behind in issues and pull requests matter as much as the overlap itself
Will definitely be a plus: * None of these are required — they’re the things that would let you hit the ground running, and we’re happy to teach any of them to the right person * You’ve shaped a codebase for agents — authored rules or context files (CLAUDE.md, skills, subagent definitions), wired up MCP servers or hooks, or built the lint, type, and test guardrails that let a harness run with less supervision * Hands-on experience with React Router in framework mode (v7 or v8) — filesystem routes, loaders and actions, route-level middleware, and typegen. This is what our web app runs on, so it’s the most directly transferable item on this list * Comfort with Vite as a build tool and dev server, rather than a framework-managed bundler * You can work confidently across our backend — NestJS with GraphQL, Prisma, and Postgres — and are happy owning a feature from screen to schema to migration * You’re familiar with hexagonal architecture (ports and adapters), Domain-Driven Design, and Clean Architecture, and you understand why the domain shouldn’t know about the framework. Our mobile app is structured this way too — domain, adapters, infrastructure, and composition are separate on the client, not just the server * Experience with event-driven patterns — domain events, transactional outbox, idempotent consumers * Experience in a monorepo with a task runner and shared libraries (we use Nx + Bun), and an appetite for keeping the toolchain sharp * Familiarity with GCP and Infrastructure as Code (we use Pulumi in TypeScript); prior AWS experience translates fine * Exposure to any of: in-app purchase and subscription infrastructure (RevenueCat or similar), video streaming and DRM, search infrastructure, fine-grained/ReBAC authorization, or analytics and experimentation on mobile * Experience rendering React at the edge — Cloudflare Workers, streaming SSR, or comparable serverless-runtime constraints * Universal-app experience — sharing code across iOS, Android, and web with React Native Web * Native experience in Swift or Kotlin for the moments when JavaScript isn’t enough * A taste for explicit state boundaries. On the web we keep server data in the GraphQL client cache and UI state in Redux Toolkit, with the split enforced by lint rather than good intentions (local useState is banned outright). Candidates who find rules like that clarifying tend to enjoy this codebase
You will be involved into: * Own the mobile apps end to end — build features in our Expo / React Native codebase and own the release machinery around them: EAS builds, internal and TestFlight distribution, store submission, and OTA updates * Build with an AI coding harness as your primary tool. Most of the code here is written by an agent — Claude Code, driven by the skills, CLAUDE.md, and CONTEXT.md files checked into the repo alongside the code. Your leverage is in directing it: decomposing the work, specifying intent precisely, reviewing output hard, and feeding corrections back until it’s right. On mobile that also means verifying on real devices what a model cannot feel — jank, gesture response, and how a screen actually behaves in the hand * Build product features across the stack: React Native screens, server-rendered web routes, GraphQL operations, and the backend resolvers and use cases that serve them. Both apps use file-based routing — expo-router on mobile, React Router’s filesystem routes on web — so moving between them is a shift in platform, not in mental model * Build user-facing experiences that are performant, accessible, and feel genuinely native — smooth list virtualization, gesture and animation work (Reanimated), offline and low-connectivity behavior, deep links, and push notifications * Work on native-adjacent concerns that don’t come free: video playback and background/lock-screen controls, in-app purchases and subscription entitlements, secure token storage, and OAuth flows on device * Consume and help shape a typed GraphQL contract (code-first schema on the server, fully typed client operations) so that a schema change surfaces as a compile error rather than a production bug * Work in a cross-platform design system — shared design tokens and primitives that keep web and mobile visually and behaviourally consistent without flattening either platform. * Raise the bar on mobile quality: unit tests, E2E flows on real devices/simulators, crash and performance monitoring, release hygiene, and a CI setup that makes shipping boring. * Contribute meaningfully to backend services and APIs in NestJS — new resolvers, use cases, and integrations, not just the layer you consume * Review code with best practices in readability, testing, documentation, performance, and accessibility; mentor teammates and help set mobile conventions the whole team can follow * Work to our weekly cadence — we set high-order goals together on Monday and deliver against them in a demo on Friday — and partner with engineers across teams as well as marketing, product, executive teams, and customer support
About the company and project:
ZONE3000 is a 2400+ people family that forms a new cultural code in the software development business. For 25 years we have been focusing on the highest quality of projects and empowering people to think big and make a difference. We are looking for talents who want to create and improve technological solutions for tomorrow and make things as best possible.
On behalf of our client Skillshare is an online learning community whose mission is to connect curious, lifelong learners everywhere and, in doing so, build a more creative, generous, and prosperous world, ZONE3000 is looking for a Senior Full Stack Engineer — Mobile (React Native). The engineer will focus on performance, accessibility, offline and low-connectivity behavior, deep links, push notifications, video playback, subscriptions, testing, monitoring, and the overall reliability of the iOS and Android experience.