Unity Developer
VirtuosWe are looking for a Senior Unity Engineer to join an embedded engineering team supporting a large-scale live mobile game.
The role is focused on modernizing and migrating existing client-side systems, not greenfield feature development. You will work directly within the client’s Core Tech environment, contributing to architecture integration, feature migration, code reviews, testing, and production stability.
- Migrate existing Unity features to the target client architecture.
- Integrate screens and systems with centralized lifecycle management and orchestration.
- Replace callback-based networking with a strongly typed, task-based networking gateway.
- Improve separation between presentation, logic, and data layers.
- Replace implicit or singleton-style dependencies with explicit dependency injection.
- Migrate asset loading toward scoped ownership and lifecycle management.
- Integrate unified logging, analytics, monitoring, and error handling.
- Add and maintain unit and integration tests to protect against regressions.
- Improve project structure and module boundaries using asmdefs.
- Contribute to shared UI components where applicable.
- Review existing systems, identify risks and bottlenecks, and propose pragmatic technical improvements.
- Participate in code reviews, design reviews, planning, and architecture discussions.
- Work within the client’s existing GitHub, CI/CD, testing, and deployment processes.
- Communicate status, blockers, risks, and technical trade-offs clearly to the wider team.
- Strong commercial experience with Unity and C#.
- Proven experience working with existing production codebases, including investigation, maintenance, refactoring, or migration of established systems.
- Strong understanding of software architecture and separation of concerns.
- Practical experience with dependency injection and explicit dependency management.
- Experience with MVC, MVP, MVVM, or comparable architectural patterns.
- Strong knowledge of async/await and task-based asynchronous programming.
- Practical understanding of cancellation, failure propagation, and explicit error handling in asynchronous systems.
- Practical experience with Unity Addressables or comparable asset lifecycle / resource-loading systems.
- Experience writing and maintaining unit and integration tests.
- Good understanding of Unity runtime performance, including CPU cost, memory usage, allocations and GC, asset loading, performance trade-offs.
- Strong Git / GitHub experience, including pull requests and collaborative code-review workflows.
- Ability to understand unfamiliar systems quickly and make considered technical recommendations.
- Ability to work independently with limited supervision while remaining aligned with established architecture and engineering practices.
- Strong communication skills for technical discussions, code reviews, Slack, and cross-team collaboration.
- English sufficient for daily work in an international engineering team.