François-René Rideau
Architecting Solutions to Softwaring Processes


Phone: +1 617 575 9012
E-mail: fare@tunes.org
Website: http://fare.tunes.org/
French national, US permanent resident

Click here for a printer-friendly version.

Work Experience

2013–2016
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.
2005–2013
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.
2003–2004
CRPGL, Luxembourg (Researcher)18 months
Public Research Center. Developed web-based collaborative tools in Common Lisp.
2000–2001
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.
summer 2000
Le-Kaki.com, Paris, France (Chief Technical Officer)3 months
Recruitment startup. Designed and implemented IT solutions.
1997–2000
France Telecom, Paris, France (Research Engineer)36 months
Researched under Jean-Bernard Stefani. Experimented with distributed calculi.

Technical Skills

Cybernetics
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.
Infrastructure
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, Java, Clojure, Racket, Shell, C, OCaml, Haskell, Javascript, Perl, Python, PL/SQL, Smalltalk, C++, Erlang, FORTH, Assembly (x86, 6502, ARM), BASIC, Prolog, etc.
Networking
Distributed programming. 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...)
Documentation
Scribble, LaTeX, SGML, XML.
Special Skills
Formal logic, proofs. Metaprogramming. Object-Oriented, Logic and Functional Programming. etc.
“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.

Formal Training

1997–2000
PhD candidate in Computer Science at École Nationale Supérieure des Télécommunications (Paris).
Thesis subject: the semantics of reflective systems, as applied to building distributed systems.
Research interrupted to pursue professional opportunities.
1996–1997
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é).
1992–1996
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.
1987–1992
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 for massive practical gains.

Many development teams have a small horizon that leads them to code bloat and bad quality, with diminishing returns and accumulated technical debt. I 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; I will include user experience and developer experience in my designs, and optimize the interactions that matter.

Miscellaneous

Languages
 
Native French speaker. Fluent in English.High-school Spanish.
Hobbies
 
Maintainer of Common Lisp build tools. Secretary of the Association of Lisp Users.
Co-organized monthly meetings in Boston then in NYC on programmable programming languages.
Contributed to many free software projects.

Wrote essays and spoke at conferences on Free Software. Wrote essays and spoke at conferences on Economic Liberty.

Previously: Was CTO for an off-shore software development consultancy, http://meta.ph/or.
Founded the TUNES project for a free reflective computing system. http://tunes.org/

Blogging about Computing Systems vs Computer Systems at http://ngnghm.github.io/.
Blogging at http://fare.livejournal.com/ — tweeting at http://twitter.com/fare — Composing songs.

Peer-Reviewed Publications

References

[RB09]
François-René Rideau and Spencer Brody. XCVB: an eXtensible Component Verifier and Builder for Common Lisp. In International Lisp Conference, 2009. http://common-lisp.net/projects/xcvb/.
[RG10]
François-René Rideau and Robert P. Goldman. Evolving ASDF: More Cooperation, Less Coordination. In International Lisp Conference, 2010. http://common-lisp.net/projects/asdf/.
[Rid99]
François-René Rideau. 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 1999”. http://fare.tunes.org/articles/ll99/index.en.html.
[Rid12]
François-René Rideau. LIL: CLOS reaches higher-order, sheds identity and has a transformative experience. In International Lisp Conference, 2012. http://github.com/fare/lil-ilc2012/.
[Rid14]
François-René Rideau. ASDF 3, or Why Lisp is Now an Acceptable Scripting Language. In European Lisp Symposium, 2014. http://github.com/fare/asdf3-2013.