Posted 2y ago

Senior Backend Programmer

@ MachineGames
Rockville or Austin or Dallas or Montreal
OnsiteFull Time
Responsibilities:Architect systems, Build services, Mentor team
Requirements Summary:Design, implement, and maintain cloud-based backend services; mentor team; work with microservices in AWS/Azure; strong C++, Go, and cloud experience.
Technical Tools Mentioned:Go, C++, Python, C#, React, AWS, Azure, Kubernetes, Docker, CI/CD, Git
Save
Mark Applied
Hide Job
Report & Hide
Job Description

Come join Bethesda Game Studios, the award-winning development team behind StarfieldThe Elder Scrolls and Fallout. Bethesda Game Studios strives to offer its employees a well-balanced home and work life by providing competitive salaries, a generous benefits program, and offices located in some of North America’s best cities.

 

With a goal of creating a culture as fun and diverse as our games and our players, we welcome applicants with unique skillsets, experience levels and backgrounds. If you are passionate about making a meaningful contribution to some of the most significant games in the industry we’d love to hear from you!

 

We will consider candidates for any of our four Bethesda Game Studios office locations: Rockville, MD; Montreal, Quebec; Austin, TX; Dallas, TX.

Your Daily Life at Bethesda Game Studios

Bethesda Game Studios is seeking a Senior Backend Programmer who can design, implement, and maintain backend services in the cloud as well as build the game side APIs to talk to them. This role involves analyzing requirements, developing architecture plans, and managing cloud microservice applications to ensure optimal performance and security.

 

In your role as Senior Backend Programmer, you will…

  • Help architect, build, and maintain cloud-based microservice systems primarily in Golang and C++ to support Bethesda Game Studios games. This will include both services for the games and services to support development of the games.
  • Code review and mentor more junior team members
  • Plan, organize, and control multiple responsibilities to achieve project objectives.
  • Work with teams to bring continuous improvement to processes and tools.
  • Lead and participate in team or customer meetings as necessary.

What Makes You S.P.E.C.I.A.L.

  • You have previous experience building and architecting microservice based distributed applications for deployment to a cloud environment
  • You have a B.S. (or higher) in Computer Science, or equivalent work experience.
  • You have 10+ years experience in object-oriented and asynchronous programming in multiple languages (you're a polyglot), preferably C++, Golang, Python, and C# (Java acceptable substitute for Golang or Python if you have C++)
  • You have 5+ years building microservices in the cloud using HTTP protocols, message brokers, caching, and databases systems to support a microservice based architecture
  • You have 5+ years architecting scalable database solutions to work with microservice architecture (Relational and/or NoSQL)
  • You have been responsible for coding and/or reviewing the code for most of the Skills (What Makes You Extra S.P.E.C.I.A.L.) listed below
  • You have significant experience working in a Linux based environment including basic system administration and performance management
  • You have familiarity with front end frameworks like React or similar
  • You have familiarity with Cloud Architecture in AWS and Azure, Containerization systems, and DevOps principles
  • Previous on call experience where you can identify root causes of issues and fix most issues independently

What Makes You Extra S.P.E.C.I.A.L.

Programming

  • Solid Computer Science fundamentals including design patterns, algorithms and algorithmic complexity, memory management, state/object management, compilation, execution, and asynchronous processing and how all these apply to the language you are working with
  • Solid understanding of object-oriented principles including application of composition vs inheritance as well as SOLID principles as it applies to the language you are working with
  • Expertise in async programming principles and networked applications
  • Strong C++ fundamentals
  • Solid Golang or Java
  • Proficiency with Python or C#

 

Microservice architectures

  • Proficiency in how to build multi-layered microservice architecture at enterprise scale
  • Proficiency in message broker and caching system and how to use them to further scale over a microservice architecture
  • Knowledge of where horizontal scale in cloud architecture fails
  • Knowledge of cost implications of different architectures 

 

Cloud Platform Proficiency

  • Experience with major cloud platforms such as AWS, Azure, and Google Cloud
  • Familiarity with services and technologies available in Azure and AWS you can build upon
  • Ability to develop towards Azure using a multi-cloud framework while managing capacity issues and fallback to AWS
  • Ability to develop towards hybrid data center and cloud platforms
  • Expertise in strengths and weakness of solutions offered by each cloud provider 

 

Database Proficiency

  • Database knowledge of basics for different database types (MySQL and variants and Mongo and variants) to the degree you can optimize and tune from the developer perspective
  • Knowledge of database schema and scaling methodologies to further optimization and scale
  • Proficiency in database query languages

 

Linux Proficiency

  • Ability to diagnose performance and connectivity Linux and Windows related issues

 

Security

  • Understanding of application side security best practices for multilayered micro-services environment

 

DevOps and Automation

  • Experience with Continuous Integration/Continuous Delivery (CI/CD) pipelines and tools like Jenkins, Git, Perforce, and Team City
  • Expertise in branch management

 

Open Source and Containerization

  • Experience with open-source frameworks, operating systems, and containerization technologies like Docker, ECS, AKS, and Kubernetes

 

Testing

  • Expertise in application and API testing methodologies and best practices
  • Expertise in automated testing

 

Bonus Skills

  • You have an educational background in Mathematics and/or Statistics
  • You have Cloud or Security certifications
  • You have C++ development experience in systems or gameplay