Architecting the Software Developer Experience
Phone: +1 617 575 9012 |
French national, US permanent resident
for a printer-friendly version.
- LegiLogic, Boston, MA (Co-Founder and Chief Architect)Ongoing
Co-founded Metafore Hyperpost, LegiLogic.com (née Legicash), and Alacris.io,
three companies furthering Blockchain technology
using advanced programming languages, concepts and tools.
Building a Blockchain-Agnostic Operating System.
- 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. Partook in the deterministic distributed build system bazel.build. Refactored the design and implementation (in Java) of its extension language Skylark. Also added GC to the git support of the code hosting platform.
- ITA Software, Cambridge, Massachusetts (Senior Software Engineer)8 years
Airline shopping and reservation (acquired by Google in 2011).
Extended a ORM atop Oracle, notably schema upgrade and better types. Built and supported the build, test and deployment infrastructure.
Audited code security, added messaging features,
migrated legacy data using a cluster of machines,
ported code to 64-bit,
curated our free software.
Worked alone, in small and large teams, and coordinated release between them.
Managed up to five interns. All Common Lisp.
- 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, cryptocurrency blockchains,
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
Shell, Java, C, Haskell, Python, Perl, PL/SQL, Smalltalk, C++, Erlang, FORTH,
Assembly (x86, 6502, ARM), BASIC, Prolog, etc.
DApps (including Smart Contracts) on Ethereum, Bitcoin Cash, Tezos.
Distributed programming. Multiparty computations.
Firewall, VPN, routing, TCP/IP, DNS, SMTP, etc.
- 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.
Completed long afterward but still undefended.
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 at http://ngnghm.github.io/,
otherwise at http://fare.livejournal.com/
Tweeting as @ngnghm (software), @phanaero (cryptocurrencies),
@fare (other) —
Also, composing songs.
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.
Climbing Up the Semantic Tower — at Runtime.
In Off the Beaten Track Workshop at POPL, January 2018.