Hernan Saez, Developer in Buenos Aires, Argentina
Hernan is available for hire
Hire Hernan

Hernan Saez

Verified Expert  in Engineering

3D Games Developer

Buenos Aires, Argentina

Toptal member since April 17, 2018

Bio

Hernan is a software developer with more than 18 years of experience working with different platforms and technologies, like C++, OpenGL , iOS, Unity3D, Android, Xamarin, C#, JavaScript, .NET Framework, Java, and others. He likes video games, movies, comics, reading, and drawing.

Portfolio

Self-employed
WebGL, C++11, 3D Games, Metal, iOS, Lua, OpenGL, C++, Independent Video Games
CamOnApp
WebGL, C++11, Vuforia, OpenGL, Java, Android, Objective-C, iOS
SCV Soft
WebGL, C++11, OpenCL, OpenWRT, Arduino, JavaScript, Grails, Java, Android, iOS...

Experience

  • C++ - 15 years
  • OpenGL - 15 years
  • 3D Games - 15 years
  • Game AI - 5 years
  • Blender - 4 years
  • Unreal Engine - 3 years
  • Vulkan - 3 years
  • WebGL - 3 years

Availability

Part-time

Preferred Environment

Emacs, GitHub, Xcode, iOS, MacOS

The most amazing...

...monster I created is Crimild, my own open-source 3D engine using mostly C++ and OpenGL, integrating third party libraries and supporting different platforms.

Work Experience

Indie Game Developer

2002 - PRESENT
Self-employed
  • Developed Crimild, my game engine using C++ and OpenGL. Over the years, it has been used in several commercial and educational projects. It supports Windows, Linux, OS X, iOS and Android. Crimild is open-source, and it's currently hosted on GitHub.
  • Built and published Le Voyage in 2016, an iOS game based on the works of George Mellies and Jules Verne. The game was built using the Crimild engine and supports a Metal-based renderer.
  • Created and published Pocket Balloon in 2018, a game that uses augmented reality to fly a hot air balloon. Players blow on the screen of their phones to push the balloon forward and make it land in designated areas.
  • Designed several game projects for competitions like Ludum Dare and CODEAR, using tools and platforms like Crimild, Flash/Action Script, and WebGL.
  • Created art assets for most of my games using tools like Blender, Adobe Photoshop, and Adobe Illustrator.
Technologies: WebGL, C++11, 3D Games, Metal, iOS, Lua, OpenGL, C++, Independent Video Games

AR Mobile Developer

2016 - 2017
CamOnApp
  • Maintained and extended the existing mobile applications with new features based on project requirements.
  • Updated existing code base to support latest technologies, like C++11 and OpenGL ES 3.
  • Extended existing DSL with new options for virtual objects using JSON files for defining scenes.
  • Created a reusable SDK which was later integrated into existing or new applications.
  • Improved 3D rendering engine and object animations for virtual scenes.
  • Coordinated with back-end developers in order to integrate mobile applications with the existing web editor for virtual scenes.
  • Developed a mobile application for Android and iOS using the CamOnApp SDK to display augmented reality content on top of chocolate packages.
  • Built a prototype for a Pokemon Go-like interface for an augmented reality map displaying places of interest and other information on the street.
Technologies: WebGL, C++11, Vuforia, OpenGL, Java, Android, Objective-C, iOS

R&D Engineer

2012 - 2016
SCV Soft
  • Developed a prototype for a client in the US using machine learning and data analysis to gather usage information from different home appliances, displaying results in the form of charts, and detecting specific behaviors such as wether a washing machine is about to end its current cycle and delivering notifications to the end users.
  • Created a proof of concept for an Android application that connects with a prototype camera, using computer vision techniques and OpenCV to analyze the captured photos and determine the current state of railroad cables and whether or not they should be replaced.
  • Built a library for iOS and Android that communicates with an smart plug prototype for a client located in the San Francisco area. I spent several weeks at the client's offices adapting their existing code base to the library requirements.
  • Designed a prototype using Javascript and D3 to analyze the house market for a client in the US.
  • Developed a prototype using Java and Apache Camel to communicate different systems together for a company in the US.
  • Built the prototype for the embedded software running on an experimental hardware for an IoT company in the US using C++ and OpenWRT.
