Helped Skull & Bones and Rainbow Six Quarantine games to upgrade their network engine in order to
improve network connectivity and performance.
Developed a cross-platform voice chat system using Microsoft Game Chat 2 C++ API. This system
includes support for Text-to-Speech and Speech-to-Text (only on Microsoft consoles).
Improved performance of network statistics serialization allowing games to make bigger statistics
captures that allows them to better optimize their network usage.
Ported a network engine to PS5 and Xbox Series X.
Network Programmer
April 2019 - September 2019
Ubisoft Entertainment Inc. Paris, FR
Helped Ghost Recon Breakpoint game to upgrade their network engine in order to improve network
connectivity. Improved network performance by parallelizing network engine updates.
Debugged network object replication and connectivity issues in Ghost Recon Breakpoint.
Optimized objects memory footprint by reducing classes/structs padding as much as possible.
Network Programmer
November 2018 - April 2019
Ubisoft Entertainment Inc. Montreal, CA
Maintained an API that allows games to seamlessly transition between a full mesh topology to star
topology in order to facilitate the transitioning from a peer-to-peer game to a dedicated game
server.
Revised the use of data containers in some modules of a network engine in order to optimize data
access times and reduce data lookups when possible.
Generalist Programmer
May 2016 - November 2018
Ubisoft Entertainment Inc. Montreal, CA
Participated in the design and development of a high level API that significantly increases the
connectivity rate between players in online games (around 20% connectivity rate increase).
Parallelized some modules of a network engine in order to allow games to connect over 100 players
into the same game session.
Maintained an automated testing framework written in three different programming languages: C++, C#
and Python. Participated in the parallelization of the framework in order to minimize the execution
time of automated tests.
Created a simple framework used for unit testing different modules of a network engine.
Created a 3D sample application that supports several players connected into the same game session.
Created a user guide for developers that explains how to integrate a network engine into a game.
This guide provides concreate and real life examples that can be directly applied into the game.
Generalist Programmer Part Time Internship
January 2016 - May 2016
Ubisoft Entertainment Inc. Montreal, CA
Designed and maintained a high level API that facilitates the integration of a network engine into
games.
Maintained and debugged a C# wrapper for a C++ network engine used by games developed with Unity 3D
or any other C# game engine.
Helped game productions fixing networking bugs (e.g. object replication) during their development.
Maintained and added new functionalities to multiple samples applications written in C++ or C#.
Generalist Programmer Internship
January 2015 - August 2015
Ubisoft Entertainment Inc. Montreal, CA
Developed and maintained a sample application using an open source rendering engine (OGRE 3D).
Ported applications to Android, iOS and OS X.
Software Designer Internship
September 2014 - December 2014
Matrox Graphics Inc. Montreal, CA
Developed sample applications to demonstrate Matrox Mura Network API functionalities to clients.
Profiled and improved the running time of a scheduling algorithm by almost 40 percent.
In this project we designed and implemented a video game from scratch. The game developed in this project was a modified version of the Asteroids video game. This game was fully developed in Java and no external libraries were used. The main goal of this project was to simulate the life cycle of a project and all the phases that are encountered during "normal" software development. At the beginning of the project the software requirement specification document (SRS) and the software architecture document (SAD) were written. After getting the approval of the client (the instructor), the first working prototype of the game was presented to the class. At the end of the semester, the fully working game was presented to the class and the instructor. In this project I was responsible of the graphics libraries. Also, I contributed to the collision detection algorithm.
Design of a Platform for 3D Board Orientation Control
The goal of this project was to design a closed loop feedback control system to move one board in a 3D space. The materials used in this project were: two STM32 Discovery Boards, two servo motors, two wireless chips, some Lego pieces and recycled materials such as cardboard. A major component of this project was the wireless communication link between the two boards because the correctness of the system completely depends on the data transmitted between the two boards. In order to compute the orientation of the board an accelerometer was used to compute the orientation of the board in a 3D space. In this project I was responsible of the wireless and keypad drivers (these drivers were written in C). Also, I contributed to the mechanical design.
Asteroids Game
In this project we designed and implemented a video game almost from scratch. The game developed in this
project was a modified version of the Asteroids video game. This game was fully developed in Java and no
external libraries were used. The main goal of this project was to simulate the life cycle of a project
and all the phases that are encountered during “normal” software development. At the beginning of the
project the software requirement specification document (SRS) and the software architecture document (SAD)
were written. After getting the approval of the instructor (“the client”), the first working prototype of
the game was presented to the class. At the end of the semester, the fully working game was presented to
the class and the instructor. In this project I was responsible of the graphics libraries. Also, I
contributed to the collision detection algorithm.
Innovative tech mind with 5 years of experience in game development industry. Capable of working with a variety of technology and Operating Systems. Valuable team member who has experience diagnosing problems and developing solutions. Extensive expertise in networking systems and working with mainframe computers.
Profile
Fullname Juan Nicolas Guzman
Education Bachelor of Computer Engineering McGill University, Montreal, CA (2011 - 2016)
Job C++ Programmer | Network Programmer
Email contact@nguzman.me
Skills
Programming Languages C/C++, C#, Python, Java, HTML, JavaScript