ArcRemote

Senior Unity Developer - FT Freelance - Worldwide

Project-Based

Description

Senior Unity Developer

The role

We're looking for a senior Unity developer who can own the entire Unity platform layer of our product. You'll be building the Digitoys Loader — the core runtime system that fetches, assembles, and renders our 3D characters and items across mobile (iOS/Android via Flutter) and web (WebGL via React). This isn't a gameplay role. This is a platform engineering role. You're building the engine that every game, experience, and interactive feature in the Digitoys ecosystem will be built on top of.

You'll work alongside a small team: a Unity artist handling visual direction, shaders, and scene composition; a backend engineer handling APIs, databases, and blockchain integration; and a Flutter studio building the mobile app shell. You are the connective tissue between all of them on the Unity side.

We operate with AI-assisted development as a core part of our workflow. Experience with Claude Code, Cursor, Copilot, or similar AI coding tools is a strong plus. We're a team of six building what would normally require twenty — AI fluency is how we close that gap.

What you'll build

The Digitoys Loader (core priority)

This is the foundation everything else is built on. The loader is a Unity-based system that:

  • Fetches character and item assets from S3 using Unity's Addressables system
  • Assembles multi-part characters at runtime — combining a base character with equipped items, costumes, wearables, and effects into a single rendered entity
  • Manages memory efficiently, loading and unloading assets on demand so the app stays performant on devices as old as iPhone 11
  • Handles the addressable catalog — building, hosting, and versioning the JSON manifests that map addressable keys to remote asset URLs
  • Supports two build targets from a shared codebase: URP for mobile (higher fidelity) and WebGL for web (optimized for browser constraints)
  • Provides a clean API so the Flutter app (via flutter_unity_widget bridge) and the React website can trigger loading, viewing, and interaction without knowing Unity internals

Character and item system

  • Character selection, equipping, and visual composition — a user selects a character, equips a costume or wearable, and sees the assembled result in real-time
  • Runtime prefab composition — loading a character prefab, an item prefab, and an effect prefab, then combining them correctly based on attachment points and body part mappings

Bridge communication

  • Maintain and extend the Unity-side of the communication bridge between Unity and Flutter (mobile) and Unity and React (web)
  • Send and receive JSON-formatted messages for events
  • Ensure the bridge is standardized so new experiences can be added without rewriting communication logic each time

What we’re building

Interactive experiences

  • 3D toy viewer — spin, zoom, and inspect characters with fluid touch/mouse controls, binary dust particle effects, and subtle procedural idle animations
  • Unboxing experience — interactive gachapon opening with reveal animations, particle effects, and haptic triggers sent through the Flutter/React bridge
  • Eventually: AR placement using Unity AR Foundation (ARKit + ARCore), wardrobe/photo booth features, and the controller/camera systems that third-party game studios would build levels on top of
  • Digitoys Loader - a platform for game experiences built on our character library, loading and outfitting characters, animations, controllers, and cameras

What we're looking for

Must have:

  • 5+ years of professional Unity development with shipped products on mobile (iOS and/or Android)
  • Deep experience with Unity's Addressables system — building, configuring, hosting catalogs, remote asset loading, caching, and memory management
  • Strong C# skills and comfort working across Unity editor scripting, runtime code, and custom tooling
  • Experience building asset pipelines — taking art assets from artists and getting them into a runtime-ready state with proper optimization, LODs, texture compression, and platform-specific variants
  • Experience with Unity's Universal Render Pipeline (URP) and an understanding of the differences between URP and WebGL rendering constraints
  • Comfort working in a small team where you own the entire Unity stack — there's no Unity team to delegate to, you are the Unity team
  • Ability to communicate clearly with non-Unity team members (Flutter developers, backend engineers, artists, product leads) about what's possible, what's hard, and what the tradeoffs are

Strong plus:

  • Experience with flutter_unity_widget or embedding Unity as a library inside a non-Unity mobile app
  • Experience with Unity AR Foundation (ARKit/ARCore)
  • Experience building character customization systems, avatar builders, or modular prefab composition
  • Familiarity with AI-assisted development tools (Claude Code, Cursor, Copilot) — we use these heavily and a developer who can delegate routine tasks to AI while focusing on architecture decisions will move significantly faster
  • Experience working with licensed IP and understanding the constraints that come with it (brand guidelines, approval processes, restricted character usage)
  • Experience building SDKs or loaders designed for third-party developers to build on top of
  • WebGL optimization experience — shader compilation, asset size reduction, load time management for browser-based Unity experiences

Nice to have:

  • Experience with haptic feedback implementation in Unity on mobile (iOS Core Haptics, Android vibration APIs)
  • Shader programming (ShaderLab, HLSL) for custom visual effects
  • Animation systems — both procedural (code-driven) and Mecanim/Animator controller setup
  • Experience with particle systems for visual effects (binary dust, auras, sparkles, reveal animations)
  • Familiarity with NFC, UWB, or proximity-based interactions on mobile

Skills

csharpAPIPlatform EngineeringShellFlutterAIc-sharpAndroidiOSReactC#

Want AI to find more roles like this?

Upload your CV once. Get matched to relevant assignments automatically.

Try personalized matching