Marc Herbert

Dublin, Ireland
Mobile: +353 85 770 5115

Marc.Herbert@gmail.com

Objective

Seeking a senior engineer position in an small/“agile” group tackling cutting-edge projects and pushing technical limits.

Summary

Senior Software Engineer with strong skills in system and network engineering and ability to grasp and solve complex technical issues. Protocol design and analysis, documentation writing skills and academic writing. Strong team player, focused on achieving quality and excellence. Used to work in groups scattered across several timezones and to interact with the open-source communities. Enjoy stretching from architecture and design meetings to getting hands dirty in the lab, and stretching from functional programming and CSPs to pushing bits on the wires - without getting thin.

Experience

From July 2011 Linux Squad Leader for the first Intel Quark SoC
  • Train, lead and mentor on a daily basis the small team of junior Linux engineers that implements and delivers most of the Yocto/Linux software support for Quark, from the very first Galileo software release (v0.7.5) to v1.0 gold quality.
  • Designed and partly implemented the internal, continuous integration of the Quark software build, including UEFI firmware and secure boot. The implementation is light-weight and flexible for compatibility with full open source releases, yet still compliant with legal and quality processes.
  • Technical relationship with first rank Quark customers and partners inside and outside Intel, including 3rd level support.
Feb 2008 - June 2011 Senior Software Engineer at Shenick Network Systems
Besides many more mundane software development tasks, main achievements were:
  • Reversed-engineered, fixed and enhanced the Shenick extension which makes Java RMI (a peer to peer technology) compatible with firewalls and NATs. Made diversifEye client-server networking robust against network failures.
  • 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 TCP/IP stack which powers the core of diversifEye and other Shenick products. Ported the above stack to Linux 64bits (CentOS).
apr 2005 - oct 2007 Software Engineer at Continuent
  • Removed the Java-based serialization part of the Sequoia JDBC driver, replaced by a binary protocol designed for C++ compatibility. Co-wrote 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 Lintel 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).
At Sun the main achievement was to write in C the Solaris kernel driver of the "Clint" FPGA prototype network interface. On the academic side, research on congestion, flow control and performance in TCP/IP/Ethernet networks, involving Linux kernel programming. See publications below.
System administration of a network of 50 Debian Linux machines (small clusters and workstations) server configuration: NIS, NFS, CVS, cfengine,...
sep 2000 - jun 2001 Research Master's Degree in Computer Science
jun 1999 - aug 2000 Software engineer in INRIA team Vasy (Grenoble)
Developement 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
feb 1998 - may 1999 System and network engineer in FFCAT (Paris)
IT person in charge, managed the transition of the headquarters of a professional association (50 employees) from DIY Personal Computing to a modern enterprise network: wired the premises, designed and implemented the network architecture (TCP/IP, AppleTalk, Samba), trained the users, etc.

Technical skills

Expert

C. Java (not javax.*) Bourne shells. Git. GNU Make.
TCP. Ethernet. Performance issues in datagram networks.
strace, wireshark,... strong debugging and analysis skills. Tenacious.
Debian/Ubuntu, Fedora & Red Hat system administration, notably kickstart.

Intermediate

POSIX. C++. RMI. Python. Ant. MySQL. PostgreSQL
CVS, Subversion. Buildbot. JDBC. Protocol analysis. Compiler development.
Linux kernel development. Solaris driver development.
Cross-compiling. [X]Emacs.
IP networking. Myrinet. MPI.
HTML & CSS. LaTeX.
PC and Apple hardware. Unix network administration.

And also some:

PHP. OCaml. ELF libraries. Windows and MacOS administration... While regularly fixing Windows and MacOS problems of colleagues, relatives and friends, definitely a UNIX person, with a strong emphasis on free software.

Theoretical skills

Good education in mathematics and a taste for abstraction. Comfortable with mathematics for engineering.
Somewhat versed into: Knew some:

Natural languages

English Fluent for day to day work and academic writing. Worked for 6 years in Dublin, Ireland.
German Years ago, was good enough to understand TV, radio and most conversations. Big lack of practice now.
French Still not bored of learning after a few decades.

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 ]

English http://marc.herbert.free.fr/resume/ Valid HTML 4.01!
Français http://marc.herbert.free.fr/cv/ (online versions feature numerous hyperlinks to further details)