
Frederic Vicher
Senior BIOS and Firmware Developer
Salary / Daily rate
Freelance
Skills
Languages
About me
Intro
Senior BIOS and firmware developer with 15+ years of expertise in embedded systems and low-level programming. Proven track record in UEFI development, ARM/x86 architectures, and leading tech alliances with major companies like Kontron, Siemens, and Thales. Specialized in delivering robust firmware solutions for mission-critical applications.
Work experience
Senior BIOS and firmware developer
A.M.I.E.Freelance
Jul 2015 - Present
11 years 4 months
Hybrid
Award legacy bios UEFI bios for embedded systems (AMI, Insyde and Phoenix based) Assembler, C, Subversion, Eclipse, American Arium emulator, I2C sniffer, tests equipment. Design and development of a customization tool for Phoenix-based UEFI bioses running in UEFI shell. ACPI coding, bug fixing Development environments under Windows. ARM Cortex M4 (Nordic), BLE, Lora using GCC, GIT PCIe bios for the European Processor Initiative (ARM based multi-processor) Boot and hardware interfacing on Xilinx Zynq UltraScale+ MPSoC Main customers Kontron, TQ, Siemens, ATOS for BIOS, Metavonics for Real time OS (mainly remote working). Metavonics filed a patent for my invention on improved connector keys. Right now, I am in charge of leading a RAPID alliance between Metavonics, Onera and Thales around TSN (high reliability ethernet network standards used in avionics).
Senior Embedded Software Engineer
NXP
Mar 2014 - Oct 2014
8 months
Caen Area, France
Implementation of functions in a NFC device running Chibios. Validation and regression tests development. ARM, C, Subversion, Eclipse, GCC, MISRA, tests equipment. Development environment under Windows.
Embedded Software Developer
GMX-YouTransactor
Jun 2013 - Mar 2014
10 months
Paris, France
Development and integration of a payment device using smart cards and mobile phone. Secure ARM, C, Subversion, IAR, JTAG, code architecture, HMI, Communication protocol design and implementation
Senior bios developer
Men
Mar 2013 - May 2013
3 months
90 Nuremberg, Germany
Implemented network drivers to boot different operating systems on proprietary hardware. UEFI, PXE, UNDI, legacy oprom, UEFI oprom.
Software Developer
A.M.I.E.
May 2012 - Mar 2013
11 months
69340 Francheville, France
Implemented a web application using HTML, Javascript, PHP, MySQL, Apache. Javabeans, subversion, collabtive.
Embedded Software Developer
SoftAtHome
Aug 2011 - Jan 2012
6 months
Paris Area, France
Implemented a France Telecom proprietary technology in a home gateway. The module reports to FT servers the failures and quality of service related to VoIP. I had to adapt it to a new internal design as well as a new software bus (data model). MIPS, Embedded linux, Wireshark Development environment under Ubuntu linux.
Embedded Software Developer
ST-Ericsson
Mar 2011 - May 2011
3 months
90 Nuremberg, Germany
Creation of a new software module for UMTS-LTE telephony . The module had to be designed to allow other modules to subscribe or unsubscribe to different services. Some of the services were called when powering up or down some of the processors. ARM ClearCase Lauterbach debugger OSE real time operating system
Senior Consultant
Atos
Feb 2011 - Mar 2011
2 months
Belgium, WI, USA
Analysis of a communication crash due to interferences on a USB-serial connection (linux and windows drivers) As USB is not designed for industrial use, very often electromagnetic glitches (the cable was connecting cash registers to card readers) made the hardware disconnect. Thus the low-level software needed to be modified to automatically reconnect using the same device number and without informing higher layers.
Windows device driver senior designer
NXP
Jul 2010 - Oct 2010
4 months
Belgium, WI, USA
Developed a NDIS-KMDF device driver for a new 60 GHz wireless standard. I made 2 windows device drivers to interface with a prototype board first as a file reader and writer then as a communication device. The driver had to buffer the data (no buffer management on the board) and manage the simultaneous flows of data.
Windows device driver senior developer
Option NV
Jul 2008 - Mar 2009
9 months
Belgium, WI, USA
Debug USB drivers for cellular network devices. Created debugging tools to help using crash dumps. The first one is a C library to write in a rotating buffer the compressed messages along with caller address. The second one is a WinDbg C++ DLL to get the messages from the crash dump and make them usable. Found bugs inside the Microsoft USB layers. Followed trainings on cellular networks and TCP/IP over cellular networks.
BIOS senior developer
Tadpole (General Dynamics UK)
Apr 2008 - Jul 2008
4 months
1180 Uccle, Belgium
Debugged and finished the Award-based BIOS for the Windows coprocessor of a SPARC notebook. Interfacing to several hardware components. It has to use the peripherals (video, keyboard, disks, network, etc…) controlled by the SPARC part. Communication between processors through SMI and non-transparent bridge. Highly secured work environment (project for the US army). Used the AMD Hardware Debug Module (JTAG technology)
Communication advisor
Confidential
Nov 2006 - May 2007
7 months
Paris, France
Hired by one the main candidates at the French presidential election to take care of the strategy and communication methods
BIOS and device driver senior developer
Datapath Ltd
Sep 2003 - Dec 2006
3 years 4 months
1180 Uccle, Belgium
Maintained and improved the video BIOS for S3 based Datapath cards (assembler) Maintained and improved the NT video miniport device drivers for S3 based Datapath cards (C) There are 4 video outputs on each card and several cards in a PC, up to 40 screens for a datawall - Added DVI (flat panels) support in the driver - Made the system not use the video BIOS after boot - Implemented the communication with the monitors using DDC protocols (DDC/Bi & DDC/Ci) - Added the automatic creation of user video modes using the registry - Introduced parallelism in the operations of the different video channels - Proposed and implemented ways to speed up the video initialization (now 100 times faster) - Enhanced the video mode change operation - Designed and implemented the hardware testing at low level and user interface (C, C++) Developed the firmware for 8052 compatible on a video splitter (assembler and C, Keil uVision IDE) - Made the firmware upgradable through the I2C connection (embedded C – assembler, PC side in C++). The firmware being stored in flash, I designed and wrote the routines to program the flash part while the data were received, which implied executing part of the code in RAM. Suggested lots of improvements and innovative technologies (hard and soft) for different products Use of Visual Source Safe
Consultant engineer
Compagnie Européenne de Développement S.A.
Jan 1999 - Aug 2003
4 years 8 months
69340 Francheville, France
Interventions at customers sites to troubleshoot and fix bios or drivers issues, or hardware misconceptions (HP, NEC, Fujitsu-Siemens) Member of the Trusted Computer Platform Alliance bios workgroup. -Continued improving the bios with Phoenix. Modified the Phoenix debugger (or Bioscope) to debug without any RAM in the target computer (software only solution). The debug engine is written in assembler and the front end in VB5. -Windows 2000 programming (Kernel and drivers). Mainly communications kernel stack (IP). Hooking of kernel functions (dispatch functions, kernel functions, device drivers entries, NDIS miniport entries, TDI). NT services. TAPI. CAPI. Sockets. Multi-threading. Io completion ports. -Client-server programming using TCP/IP with authentication and cryptography (C++) Patent FR.02/07604
Senior Bios Engineeer
phoenix
Apr 1997 - Dec 1998
1 year 9 months
CPE (Continuous Products Engineering) for HP platforms. Commited to fix or workaround bugs usually under high pressure (customers waiting before buying thousands of HP computers), these bugs being related to hardware or software. Client facing. -'owner' of the debug engine technology -wrote the code size optimisation manual used by Phoenix engineers -developed some tools in C/C++
General Manager
CED
Jan 1988 - Dec 1996
9 years
69340 Francheville, France
Main personal developments: -New version of TEC communication program including new functions, adaptation to new processors including Pentium (the IBM IABSC card was designed to be used on PC at 4.77 Mhz. On AT at 6 MHz the card registers cannot follow the data rate). Add a built-in datascope. (Assembler 80X86) -Generic BSC 2780/3780 driver API compatible with ICOM BSC driver but smaller, faster, able to use different ports in asynchronous or synchronous modes with clock generation, more complete protocol implementation. Includes many trouble shooting tools like dialog window, built-in datascope, automatic ports and interrupts recognition, ability to use a different software calling interrupt number (API) and transmit this number to application program, extended error messages, etc... (Assembler 80X86) -Multitask, multiport, multicompatible communication driver for multitask Quarterdeck's Desqview environment. Replaced parts of DOS to allow real-time. (Assembler 80X86) -Multiuser MS-DOS environment based on Desqview multitasking. (Assembler 80X86) -BIOS level generic anti-virus software for MS-DOS, PC-DOS or DR-DOS loaded from floppy partly at boot time. DOS uses CONFIG.SYS and AUTOEXEC.BAT from hard disk unit. Programs see hard disk as boot unit but DOS files are loaded from floppy. Able to restore CMOS configuration. Requires no modification in config files. (Assembler 80X86) -Interface programs and utilities in C/C++ and assembler 80X86 Main intervention domains as a contractor: -Help to develop drivers or resident programs. -Low level debugging. -Teaching on Desqview API as editor's contractor. -Memory management. -Patch programs without source nor documentation. Employees management
Software Engineer
Tokyo Electric Company
Jan 1986 - Dec 1987
2 years
Paris Area, France
-Articles administration in a Hyper Market in compiled GW-Basic. -BSC based communication programs for IBM-PC and HP- 150 to link to TEC cash registers. The upper communication levels are TEC specific and embedded in the program. Developed to be used in batch files or interactively from built-in menus (Assembler 80X86). The stack was developed from scratch.
Field hardware maintenance engineer
EUROTECHNICA
Jan 1985 - Jan 1985
1 month
Paris, France
Skills: Dépannage
Hardware Support Engineer
YREL
Jan 1983 - Jan 1984
1 year 1 month
Paris Area, France
Skills: Dépannage
Test and physical measures technician
EDF
Jan 1978 - Jan 1980
2 years 1 month
Tricastin nuclear power station