Network Programmer (Harbour)
Full-time - REF17253I
As Ubisoft’s online platform developer, Harbour helps bring high-quality connected experiences to millions of players worldwide. Working alongside production teams, we leverage state-of-the-art solutions to enable value-filled features in all our online games – throughout their development and while they’re live. With a view of Ubisoft’s entire digital ecosystem and a long-term approach to online gaming, we focus on finding the right solution for the right purpose. And if the solution we need doesn’t exist yet? That’s just an opportunity for us to create it.
As a Network Programmer, you’ll join Harbour to build network features and replication technology for a broad range of multiplayer games: from smaller co-ops to massive battle royales.
Together with your team, you’ll help answer the most fundamental questions to best address the next generation of multiplayer requirements: Will the game be as responsive as possible in multiplayer matches? Does the latency meet a pro-gamer’s expectations? Is the experience as seamless as it can be?
What you’ll do
In a cloud native environment:
- Develop fast, reliable, and fun multiplayer features and replication solutions in partnership with production teams and other network programmers.
- Understand existing functions + suggest and develop improvements with the goal of bringing the best multiplayer experience to our players.
- Collaborate daily with a variety of production and support teams.
- Evaluate and resolve network bugs.
- Document your work.
What you bring
- Experience developing with C++
- Experience with distributed systems, multi-threading, and network programming
- Effective cross-departmental communication that allows you to support and elevate the team in terms of quality and vision
- A degree in Computer Science or Software Engineering (or related training)
- A creative and innovative spirit
Nice to have:
- Experience as part of a team that has shipped a multiplayer game
- Network optimization skills
- A deep expertise in C#, meaning:
- Experience with P/Invokes (including reverse callbacks and data marshaling)
- Experience with unsafe code and other low-level language constructs
- Knowledge of proper management of native memory
- Knowledge of objects lifetime
- Experience with asynchronous code
- Knowledge of modern C# language features (e.g. C# 7)
- Experience with controlling lifetime of managed objects (GCHandle, weak references, object pinning)
- Experience with cross-platform C# programming (Mono, Xamarin, .NET Core)
- Basic understanding of IL
- Experience with C bindings
- Experience developing network features on Microsoft and Sony consoles
What to send our way
- Your CV, highlighting your background and skills
A real live person will review your application. In this case, it’s our talent acquisition specialist Karin. As she learns more about you through your profile, get to know her through the video below.
At Ubisoft Montreal, a preeminent developer of video games located in Montreal’s dynamic Mile-End neighbourhood since 1997, we offer a work environment unique in the industry for allowing you to build and cultivate games that are part of critically acclaimed, iconic AAA franchises of international repute.
When you join Ubi Montreal, you enter a community of passionate, extraordinary developers connected by their need to innovate, to be creative and to work with the latest technology. You’ll discover a world where employees enjoy constant career advancement, a supportive learning environment, and competitive compensation packages.
More than anything, at Ubi Montreal, you will regularly ship a variety of big, quality titles – Assassin’s Creed, Far Cry, Rainbow Six, Watch_Dogs, For Honor and… well we can’t disclose all our secrets just yet… – and work with some of the most talented people in the industry.
At Ubisoft, you can come as you are. We embrace diversity in all its forms. We’re committed to fostering a work environment that is inclusive and respectful of all differences.