| Address | Nicolas Pitre 4963, place de Boucherville Montreal, Quebec Canada H1K 2H2 |
|
Nicolas Pitre <nico@cam.org> |
|
| Tel |
514-351-0954 |
| Known Languages |
French and English |
in-depth knowledge of the Linux operating system
vast expertise in embedded and real-time systems design
low-level interfaces and various 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, UNIX shell
limited experience with i386, m68k and TMS320C52 assembly
used to program in 6502 assembly on a Commodore 64 at the age of 13
Git is a revision control system with innovative concepts, unprecedented speed performances and the lowest disk usage amongst similar tools. I made many 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.
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 support for the Intel XScale architecture and the PXA2xx family of processors in the Linux kernel
Partial rewrite of the 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 that allow the 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 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 only consisted of an initial draft specifications for the communication between the MAN switch and the Linux-based controller node though.
VisuAide, now called HumanWare after a merger with former Pulse Data International, is a company that perform 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. Much of the original software architecture is still used in today's Victor generation.
Personal 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
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 improvements
power management
flash memory (firmware) update software
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 management of VisuAide's connectivity to the Internet
Customer Service Technician
configuration, testing, packaging and shipping of special computer equipment for the visually impaired clientele
troubleshooting of malfunctioning equipment
phone-based technical support to customers
beta testing of new products
I obtained a bachelor's degree in Computer Engineering within the Systems and Telecomputing orientation. This program provided me with a total of 120 credits over the course of 4 years.
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)
kayaking
hiking
alpine skiing
reading