Technologies: WebGL, C++11, OpenCL, OpenWRT, Arduino, JavaScript, Grails, Java, Android, iOS, C++

Mobile Technical Leader

2012 - 2016
SCV Soft
  • Developed an iOS application for using computer vision techniques for people with limited mobility, allowing them to communicate and send emails by blinking their eyes.
  • Built an Android application based on an existing iOS product using a new camera device to capture short videos and later edit them by adding visual effects, titles and audio.
  • Developed a mobile application for Android and iOS using Xamarin, using BLE to communicate with a new peripheral that monitors the heart rate of the user and performing electrocardiogram tests, displaying the results in real time in the mobile device.
  • Served as a technical interviewer for new candidates.
  • Evaluated the technical viability of new projects.
Technologies: C++11, Xamarin, Android, C++, iOS

AR Mobile Developer

2012 - 2014
CamOnApp
  • Developed the application prototype for both iOS and Android, using C++ as main language and implemented binding code for both Objetive-C and Java/JNI.
  • Integrated Vuforia libraries with Crimild engine in both platforms, as well as other third party libraries like OpenAL and Lua.
  • Implemented a custom DSL for defining virtual scenes.
  • Coordinated with technical and non-technical partners in order create new virtual experiences.
  • Defined rules for exporting 2D and 3D assets in a format readable by the applications.
Technologies: C++11, Vuforia, OpenGL, Android, C++, iOS

Founder/CTO

2010 - 2012
Building Brothers
  • Designed and developed proof of concepts, technical demos, and tools for video game creation for Windows, Mac OS X, and iOS.
  • Developed the Nameless Engine based on Action Script, using the Game Entity/Component design pattern, creating game scenes using a data-driven approach and XML.
  • Developed "Revancha Zombie", a game built in less than a month for CODEAR 2011, an Argentinian video game development competition.
  • Worked with a local industrial design University to provide technical for students on their final projects.
  • Provided technical support for sales representatives, and visit client offices to gather requirements for new projects.
  • Designed a proof of concept for a tactical board game.
  • Built a prototype for Lego-like mobile game using a virtual workshop where players can connect each other using bluetooth or wifi in order to build things together.
Technologies: C++11, 3D Games, Adobe Photoshop, Blender, Unity3D, 3D, Unity, Crimild, Adobe Flash, OpenGL, C++

iOS Architect

2009 - 2010
TeraCode BA SA
  • Participated in the kick-off process for new iOS projects, assisting technical leaders and project managers.
  • Designed the architecture and best practices for new and existing projects, maintaining a constant communication with team leaders during the rest of the project lifetime.
  • Worked directly with clients in order to define project requirements and helping them adapt to the new technologies and paradigms.
  • Collaborated with graphic designers in order to ensure that user interfaces follow the guidelines provided by Apple.
  • Implemented critical features for several projects on demand, based on requests from technical leaders or project managers.
  • Developed a business application for iOS displaying charts and other data using proprietary rendering libraries.
  • Built a prototype for a medical application for iOS using OpenGL to render molecules and chemical compounds.
Technologies: C++, Objective-C, iOS

Pre-sales Engineer

2008 - 2010
TeraCode BA SA
  • Worked alongside sales representatives to define new products and proposals, gathering requirements from new or existing clients.
  • Travelled to potential client offices in the US (Boston Area) to write down specifications and time estimates for their completion.
  • Collaborated with HR managers to provide feedback about how the different teams should be composed and the required skills for their members.
  • Participated as a consultant engineer during the kick-off process, working as a nexus between the client and the new team.
  • Provided feedback to sales representatives about the technical viability of new projects, including rejecting any proposal that were not a fit for the company's goal and or culture.
Technologies: .NET, C++, iOS

Technical Instructor

2007 - 2010
TeraCode BA SA
  • Worked along other engineers to create a technical course consisting of several different classes explaining state-of-the-art technologies (at the time) and best practices.
  • Created documentation for the attendants that complemented the existing classes.
  • Gave several lectures in front of an audience for different technologies, like SVN, .NET Framework and the MVP pattern.
  • Coordinated courses and instructors.
  • Worked with HR staff in order to create new courses for existing employees.
