Michel Stam
Degree |
Bachelor |
Date of birth |
31-08-1976 |
Nationality |
Dutch |
Marital status |
Married |
Who am I
I'm an Embedded Software Development Architect / Lead with over 20 years of experience in a variety of languages ranging from Assembly and C to TCL and PHP.
I have a strong background in networks, and have developed my skills working for a variety of businesses in different sectors globally, enabling their products
by writing innovative software, ranging from drivers to complete server solutions. My passions are design, connectivity and Linux.
education & certification
- 2023, Managing conflicts, ICM, Utrecht
- 2022, Influencing skills, Schouten & Nelissen, Zaltbommel
- 2021, Leadership without power, Schouten & Nelissen, Zaltbommel
- 2014, Agile training (Allan Kelly)
- 2002, SAIR Linux GNU Certification 3XO-101
- 1998, PhoenixBIOS Release 6.0 Developers' Course, Irvine CA (USA)
- 1994 - 1998, Hogeschool van Utrecht (Utrecht polytechnic), Utrecht;
- Electronics/Telematics (Electronics)
- 1988 - 1994, Dr. F.H. De Bruijne Lyceum (Utrecht Highschool), HAVO level;
- Chemistry
- Dutch
- Business Administration
- English
- Mathematics (Level B)
- Physics
theoretical knowledge
- Database development & administration
- Embedded (Linux)
- Software design, modification, development & optimisation
- Hardware (Intel x86)
- Network design, administation &development
- Object-oriented development
- Security
- System administration
skills
- Development Tools
- Autoconf/Automake
- CVS
- GCC/GDB
- Languages
- Linux Software
- Apache (1.3.x onwards)
- Asterisk
- AuthSAE
- BIND (8.x onwards)
- Dovecot + Sieve
- Free-RADIUS
- GNU/Bayonne 1.2.x
- GNU GK (OpenH323)
- HostAPd/wpa_supplicant
- Kernel (2.0 onwards)
- Linux-HA (Heartbeat)
- LLDPd
- Net-SNMP
- NFS
- NIS
- NTP 4.x
- OpenLDAP
- OpenSSH
- OpenSSL
- UW-IMAP (Pine)
- MySQL (3.23.x onwards)
- pthread
- Samba
- Sendmail
- SQLite
- Sun RPC
- System V IPC
- Unix sockets
- Operating Systems
- Cisco IOS (12.x - 16.12)
- Debian (4.0 onwards)
- Lucent ComOS
- RedHat, Fedora Core
- Slackware (3.x onwards)
- Windows '95/'98/ME/2000/XP/7/10
- Programming Languages
- Assembly (Intel x86)
- Bash
- C
- C++ (OO & STL)
- HTML/CSS
- JavaScript
- Pascal
- Perl
- Protocols
- IMAP4
- IPSEC/ISAKMP/IKEv2
- IPv4, IPv6 (TCP, UDP, ICMP, IGMP)
- NTP
- OSPF
interests
- Networks/connectivity
- Photography
- Programming
professional experience
Senior Embedded Software Developer at RIPE NCC R&D, Amsterdam
2022 - now
- Developing a vision for the Atlas platorm
- Solving problems with hardware probes in the Atlas platform
- Supporting users of the Atlas platform
- Guiding a software engineer
Infrastructure Architect at Fugro Services B.V. (Global IT), Leidschendam
2021 - 2022
- Derive a design for office infrastructure
- Guiding the team into the design process and documenting decisions
- Providing SME on networking and network technologies
- Giving presentations to IT, business and R&D to explain the design and technical topics
- Providing reference implementations of switching/routing technologies
- Guide network engineers
Technical Architect at Fugro ICT B.V. (IT on Vessels), Leidschendam
2017 - 2021
- Liaising with operations and R&D to identify, design and resolve infrastructure related problems
- Leading the team into the design process and documenting decisions
- Governing the design to ensure compliance
- Providing SME on networking and network technologies
- Giving presentations to business and R&D to explain the design
- Providing reference implementations of switching/routing technologies
- Guide interns and network engineers
Senior Embedded Firmware Engineer/Linux at Fugro Intersite B.V., Leidschendam
2013 - 2017
- Maintaining several ARM and x86-based embedded OpenWRT/Linux-based operating systems
- Debugging low-level issues in the Linux kernel (disk, WiFi, TTY and network)
- Fixing bugs in the OpenWRT development tree; making it production-ready
- Implementing IEEE 802.11s with SAE in OpenWRT
- Implementing LLDP discovery
- Designing a multicast routed network on top of a wireless mesh network
- Collecting patches to open source code and sending these back upstream
- Design and implement drivers for an FPGA implementation in Verilog (RTC, clocksource, TTY, POSIX clock, LED, SPI, interrupt controller)
- Writing a board Support Package for a custom AT91 SAM9 board (customising at91bootstrap and OpenWRT), and updating the board support package for a PXA255-based board
- Evaluating 3rd-party supplied boards for use in products
- Supervising and conducting long-range WiFi tests
- Investigating the relation between signal strength and distance in WiFi networks and creating a link budget calculator based on the findings
- Implementing a Layer 2 bridge over IPSEC
- Making adjustments to Verilog FPGA code and developing basic components, such as a LED or SPI controller
- Design and implement an IDE controller component in the PSoC Creator
- Partaking in Agile development (SCRUM)
Senior Embedded Software Engineer at Lely Industries N.V., Rotterdam/Maassluis
2013
- Maintaining and expanding an embedded Linux operating system
- Implementing an interface for extracting sensor data over an Ethernet network
- Compiling a bare-metal ARM GCC toolchain for use with a Cortex-M3 processor
- Making RF analyses for Bluetooth/WiFi
- Administration of office infrastructure (network)
- Administration of a calculation cluster
Senior Software Engineer at HaloteC Instruments B.V., Veenendaal
2010 - 2013
- Implementing a GPIO and watchdog driver for the ITE8718F chip into the Linux kernel
- Implementing a LED driver in the Linux kernel to control a self-designed printed circuit board
- Designing and implementing a mediaplayer for playing digitally distributed content
- Designing and implementing a SCADA system for process control and logging of biological experiments
- Designing and implementing a calculation cluster using TFTP/NFS/DHCP, PXE, SLURM and MPICH2
- Guide/mentor interns and (junior) software engineers
- Design and implement an embedded operating system based on Linux
- Compiling the GCC/Linux/uClibc toolchain
- Compiling all required support libraries to get a basic Operating System
- Implementing various utilities and programs that comprise the bootup process and web interface
- Implementing utilities to store configuration information into a SQLite database, as well as a SQLite module to validate the configuration
- Implementing a module to store factory information outside the filesystem
- Writing a coding style and check compliance with the coding style
- Installation, configuration and administration of the office infrastructure (servers, network and telephony), as well as communication with various contractors/suppliers regarding the infrastructure
Senior Programmer at Octo Wireless LLC, Almere
2009 - 2010
- Implementing WiFi channel widths in the MadWiFi Linux device driver in C
- Implementing a frontend/backend in C, RADIUS, MySQL and PHP for a WiMAX ASN Gateway
- Implementing a CDMA module on an embedded Linux MIPS platform
- Writing various bugfixes for an embedded MIPS platform
- Installation, configuration and administration of the office infrastructure (servers and network)
Senior Programmer at Hopling Technologies B.V. (until 09-2008) and at Hopling Networks B.V., Almere
2006 - 2009
- Implementing software in C for embedded Linux systems on x86, MIPS and ARM processors
- Design and implement the HDP (Layer 2 Hopling Discovery Protocol), writing all documentation for the patent application for this protocol (#EP2028794, #EP2028795)
- Overseeing/guiding the FCC/IC RF certification of a WiFi product
- Implementing the Linux Wireless extensions as well as various other ioctls in the Prism2 and Prism WWR driver in the Linux 2.6 kernel
- Implementing and adapting features in the Ecos/Redboot boot loader as required by support or the factory
- Porting a driver from Linux kernel 2.4 to kernel 2.6 for establishing a layer 2 tunnel using PPP and L2TP to establish a L2TP session between a Linux LAC and a Cisco LNS
- Implementing space-saving fixes (binary storage) and network communication in a central repository for storing configuration parameters on embedded systems
- L2TP Interoperability between Cisco routers and Linux on layer 2
- Writing software for a central configuration repository for embedded systems
- Designing/writing the specification for fully automated mesh network configuration
- Integrating an LDAP database with Samba/FreeRADIUS/Sendmail/Dovecot
- Configure a Fax-to-email gateway using an IAX2 interconnect to an Asterisk PBX
- Installation, configuration and administration of the office infrastructure (servers, network and telephony)
Software Engineer at T-logics, Maarssen/Amsterdam/Laren, of which 1.5 years posted via Dicom Gorcum B.V. (04-2002 - 10-2003)
2000 - 2006
- Developing software in C/C++ on SCO Unix/Linux operating systems:
- Call4XS (micro-internetbilling system)
- Several patches for GNU/Bayonne (a Dutch text-to speech language module, a rewrite of the SunRPC module using multithreading, a SNMP subagent)
- IVR applications, amongst which was an application to record and edit soundfiles using the phone alone
- Backend for a statistics system (multi-platform) to deliver call detail records over the network to a central machine
- Writing a distributed alarm system in C++
- Writing various (Unix) shell scripts for backup, security and software development support
- Installation, configuration and administration of Linux webservers, fileservers, database servers and IVR systems using GNU Bayonne 1.2.x
- Configuring routers (Cisco IOS, Livingston), firewalls and VPN connections (Cisco IOS)
- Network design, security and administration
- High availability systems (MySQL clustering, Linux HA, Cisco HSRP)
- Guide an intern
Software Development Engineer at Tulip computers B.V., Rosmalen, R&D department
1998 - 2000
- The maintenance of several Phoenix BIOS's
- Qualification of new BIOS releases
- Writing BIOS solutions for the Y2K problem
- Development and maintenance on software-utilities in C/C++ and Assembly (Intel x86)
Internship (graduation) at Tulip Computers B.V., Rosmalen, R&D department
1998
- Assignment: Writing software for Net PC & Remote BIOS update over the netwerk
Internship (5 months) at the Valkieser Group, Hilversum, Valkieser Systems Engineering department
1997
- Supporting computer systems (PC and Macintosh)
- Installing a Linux-based printer server using Samba and LPD
Internship (5 months) at Tulip Computers B.V., Rosmalen, R&D department
1996 - 1997
- Writing software utilities for USB (UHCI interface)