Etienne Perot

San Francisco Bay Area, California, United States

https://perot.me/ (PGP: 974E E250)

Software engineer with an interest in various topics including computer networking, security, data visualization, 3D graphics, and who also enjoys Linux server administration. Fluent in French (native) and English.

Skills

  • System architecture: Familiar with reliable software design, consensus in distributed systems, production service SLO design, production and machine management infrastructure.
  • Programming languages: Extensive knowledge of Python (as a programming language), Go, Java, PHP, SQL; working knowledge of C and C++.
  • Scripting languages: Extensive knowledge of Python (as a scripting language) and Bash.
  • System software: Familiar with Linux (and Unix in general), Docker, MySQL, nginx, php-fpm, Dovecot.
  • Web development: Extensive knowledge of (non-framework) JavaScript, jQuery, Ajax, HTML, CSS.
  • Libraries/Engines: Extensive knowledge of FUSE (both the C library and its bindings), Qt (C++ library and its bindings), jMonkeyEngine 3, JNA.
  • Version control systems: Familiar with Git, Mercurial, Subversion.

Employment

  • Senior Software Engineer - Site Reliability Engineer at Google (August 2013 - present)
    Extensive work on Borg, Google's cluster orchestration system, and the machine management software around it. SRE Tech Lead for critical components of Google's production ecosystem. Revamp power distribution infrastructure of Google datacenters`. Public presentation on a system I TL'd. Work on Stadia's edge cluster infrastructure and scheduling optimizations.
    Technologies used: Go, Python, Linux, Paxos, Borg, Chubby, other Google-specific technologies.
  • Software developer (internship) at Dental Wings (June 2012 — July 2012)
    Continued work on the metrology Java application. Created a 3D application for visualization, modification, analysis, automated adjustment, metrics computation, comparison, and database archival of data from the calibration tables of multiple scanner models.
    This allowed the company to significantly improve scanning accuracy on already-deployed scanners without recalling them, and to obtain more and better metrics for the scanning quality of future scanners.
    Technologies used: Java, C++, Swing, MySQL, OpenGL, WSDL.
  • Teaching Assistant at McGill University (Fall 2011)
    Upgraded the 3D engine and the UI engine of Spaceracer, a space racing game used in assignments for CompSci. students to write their AI modules for controlling the spaceship.
    Technologies used: Java, jMonkeyEngine 3.
  • Research student on the Mammoth Project at McGill University (May 2011 — August 2011)
    Ported the client to a new game engine, rewriting a large portion of the graphics-related code in the process. Took advantage of the possibilities of the new graphics engine by improving performance and adding in more features and effects through the use of GLSL shaders.
    Technologies used: Java, jMonkeyEngine 3, GLSL.
  • Software developer (internship) at Dental Wings (June 2010 — August 2010)
    Wrote an internal Java application (Swing toolkit) to assist in testing the accuracy of 3D dental scanners, by comparing the scanned data with reference models and generating a metrology accuracy report for each scanner.

Personal projects

  • everVoid (Open-source, CC-BY-3.0 license (Creative Commons Attribution 3.0 Unported))
    A full-fledged, turn-based, multiplayer, cross-platform strategy space game written in Java, started as part of a school project.
    Technologies used: Java, jMonkeyEngine 3, OpenGL, GLSL.
    Team: Valentin Bonnet, Pier-Luc Gagnon, Laura Leclerc (artist), Etienne Perot
  • SrcDemo2 (Open-source, BSD license)
    A cross-platform desktop application that creates a virtual filesystem in a Source engine-based game's directory, forcing the rendering engine to bypass the disk entirely in order to speed up rendering and smooth rendered frames.
    This allows game movie creators to produce very high-quality videos without expensive software other than the game itself.
    Technologies used: Java, Qt-Jambi (Java bindings for Qt), fuse-jna, Valve Source engine.
  • fuse-jna (Open-source, BSD license)
    Java bindings library to the FUSE kernel module for Linux, FreeBSD, and Mac OS X.
    This allows the user to write custom filesystems using Java only, without having to worry about the operating system kernel.
    Technologies used: Java, JNA, FUSE, fuse4x, OSXFUSE, MacFUSE.
  • DamnVid (Open-source, GPLv3 license)
    A cross-platform desktop application that downloads and converts videos from the local disk or from video streaming websites.
    Technologies used: Python, wxPython (Python bindings to wxWidgets), ffmpeg.

A lot of other, smaller projects, using various programming languages and all open-source, are available online:

Education

  • Bachelor of Science in Software Engineering (2009 — 2013)
    McGill University, Montreal, Quebec

  • Baccalaurat Français Scientifique (general French Baccalaureate, Sciences stream) (2007 — 2009)
    College Stanislas, Montreal, Quebec
    Received highest honours (Mention "très bien")