Engineering at ATA
Department organization
Our software development engineering teams are structured for the following streams of work:
- Live Operations: Running games and services in production
- Infrastructure & Tools: Pipelines, containers, and tools
- New Games: Discovery, prototyping, validation, development
A mix of generalists and specialists
We hire full-stack generalist programmers, but it's common for folks to gravitate towards a specialization. An engineer will typically start in Live Operations where they are familiarized with the technologies, services, and processes. From there, they might choose to specialize in a particular area or move to a new game team.
Specializations
- Live operations / Site reliability
- Unity prototyping and rapid game development
- Unity optimization
- Full-stack feature development
- Build & Release automation
- Event-driven architectures
- Reactive architectures
- Infrastructure & cloud engineering
- Data analytics and insight generation
- Web development
Our tech stack
Client development is in Unity (C#), but we also support a number of games made in native iOS (Objective C) and Android (Java). On the backend, we build Python-powered microservices, in both request-response and event-driven architectures, using a variety of popular frameworks (Django, FastAPI). Our CI pipeline was established over ten years ago and facilitates dozens of deployments each day.