Technologies: Java, iOS, .NET, C++

Technical Interviewer

2005 - 2010
TeraCode BA SA
  • Interviewed new candidates for job positions in different technologies, both online and face-to-face.
  • Collaborated with other technical leaders to define the set of questions or problems for the candidate to solve during the interview.
  • Provided feedback to HR and managers during and after the interview process, often deciding wether or not a candidate would be a good fit for the company.
  • Participated as a support interviewer for technologies that were not my main focus, like Java or PHP.
Technologies: .NET, iOS, C++

iOS Game Developer

2008 - 2009
TeraCode BA SA
  • Designed and developed DogFighter, an air combat arcade game for iPhone and iPod Touch.
  • Integrated Crimild, my own open-source 3D game engine, with iOS technologies.
  • Provided technical support for the graphics designer in order to work with iOS, since it was a new paradigm at the time.
  • Worked with early iOS toolchains, even before the release of the official iOS SDK and Xcode IDE.
  • Provided support for the agent in charge of publishing games and apps to the App Store.
Technologies: 3D Games, OpenAL, Crimild, OpenGL, C++, Objective-C

C++ Technical Leader

2005 - 2009
TeraCode BA SA
  • Worked with an existing code base for an application based on ASP 3.0 and ATL/COM implemented in C++.
  • Developed a desktop-based application for screen recording using Win32 API.
  • Develop a Windows service for monitoring the file system and creating copies of MS Office documents resembling a version control system.
Technologies: C++11, Visual Basic, SharePoint, Active Server Pages (ASP), JavaScript, PostgreSQL, Oracle, Microsoft SQL Server, Visual Studio, C++

.NET Technical Leader

2005 - 2008
TeraCode BA SA
  • Defined architecture for new projects, providing best practices and documentation for technical and non-technical cients.
  • Worked with state-of-the-art (at the time) techniques and technologies, like Domain Driven Design, Model-View-Presenter pattern, AJAX, reusable components, unit and integration test.
  • Worked with web-based and desktop projects in supported platforms.
  • Travelled several times to client's offices in the US (Boston area) to gather requirements for new or existing projects.
  • Led several different teams of up to 8 developers, defining and delegating tasks based on their skills and potential.
  • Developed a redistributable, web based application using .NET Framework 2.0, providing an automated installer for Microsoft Windows Server.
Technologies: .NET 3, .NET 2, PostgreSQL, Wix, Spring.NET, NHibernate, Oracle Database, DB, Oracle, SQL Server 2005, Microsoft SQL Server, .NET

C++ Technical Leader

2005 - 2005
AXG Tecnonexo
  • Worked with an existing code base involving different technologies like C++, VB6 and ASP 3.0, extending and improving it based on client's requirements.
  • Travelled to client's offices in Israel to perform on-site development for a custom made product based on the existing software.
  • Integrated MS Sharepoint services with the existing code base using C++ and VB6.
  • Implemented custom reusable components using C++, ASP and COM.
  • Provided support for non-technical members of the team and coordinated work with QA staff.
Technologies: JavaScript, Active Server Pages (ASP), SharePoint, CORBA, COM, Visual Basic, Visual Studio, C++

HP Products Manager

2003 - 2005
ICS Comercial S.A
  • Provided technical support for sales representatives, visiting customers and writing down specs for proposals.
  • Facilitated a constant communication between the provider, Hewlett-Packard, and the company members.
  • Developed tools for sales representatives, such as product databases containing pricing and technical specifications, connecting them external services using VB6.
  • Performed technical presentations for new products and technologies directed to sales representatives.
  • Coordinated between the client and IT staff in order to install new hardware on location.
Technologies: Network Data Storage, Visual Basic, Servers

The P.U.R.G.E. Protocol | Q&A Game

https://github.com/hhsaez/purge_protocol
This is the main function for The P.U.R.G.E. Protocol, a game I developed in less than 48 hours for Ludum Dare 39. I used Crimild, my own game engine, as the foundation for the project.

