Architecting Solutions to Softwaring Processes
Phone: +1 617 575 9012 |
French national, US permanent resident
for a printer-friendly version.
- Bridgewater Associates, Wilton, CT (Senior Cloud Developer)9 months
Secure reproducible cloud deployment on Amazon AWS.
Refactored the existing build and configuration system using Buildbot, Make, Python, Jsonnet and Terraform;
then redesigned it using Scala, Nix, Pants and Terraform.
- Google, New York, New York (Developer Experience Designer)3 years
DX Design for Software at Scale — thousands of developers controlling zillions of machines.
Partook in open-sourcing the deterministic distributed build system bazel.io.
Refactored the design and implementation of Bazel’s extension language Skylark.
Added garbage collection to the git support of the code hosting platform code.google.com.
- ITA Software, Cambridge, Massachusetts (Senior Software Engineer)8 years
Airline information systems (acquired by Google in 2011):
airfare search engine QPX; passenger reservation system QRes.
Co-authored an Object-Relational Mapper for transaction processing with Oracle;
notably automated schema upgrade.
Designed, developed and supported the build, test and deployment infrastructure;
coordinated release with other teams.
Audited code for security. Added messaging features.
Decoded legacy data and created a distributed engine to migrate it.
Ported the codebase to a 64-bit Lisp compiler.
Curated free software libraries, compilers.
Worked alone or in tight-knit team. Managed up to five interns. Worked on team reorganization.
- CRPGL, Luxembourg (Researcher)18 months
Public Research Center. Developed web-based collaborative tools in Common Lisp.
- IDEALX, Paris, France (Consultant)8 months
Open Source Engineering Consultancy. Consulted on B2B middleware, real-time high-level languages, secure terminals.
Proved formal correctness (in Coq) of a centralized e-cash payment protocol.
- France Telecom, Paris, France (Research Engineer)36 months
Researched under Jean-Bernard Stefani. Experimented with distributed calculi.
- Interaction design for creative processes.
Software development toolchain and team organization.
User Experience and Developer Experience.
Controlling overall man-machine system complexity to achieve
flexibility and maintainability, robustness and security
— ultimately end-user satisfaction at sustainable costs.
Design and implementation of distributed agent systems, programming languages,
operating systems, cryptographic protocols,
transactional object persistence, real-time memory allocation, resource management
with or without a kernel.
- Operating Systems
System Administration for Linux (NixOS, Debian, RedHat), BSD, Solaris; macOS, Windows.
- Programming Languages
Common Lisp, Scala, Racket, Clojure, Shell, Java, C,
Smalltalk, C++, Erlang, FORTH,
Assembly (x86, 6502, ARM), BASIC, Prolog, etc.
Firewall, VPN, routing, TCP/IP, filesystems, DNS, SMTP.
- Web Development
Static and dynamic services
(AJAX or continuation-based/modal interface),
HTTP, Apache, PHP, MySQL, Oracle, Lisp, XML, SSL, PKI...)
Scribble, LaTeX, SGML, XML, Markdown.
- Special Skills
Formal logic, proofs.
Object-Oriented, Logic and Functional Programming.
- “Artificial Intelligence”
Search strategies and heuristics, declarative programming, inference engines.
Reflection for monitoring and metaprogramming.
Basic statistical text analysis, fuzzy logic.
Algorithmic complexity, with notable applications to Data compression or PAC-learning.
Knowledge bases and data representation.
Human-Computer Interaction and software usability.
PhD candidate in Computer Science at
École Nationale Supérieure des Télécommunications (Paris).
the semantics of reflective systems,
as applied to building distributed systems.
Research interrupted to pursue professional opportunities.
DEA d’Informatique at the ESSI (University of Nice).
[Equivalent to Masters in Computer Science]
+ Teacher in Mathematics in a high-school (Professeur Agrégé).
Student at the École Normale Supérieure (rue d’Ulm, Paris).
[Best school for scientific research in France]
Various university diplomas and titles
from examinations and competitive examinations
in Mathematics and Computer Science.
Specialized in the Formal Semantics of Computer Programs under Patrick Cousot.
Teaching assistant in Computer Science and Mathematics
in introductory university-level classes.
High-school then university-level studies
at the Lycée Louis-Le-Grand (Paris).
Baccalauréat C (Maths) 1990. Classes Préparatoires.
Mission Statement: Contributing Vision to Software Development
I will study your problem domain and distill its essence in a domain-specific language;
around this language I can then design, implement and evolve radically simple solutions
that are robust and maintainable, secure and efficient.
I enjoy getting my hands dirty, but first I want to understand where we are going.
I will pick the low-hanging fruits first, but as part of
a plan to pick all marginally affordable fruits.
I will use sound theory to achieve massive practical gains — and avoid predictable pitfalls.
Many development teams have a narrow horizon that leads them to code bloat and bad quality,
with diminishing returns and accumulated technical debt.
Our team will keep a broad horizon to maintain a sustainable development environment.
Many teams are blinded by focus on hardware devices and software artefacts
and end up sacrificing the ends to the means;
our team will include user experience and developer experience in our designs,
and optimize the interactions that matter.
| Native French speaker.|| Fluent in English.||High-school Spanish.|| Basic Vietnamese.
Maintainer of Common Lisp build tools.
Contributor to many free software projects, mostly in Lisp.
Co-organizer of monthly Lisp meetings.
Secretary of the Association of Lisp Users.
Wrote essays and spoke at conferences on Free Software.
Wrote essays and spoke at conferences on Economic Liberty.
Was CTO for an off-shore software development consultancy,
Founded the TUNES project for a free reflective computing system.
Blogging about Computing Systems vs Computer Systems at http://ngnghm.github.io/.
Blogging at http://fare.livejournal.com/ —
tweeting at http://twitter.com/fare —
Select Peer-Reviewed Publications
Metaprogramming and free availability of sources, January 1999.
Translated from the french article “Métaprogrammation et libre
disponibilité des sources” published in conference “Autour du Libre
François-René Rideau and Robert P. Goldman.
Evolving ASDF: More Cooperation, Less Coordination.
In International Lisp Conference, 2010.
LIL: CLOS reaches higher-order, sheds identity and has a
In International Lisp Conference, 2012.
ASDF 3, or Why Lisp is Now an Acceptable Scripting
In European Lisp Symposium, 2014.
From Software Creationism to Software Evolutionism.
In Salon des Refusés, April 2017.