Engineers build the bedrock
of our games and services.

Blizzard programmers make the structures that allow millions of players to play together. They distill complex code into straightforward processes that help create content more efficiently and enable increasingly impressive games. They maintain complex databases of abilities, accounts and characters throughout more than a dozen regions worldwide. Good engineering is all about empowerment—empowering a creative team to craft amazing gameplay, and empowering players to enjoy it beyond their wildest dreams.

As an engineer, you’ll code the heart of player experiences, always aiming to enhance the amount of fun they’re having and deepen their relationship with their games. You’ll push the boundaries of what’s possible in a video game—because it’s more fun that way.

Elements of Blizzard Engineering

  • Say yes. Our co-workers look to us to solve problems, realize a shared vision, and discuss alternatives when we can’t deliver exactly what they’re looking for. When an idea is good, we suggest ways to make it even better.
  • Focus on the user—our co-workers and players. After we identify what matters to them, it’s important that we keep those needs in mind from start to finish on a project. Our solutions need to be fast, efficient and flexible, but they also need to be delivered in the way our users want.
  • Communicate and collaborate constantly, sharing code, algorithms, research, and ideas to move Blizzard forward. As we work with our teammates towards a superior end result, we keep everybody on the same page, and remain professional, humble, civil and direct throughout.
  • Keep it simple. We code every system with a clear purpose in mind, and we aim to keep them as simple as possible (and no simpler). We don’t create new solutions when appropriate ones already exist.
  • Always plan for iteration. The sooner we expose problems, the quicker we’ll develop robust solutions. We expect change, and keep our code flexible and versatile. We prove concepts out with rough drafts before moving on to maintainable solutions.

Application Advice

  • Your Cover Letter
  • Tell us what excites you about working for Blizzard. What do you dream about contributing to?
  • Detail your unique aptitudes—what qualities do you have that not all applicants possess?
  • As you describe your skills, convey your problem-solving approach. When you run up against engineering challenges, how do you solve them? What if multiple solutions present themselves? How do you limit repeat work, technical debt and inconsistency in a wide body of code?
  • Show us what makes you an efficient engineer. How do you measure “successful” code? How do you know when you’ve done a complete job?
  • Iterate! Your cover letter should be as polished (succinct, readable, and grammatically correct) as the work you’re doing to build the infrastructure of Blizzard games and services.
  • Your Resume
  • Focus on relevant experience—what in your history makes you a better planner, boot-strapper, team collaborator, or visionary?
  • Detail the programming languages (C++, Java, etc.) and types of engineering projects (mobile, server, web, physics, etc.) you’ve got under your belt. Engineering work at Blizzard is highly diverse, and although specific teams work with the same languages and shared code libraries, your knowledge can help build new projects (or shore up old ones), often when you least expect it.
  • For the projects that you’ve listed in your resume, tell us what your specific contributions were (more deeply than “I worked on Game X”). What pieces of technology did you directly contribute to? How did you complete them, and how successful were they? Each project and each team is unique, and has its own lessons and culture to draw on.
  • If you've done unit testing or written code documentation, tell us about it!
  • Your Portfolio
  • Portfolio needs vary from position to position, but, in general, you should endeavor to submit digital links to a repository of your work (or e-mailed archive files) and complete code samples over snippets.
  • Include any applications or sites you’ve worked on that you think represent your best, most functional coding – the more recent, the better. Theory or in-progress projects are nice, but we’ll get a much better idea of your skills if you can show us complete projects, and we’re able to put them through the paces to see if they break.
  • A portfolio site is a great way to showcase your work and ensure that it’s quick and simple for us to review. Please provide an index of the contents of your portfolio to make sure we understand what’s in it, and maintain it so that it’s up to date! If you have done multiple different types of work (web design, front-end and back-end engineering, for example), help us zero in on what’s relevant with curated links or intuitive navigation.
  • If your portfolio fits the job, be prepared to take a timed coding test!

Experience Advice

  • Work Experience Work experience for engineering jobs can come from plenty of places—if you want to code for a living, you can start learning right now.
  • Familiarize yourself with multiple languages and code repositories—code work at Blizzard is more diverse than just "making games"—we have websites, tools, servers, testing automation and more.
  • Pick up a common language or engine and use it to create samples—many freely available programs and communities exist to help you learn to code, troubleshoot your problems and put your personal work out into the world. Make sure you finish what you start—without complete samples, it’ll be less valuable for us to evaluate what you’ve produced.
  • Participate in a code review—whether it’s collaborating on a personal project or working on game engine architecture too large for one person to complete alone, you’re more likely to be an asset to an engineering team if you’ve proven that you can keep to code standards, review the work of your peers, and learn from having your own code reviewed.
  • Work for another developer. Working for another developer gives you the experience of working on a team and creating something collaboratively.
  • Education Education is ultimately secondary to talent and experience implementing your work, but classes can help you become a better engineer.
  • Consider learning about or getting accredited in Computer Science, AI, Game Design, Mathematics, or other relevant areas.
  • Learn engineering “best practices”—strive to understand how to use code libraries, how to comment code, how to write well-organized and readable classes and strings, and how (and how frequently) to communicate changes to your co-workers.
  • Become a proficient coder—as a Blizzard engineer, you’ll need to code on the fly and solve problems without the opportunity to do a tremendous amount of research or preparation. The more time you spend coding for yourself (and staying in daily practice), the more natural adapting to these situations will become.