Development

The Development group is divided into four teams:
  • Title Development
  • Core Tech
  • Tools
  • Online Services

Title Development Team: Working directly with game developers, Demonware’s Title Development group acts as the main point of contact with the studios. We develop new scalable and reliable online services to support game features, provide advice on usage of the existing Demonware APIs, and help studios implement all of the online features their game needs.

An example of a recent project is the match replay feature for Call of Duty: Black Ops. This involved Title Development working with the studio directly in order to understand the needs, then designing and developing a reliable and scalable system to handle ~10m replay uploads per day, and to allow searching and retrieval across this massive dataset.

In the first week in Demonware’s Title Development, new recruits get an introduction to all parts of Demonware, and start to gain familiarity with the codebase.

First, they will receive an introduction to the different groups in Demonware, and the role of each group. They will learn about the Demonware transport layer (console-to-console communications), and run and examine relevant code samples. They will also run end-to-end lobby services (console-to-server) examples against a local replica of the production environment, to start getting an overall view of Demonware’s systems.

New recruits will go to lunch with their team, get introduced to the rest of the office and who to ask which questions. Lastly, the new recruit will learn about their first project, and start to take the first steps to research how to approach the project.

Core Technology Team: The Core Tech team is responsible for developing and maintaining the core server components that constitute the online services we provide for our customers.

The services we provide range from common lobby services such as matchmaking and leaderboards to large scale storage solutions for capturing game telemetry data and streaming of video contents. We use a wide spectrum programming languages such as Python, C++ and Erlang, as well as a range of state-of-the-art storage and indexing systems including MySql and Sphinx. Our development is geared towards low-latency and large-scale distributed systems that can handle millions of concurrently connected users with average response times of < 100 ms.

Your first week in the team will include an introduction to the existing Demonware tech and server architecture. You will become familiar with standard development process (coding standard, unit tests, and deployment) and you will refresh your knowledge of or be introduced to key programming languages such as Python, C++ and Erlang.

Tools Team: The Tools Team is responsible for the development of workflow automation tools to support the live deployment and management of our software and services.As such the tools team acts as a bridge between our software developers (title development and core technology) and our operations team. This requires a profound knowlegde of the UNIX operating system and various software packaging systems (RPM, dpkg), as well as software engineering skills.

During your first week you will be introduced to the existing Demonware tech and server architecture, and learn about the software packaging and deployment process. You will be introduced to the members of the various teams and learn how the operations team manages our systems in a live environment.

Online Services Team: The Online Services team is responsible for developing the webservice APIs which are used to power the web experiences for Activision games. The team works with the website developers, and often with the game developers too, in order to provide an integrated experience from game to web. This is a new area for Demonware, and is growing fast.

In the first week in the Online Services team, new recruits to the team get an introduction to all parts of Demonware, and start to gain familiarity with the codebase. They learn about the full end-to-end flow from game console to website end-user, and get a more in-depth introduction to Demonware’s webservices platform. On a more meta level, they receive an introduction to the different groups in Demonware, and the role of each group. New recruits go to lunch with their team, get introduced to the rest of the office and find out who to ask which questions. Lastly, the new recruit learns about their first project, and starts to take the first steps to research how to approach the project.