The goal of that file is to create a Simulation instance responsible for the game logic, as well as define platform-specific code and input handling.

My entry in the challenge can be found at:
• https://ldjam.com/events/ludum-dare/39/the-p-u-r-g-e-protocol

Crimild Engine

http://hhsaez.com/
A C++/OpenGL scene graph based framework for games, simulations and interactive applications.

Pocket Balloon - Fly in AR!

http://pocketballoon.hhsaez.com
Fly a hot air balloon in augmented reality by blowing on the screen of your phone. Land on the designated areas to score points and compete with friends.

This is an iOS project that uses ARKit 1.5 to detect and track features around the player, like flat surfaces and walls. A virtual balloon is rendered and interacts with the detected objects in a realistic manner.

Controls are simple and the player can blow on the screen of the phone to push the balloon forward.

Le Voyage

http://hhsaez.com/projects/levoyage/index.html
An iOS game inspired by the works of George Méliès and Jules Verne. Fly through the sky and space while using swipe controls to avoid balloons, storms, asteroids, and other kinds of dangers.

The P.U.R.G.E. Protocol

https://hhsaez.itch.io/the-purge-protocol
A puzzle/trivia game developed for the LD39 challenge using the theme "Running out of Power".

DogFighter

An arcade flight combat game developer for iOS.

Niño de Cobre

http://hhsaez.com/
The "Niño de Cobre" project is an Arduino based robot that uses an Android phone as the brain. The robot is intended to be autonomous, but orders can be given by using a web console.

EyeType

EyeType presents characters, numbers and other selection options the user picks by blinking or moving the eyes. In Single Mode, the user can only make a single motion. It will be a little slower to communicate but works fine. If the user can blink both eyes or move other parts of his body independently, the Dual Mode allows more rapid selection and navigation.
OCTOBER 2018 - PRESENT

CSE190x: Creating Virtual Reality (VR) Apps

UC San Diego

MAY 2015 - PRESENT

Image and video processing: From Mars to Hollywood with a stop at the hospital

Duke University (Coursera)

MARCH 2014 - PRESENT

Artificial Intelligence Planning

University of Edinburgh (Coursera)

AUGUST 2013 - PRESENT

HTML5 Game Development

Udacity

AUGUST 2013 - PRESENT

Machine Learning

Standford University (Cursera)

JULY 2013 - PRESENT

Interactive 3D Graphics

Udacity

Libraries/APIs

OpenGL, GLFW, OpenGL ES, CocoaPods, WebGL, Standard Template Library (STL), Vulkan, OpenAL, SFML, OpenCV, jQuery

Tools

Trello, Git, GitHub, CMake, Xcode, Emacs, Pivotal Tracker, Sublime Text, Subversion (SVN), Blender, Photoshop CS6, Visual Studio, Wix, Crimild, Adobe Flash, Adobe Photoshop, Illustrator CS6

Languages

C++, C++11, Objective-C, XML, Lua, Swift, Java, Visual Basic, Active Server Pages (ASP), HTML, C#, JavaScript

Paradigms

Design Patterns, Object-oriented Programming (OOP), Scrum, Test-driven Development (TDD), Agile Software Development, REST, Concurrent Programming, Functional Programming

Platforms

Linux, Windows, OS X, iOS, Xamarin, Android, Arduino, Vuforia, Unix, MacOS, OpenWRT, SharePoint, Oracle, Oracle Database, NVIDIA CUDA, Godot

Frameworks

JNI, ARKit, iOS SceneKit, .NET, NHibernate, Spring.NET, Unity, .NET 2, .NET 3, OpenCL, Metal, Grails, Unity3D, Unreal Engine

Storage

JSON, Microsoft SQL Server, SQL Server 2005, DB, MySQL, PostgreSQL

Other

3D Games, Domain-driven Design (DDD), Code Review, App Store, Augmented Reality (AR), Game AI, 2D Games, Independent Video Games, Servers, Network Data Storage, COM, CORBA, 3D, Virtual Reality (VR), OpenCL/GPU, Game Development

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring