Rio de Janeiro, Brazil
Who we are:
We are the fitness company born from gaming. And were on a mission to make more people, more active, more often. We make an at home training game that connects cyclists and runners with each other around the world. Launched from the sunny beaches of Long Beach, CA., the Zwift community is active in 195 countries and growing. Were endlessly positive, relentlessly inventive, and always looking to improve. Sound interesting?
Who we're seeking:
The Zwift server platform runs on a heterogeneous and distributed cluster composed of several different layers and nodes which require a number of different technologies to integrate on a 24/7 platform for the international user community. We are constantly modifying the software, adding and improving features and accommodating the increased load that comes with the steady growth of our successful business.
One of the major server components is its REST API that provides authentication and persistence services to the Zwift Game, Web, and Mobile Applications. All new features modeled by the API Team conform to an established load and performance standard, allowing the MMO application to provide optimal user experience to our growing community of international users. If you love technology, you will feel at home in the API Team. Another major backend component is a cluster of so-called relay servers, our low-latency nodes which receive the live data from our users (power, cadence, etc.) and forward that information to every other user (roughly speaking). Relays process a huge amount of data per second, so there are naturally a number of performance bottlenecks we should keep an eye on, and work towards constant improvements. If you love algorithms, the Relay Team is where you want to be.
We are expanding our staff in Rio to address the demand for new functionalities and work with our offices in Los Angeles, New York and London. Some international travel may be required.
What you'll do:
The Backend Software Engineer will be part of a high-performance team helping with the design and implementation of our high availability, low latency, near real-time game server infrastructure using custom network protocols and high-performance message processing techniques. The quality is ensured by using Test Driven Development, Code Review, Static Analysis and Load & Performance stress tools.
What we're looking for:
- BS in Computer Science or Relevant Technical Area. Alternately, 5+ years of experience as a Java Engineer.
- Advanced knowledge in Computer Science: Data Structures, Algorithms and overall Software Design
- Good experience in developing and using custom network protocols and messaging systems
- Experience programming with JEE (JBoss/Wildfly is a plus)
- Experience with REST API Design (JAX-RS is a plus)
- Experience with Unix/Linux shell scripting and tools like awk, sed, curl
- Experience with Relational Database Systems (especially Oracle or PostgreSQL)
- Experience with GIT and/or SVN
- Experience with Test Driven Development and Continuous Integration
- Experience with test tools like JUnit, Arquillian, JMeter, Postman, etc.
- Experience with Distributed Cache implementations with Memcached or Redis
- Experience with AWS Cloud based environments
- Availability to travel
- Fluency in English (interviews will be conducted in English)
- Enthusiasm for cycling
- Experience with dynamic scripting languages as Python or Ruby
- Experience with geographically distributed teams
- Experience with agile development methodologies like Scrum or Kanban
- MSc or PhD in Computer Science or Relevant Technical Area
- Experience on Database Design
- Experience on Distributed Systems
- Experience with Jenkins, TeamCity or similar
Top 3 Reasons We Think Youll Love It Here
- Great employee bike program
- Awesome team of diverse individuals that love what they do
- Did we mention that we ride bikes and run at work?
Zwift, Inc. is an Equal Opportunity Employer