Nicolas Pitre
4963, place de Boucherville
Montreal, Quebec
Canada H1K 2H2
514-355-5207
French and English
In-depth knowledge of the Linux operating system.
Vast expertise in embedded and real-time systems design.
Low-level interfaces, firmware, and various hardware drivers programming.
Experience with fixed-point math techniques and digital sound processing.
Excellent proficiency with the C and ARM assembly languages.
Moderate experience with C++, Perl, Python, Bourne shell.
Intimate knowledge of development tools such as cross-compilers, linkers, standard libraries, JTAG based debuggers, etc.
Highly familiar with the Free Software and Open Source communities, culture, development processes, etc.
Used to program in 6502 assembly on a Commodore 64 at the age of 13.
Canonical Ltd is a software company promoting open-source and providing products and services centered around the Ubuntu Linux distribution.
I’m currently working as a Linux kernel engineer within the Linaro organization.
Marvell is a producer of storage, communications and consumer semiconductor products, including ARM-based SoCs and wireless microcontrollers.
Linux Related Achievements:
Management of proper support for the Orion, Kirkwood and MV78xx0 chip families in the mainline ARM Linux kernel.
Completion of the Linux kprobes support for ARM.
Implementation of Linux highmem for ARM.
Memory access performance optimizations for the Feroceon CPU core.
Addition of Power Management support to the Linux SDIO stack, including special features allowing SDIO devices to remain powered while the host is suspended (used by Wi-Fi cards to implement Wake-on-LAN).
OpenOCD Related Achievements:
Support for the Marvell Feroceon and Dragonite CPU cores to OpenOCD.
Direct NAND reflashing capability for the Orion and Kirkwood SoCs.
Addition of ARM semihosting support to OpenOCD.
Achievements related to the Marvell 8688 Wireless Microcontroller used in a Wi-Fi enabled thermostat:
Rewrite of the bootloader code to optimize boot performance while using bitbanging on a SPI based Flash memory. Achieved speed-up was approx 20x.
Design and implementation of a mechanism for completely fail-safe firmware self-update to be performed over the wireless link.
MontaVista Software is a global provider of intellectual capital for Linux on intelligent devices, ranging from a complete Linux software distribution to professional services, on many different embedded processor architectures.
Personal Achievements:
Creation and maintenance of the initial Linux support for the Intel XScale architecture and the PXA2xx family of processors.
Partial rewrite of the Linux SMC91x Ethernet driver.
XIP (Execute-In-Place) support for the Linux kernel on ARM.
XIP enablement of the MTD driver for Intel flash memory.
Kernel side of NPTL (Native POSIX Thread Library) support for ARM.
Kernel support for version 2 of the ARM ABI, including a compatibility module for mixed ABI systems.
Portions of the Linux SDIO stack.
Various other Linux related tasks.
VIPswitch (defunct since 2001) was a developer of video, voice and data Ethernet switches and QoS IP Networks allowing perfect integration of multimedia and conventional data on the same network wire.
The VIPCI was a small custom board based on a StrongARM SA110+DC21285 with 3 PCI slots and a multiport Ethernet switch, used to build compact LAN/WAN routers with flexible hardware configuration options.
Personal Achievements:
Linux port to the VIPCI architecture.
Zero-copy optimizations to the driver for the Sangoma WAN interface card in order to achieve full throughput on a low-power StrongARM based system.
Multi-arrangement support (chip buswidth/interleave) for Linux’s Intel NOR flash driver.
I took part in the early development of a high-capacity switch/router for Metropolitan Area Networks (MAN) based on special-purpose custom hardware. My involvement consisted of an initial draft specifications for the communication between the MAN switch and the Linux-based controller node.
VisuAide (now called HumanWare) is a company that performs research and development of adaptive technologies for blind and visually impaired people.
Victor is a talking book reader using digital audio technology designed to replace the traditional analog tape players. This device allows the user to listen and navigate through structured audio books produced on CD-ROM by specialized libraries.
I was the principal software architect on the team that created the first Victor generation built around the StrongARM SA1100 processor and the Linux operating system, from initial design to final shipping product. The core of the original software architecture is still used in today’s Victor Reader generations.
Major Achievements:
Boot loader for the hardware platform.
Linux port to the StrongARM SA1100.
Drivers for custom keyboard and sound devices.
Navigation and user interface implementation.
Signal processing modules (audio format and sample rate converters, AGC, tone and volume filters, etc.)
Real-time audio data multiplexing, queuing and buffering.
OS and application optimizations in order to satisfy memory and performance constraints of the hardware.
Field upgradable firmware mechanism.
MagNum is a digital audio recorder with speech based agenda and address book functions for the use of blind and visually impaired people. The user’s voice is digitized, compressed and stored on a 1.44 MB floppy disk organized according to the selected function.
This device was built around the TI TSM320C52 DSP. It was a fine engineering challenge to make it manage large amount of data in real-time with extremely constrained hardware resources.
I worked on the following modules:
Recording and playback functions.
FAT file system support.
Disk cache management.
User interface.
Serial protocol for PC connection.
User commands latency optimizations.
Power management.
Flash memory (firmware) update mechanism.
Creation of a SSIL drivers for Proverbe and Televox speech synthesizers.
Localization of the JAWS For Windows screen reader (version 2.0) for the French market.
Initial setup and maintenance of VisuAide’s connectivity to the Internet.
Git is a revision control system with innovative concepts, unprecedented speed performances and the lowest disk usage amongst similar tools. I made major contributions to the project, the most significant being related to delta compression heuristics and access performance for the object storage model, as well as an ARM assembly implementation of the SHA1 hash code.
Cicero is a Text To Speech engine for the French language. Based on context sensitive rules, it translates text into phonemes with prosodic attributes, which are then fed to the MBROLA voice synthesizer. I wrote Cicero in collaboration with Stéphane Doyon using the Python programming language. The Cicero pronunciation rules have also been used to create the French voice for eSpeak, another Open Source TTS solution.
From the GCC news and announcements page (August 27, 2003):
Nicolas Pitre has contributed his hand-coded floating-point support code for ARM. It is both significantly smaller and faster than the existing C-based implementation.
I contributed an initial version that already outperformed existing solutions by a factor of 8 to 25, followed by another version about a year later providing yet more improvements.
I was the first to release a free version of the Ogg Vorbis decoder converted to fixed-point math able to execute in real-time on a StrongARM processor. When the integer-only Tremor codebase was made public, I redirected my efforts towards Tremor contributing significant performance improvements in general, and for the ARM architecture in particular.
During the Victor Project, I converted a version of the splay program to integer-only computations, and released the result per the LGPL under which it was licensed, which became the first Open Source MP3 software decoder to use fixed-point math. I eventually dropped it to contribute to the new madplay decoder instead, providing yet more significant performance improvements for the ARM architecture.
BRLTTY is a background process which provides access to the Linux console for a blind person using a braille display device. I made significant contributions to this project as a co-author and acted as its maintainer from 1997 to 2001.
The DECtalk PC is a voice synthesizer that was manufactured by Digital Equipment Corporation. The driver (now obsolete) allowed for a DECtalk PC to be used on Linux with applications like Emacspeak.
I obtained a bachelor’s degree in Computer Engineering in the Systems and Telecomputing branch, providing 120 credits.
The COMiC (Microcomputer Committee) is a student committee reporting to the Polytechnique’s Student Association. Its members provide computer related services and expertise to the student population as well as promoting special projects like the STEP.
I was an active member from 1992 to 1995 and the COMiC director during the 1994-1995 school year.
The STEP (Serveur Télématique des Étudiants de Polytechnique) is a student administrated multi-user server designed to give all students and student committees a free access to Internet services (e-mail, web page hosting, etc.) as well as a UNIX shell account.
I was part of the team involved in the creation of this project. At the time, the STEP server was made of a SparcStation running Solaris OS sponsored by Sun Microsystems. The administration and management tasks of a UNIX machine (configuration of services, security audit, etc.) was a tremendous learning experience.
I acted as a system administrator (1993 to 1995) and as the STEP project leader during the 1993-1994 school year.
Judo (brown belt obtained in December 2007)
Strength training
Kayaking
Hiking
Alpine skiing
Reading