Marc Herbert


https://github.com/marc-hb
https://www.linkedin.com/in/marc-herbert-software/

Marc.Herbert@gmail.com

Summary

Senior Open Source Software Engineer with strong skills in operating system and network engineering. Quickly grasps and solves complex technical issues involving interactions between multiple components.

Strong team player, focused on achieving quality and excellence at all levels: from architecture and design to low level implementation details and work in the lab.

Experienced in working across distant time zones and interacting with open-source communities. Track record of bridging gaps between open-source projects and validated products.

Experience

Senior Software Engineer at Intel
From October 2024 Linux and CXL
Identify and backport kernel code to internal, stable branches in collaboration with upstream developers. Debug CXL test failures, fix and automate test scripts
April 2020 - October 2024 Sound Open Firmware
SOF and Zephyr developer (C). SOF maintainer for bash, Python and others. Co-maintainer of Zephyr's west meta-tool (git, Python).

Migrated the SOF logging system and SOF build system to Zephyr.

Led the effort that fixed validation and achieved Continuous Integration for SOF. Relentlessly triaged, debugged, analyzed and fixed countless false positives and false negatives across the product stack: in sof-test code, automation, build systems, Linux driver, Zephyr and SOF code. Added static analysis, fuzzers and linters and transformed the automation and development processes into a reliable and trusted workflow that catches most regressions immediately and boosts development velocity.

Worked with Fedora and Ubuntu audio maintainers to refactor the sof-bin release process for Linux distributions.

April 2018 - Mar 2020 Firmware prototypes
Feasibility explorations based on open-source firmware. Fixed and upstreamed reproducibility issues in the Zephyr build system (later automated in SOF).
Nov 2014 - Mar 2018 ChromeOS Integration Leader
Backported about 1500 Linux drivers commits to stable git branches used in Google's Chromebooks product line. Debugged kernel issues and reported them upstream.
Trained and led a small team of engineers that scaled this process and provided the main technical point of contact for Google's team.
July 2011 - Oct 2014 Linux Squad Leader for the first, X1000 Intel Quark SoC
  • Trained, led and mentored the team of Linux engineers that implemented and delivered the first public releases of Yocto/Linux software support for Quark, up to the v1.0, first "gold" release.
  • Designed and co-implemented the internal, continuous integration of the Intel X1000 Quark SDK, including UEFI firmware and secure boot.
  • Provided 3rd level support to Intel X100 Quark internal and external customers.
Feb 2008 - June 2011 Senior Software Engineer at Shenick Network Systems
Main achievements besides regular software maintenance:
  • Made diversifEye's, core client-server networking technology robust against network failures and compatible with firewalls and NATs. Reversed-engineering, fixed and enhanced diversifEye usage of Java RMI.
  • Main developer of the network monitoring product servicEye spider: implemented about 80% of the software not coming from previous Shenick products.
  • Implemented in C the DNS client and test server of the real-time, light-weight, DPDK-like TCP/IP stack which powers the core of diversifEye and other, Shenick products. Ported that TCP/IP stack to Linux 64 bits (CentOS).
apr 2005 - oct 2007 Software Engineer at Continuent
  • Development of Sequoia: a transparent JDBC middleware providing replication, load-balancing and failover.
    Removed the Java-based serialization part of the Sequoia JDBC driver, replaced by a binary protocol designed for C++ compatibility. Co-author of the Carob C++ client library. Ported carob and libmysequoia to FreeBSD and MacOS X. Wrote the ODBSequoia ODBC driver.
  • Significant contributions to the build & QA framework. Shell and Ant scripting, JUnit. Automated the system administration of a cluster of 60 Linux hosts.
jul 2001 - dec 2004 Research Engineer at Sun Microsystems Laboratories (Grenoble / Lyon)
Research in high-performance packet networking. Sun Microsystems Ph.D. grant. Co-located in SunLabs Europe and École Normale Supérieure (ENS) Lyon (RESO team, LIP laboratory).
Designed and wrote the Solaris kernel driver of the "Clint" FPGA prototype network interface. Research work on congestion, flow control and performance in TCP/IP/Ethernet networks, involving Linux kernel programming; see publications list below.
sep 2000 - jun 2001 Research Master Degree in Computer Science
jun 1999 - aug 2000 Software engineer in INRIA team Vasy (Grenoble)
Development of CADP, a model-checking toolbox. C programming in Solaris, Linux environments. Porting to Windows with MinGW (Solaris to Windows cross-compilation). Brought the Traian 2.0 E-LOTOS compiler from 85% to 100% completion state. Among others, CADP has been used by Bull for the validation of Itanium multiprocessor architectures.

Technical skills

Advanced

C. Bourne shells.
Zephyr.
Git. [C]Make.
Strong debugging and analysis skills.

Intermediate

Python. Java, Linux kernel.
Toolchains, cross-compilation.
TCP/IP, Ethernet, network performance (tcpdump, wireshark,...) Protocol analysis.
Technical Documentation and academic writing.
Github Workflows
Emacs. Comfortable with Debian/Ubuntu, Fedora & and Red Hat. Kickstart.

Familiar with

SQL. Docker. Linux packaging. Bootloaders. Tcl. OCaml. C++. ELF binary format. HTML & CSS. LaTeX.
Language and compiler theory. Distributed systems. Process algebra and model checking.

Natural languages

English Proficient
French Native
German Basic

Education

2001 Research Master's Degree in Computer Science - Lyon University, France.
Parallel computing, high-speed networking, software engineering.
1996 Master's Degree in Telecoms Engineering - ISAE-Supaero University, Toulouse, France.
Digital signal processing, network protocols.

Publications

[1] Marc Herbert and Pascale Primet. A case for queue-to-queue, back-pressure-based congestion control for grid networks. In Prof. Hamid R. Arabnia, editor, Proceedings of the International Conference on Parallel and Distributed Processing Techniques and Applications (PDPTA'04). CSREA Press, June 2004. [ http ]
[2] Nicolas Fugier, Éric Lemoine, Marc Herbert, and Bernard Tourancheau. MPI for the Clint Gb/s interconnect, a hardware/software design experience. In Recent Advances in Parallel Virtual Machine and Message Passing Interface, 10th European PVM/MPI User's Group Meeting, LNCS, pages 395-403, Venice, Italy, September 2003. Springer-Verlag. [ http ]
[3] Marc Herbert, Pascale Primet, Bernard Tourancheau, and Laurent Lefevre. A scalable and fully distributed architecture for ethernet switching. In Proceedings of the 2002 Workshop on High Performance Switching and Routing (HPSR 2002), pages 234-238, Kobe, Hyogo pref., Japan, May 2002. IEICE Communication Society, IEEE. [ http ]
[4] Marc Herbert. A myrinet firmware development experience. Technical Report RT-0257, INRIA, March 2002. [ http ]