Contact
585-***-**** (Mobile)
**************@*****.***
www.linkedin.com/in/mew2020
(LinkedIn)
leanpub.com/
buildingembeddedsystemsonlinuxamoderncapproach
(Other)
Top Skills
Code Generation (C++, Python)
Technology Leadership
Boost (C++ libraries)
Publications
An Introduction to Clang Part 2
An Introduction to Clang
Qt Signal Adapter Library
Working with LLMs Like an Engineer
AI Will Get Better. That Doesn’t
Mean It Will Replace Engineering
Judgment.
Mark Wilson
Senior Systems & Embedded Software Engineer Deterministic C+
+, Linux, Sensors, Timing Systems
United States
Summary
I’m a senior systems and embedded software engineer who builds deterministic, reliable systems in environments where correctness, timing, and long-term maintainability matter.My work centers on modern C++ and Python for embedded Linux and distributed systems, often modernizing legacy codebases into explicit, testable architectures that engineers can reason about and trust.I’ve led and contributed to software for precision navigation and timing systems, including core components such as GPS receiver APIs, data pipelines, and device-level interfaces. I’ve also introduced Python-based automation and test frameworks that improved production efficiency, repeatability, and quality.Additional experience includes:Embedded and hardware-facing softwareNetworking and distributed systemsDiagnostic, tooling, and GUI developmentTest automation, verification, and quality improvement initiativesI operate comfortably at the intersection of architecture, implementation, and engineering process, and I’m often brought in to clean up unclear designs, reduce hidden complexity, and make systems easier to evolve.I care deeply about mentorship and engineering craft. I support junior engineers, publish technical material, and advocate for designs that favor clarity over cleverness and discipline over expediency.My goal is simple: build software that can be understood, reasoned about, and trusted years after it ships.
Experience
Autumnal Software
Author — Systems & Embedded Software
January 2026 - Present (2 months)
Writing a technical book on deterministic embedded and systems design, focused on PNT, timing integrity, and long-lived software architecture. Page 1 of 6
This work distills production experience into concrete design patterns, examples, and tooling used in real systems.
Rochester Institute of Technology
Adjunct Professor
August 2023 - Present (2 years 7 months)
Advising senior capstone project teams on software architecture, implementation quality, and delivery to industry sponsors. Iridium
Senior Software Engineer
October 2024 - January 2026 (1 year 4 months)
United States
Working on Iridium's line of Satellite Time and Location PNT receivers. Debugging and adding features to several different receivers, including PetaLinux and STM32/FreeRTOS.
Currently developing a database-backed Qt GUI to help internal experts activate PNT accounts.
Developed new NMEA messages.
Safran Federal Systems
Senior Software Engineer
August 2020 - November 2024 (4 years 4 months)
Rochester, NY
Worked on several different PNT platforms, including SecureSync and VersaSync.
Debugged existing issues.
Developed code to handle complex binary GPS satellite receiver protocols, both commercial and military. Implementation used Boost ASIO for serial port communications.
Integrated a sophisticated gyroscopic inertial navigation device using UDP over a complex binary protocol.
Page 2 of 6
Developed multi-threaded programs for resource constrained embedded devices.
Debugged PTP issues, and worked with SFS proprietary PTP code AND open source code.
IMAGINANT INC.
Senior Software Engineer
November 2017 - October 2019 (2 years)
Rochester, New York Area
Worked on a team to convert company's flagship product PELT gauge from WinCE/C# to Linux/C++/Qt. Designed new display "widgets", networking, and database libraries and applications.
Designed and programmed a C++/Qt/SQLite based application to consolidate and track data produced by the company and used for PELT gauge customer operations. Replaced numerous disparate Excel spreadsheets with a single integrated management tool.
Designed and programmed a new, more efficient file format for PELT data. Format allowed for random access in potentially thousands of records, vs. the sequential only access in the old format. Also provided capability to add attributes as open ended string/string pairs, on a per file and/or per record basis.
Created a new Qt/C++ chart widget to display PELT waveforms. Widget works across platforms, on both Windows/Linux desktops and the more limited screen of the gauge.
Designed and programmed a new network library to enable data transfers and remote procedure calls between the PELT gauge and Linux/Windows desktops.
Explored web technologies and co-authored a proposal for a simple database backed web server to disseminate data from the PELT gauge and the robotic PELT. Investigated Django and Laravel frameworks (and web technologies in general) and described options for management, co-authored a preliminary design.
Harris Corporation
Page 3 of 6
Senior Software Engineer
February 2016 - November 2017 (1 year 10 months)
Rochester, New York Area
• Developed client code for spectrum data collection from tactical radios, utilizing Visual Studio 2012 with Qt extensions.
• Independently designed a C++/Qt application to automate radio device configuration, significantly reducing manual processes.
• Collaborated with the imaging characterization team to create C++ software for high-speed camera data acquisition, helping to realign project timelines.
• Created National Instruments TestStand code for satellite system testing, interfacing with complex subsystems to gather critical test data. Dematic Retrotech (contract position)
Software Engineer
June 2015 - February 2016 (9 months)
Rochester, NY
Worked on warehouse automation client/server software. Coded in C and C+
+, using Qt 5 as the client front-end. Contract position. Developed a Qt MVC application to display warehouse inventory and movement data.
The Gleason Works
Software Engineer
August 2014 - June 2015 (11 months)
Rochester, NY
Debugged various application and process issues in CNC gear cutting machine.
Developed HMI GUI's on Allen Bradley process controller. Integrated Computer Solutions, Inc.
Senior Software Engineer
September 2012 - May 2014 (1 year 9 months)
Rochester, NY
Worked remotely with a team on the GUI component of new generation John Deere tractor cab software. Involved creating a variety of custom widgets that controlled functions on the tractor via a CAN bus. Work done in C++ and the Qt framework.
University of Rochester, Laboratory for Laser Energetics Page 4 of 6
Lead Programmer/Analyst
May 2003 - September 2012 (9 years 5 months)
Design and develop a variety of imaging, data acquisition, and control software for a large laser system, primarily in C++ on Solaris and Linux. Developed video output service for an SDI interface as part of the Laboratory's new Digitial Image System. Service receives gray-scale image data from clients, adds overlays, and drives the output of the SDI interface board. Solely responsible for the design and development of the Energy Diagnostic service. Derives laser energy values at numerous points in the laser system using image acquisition and processing techniques and broadcasts the results over the Lab network to subscribers.
Solely responsible for the design and development of a communications library to GE Fanuc Programmable Logic Controller (PLC) units. Provides command and control of PLC units for motion and vacuum manifold control. Automatically polls the PLC and notifies subscribers of any changes to monitored control points.
Solely responsible for the design and development of a closed-loop adaptive optics control system that removes/reduces aberrations in the laser wave-front. This complex, highly visible project was successful due to close collaboration with research scientists on requirements and development, and due to flexible object oriented design.
Independently took lead on researching a middle-ware solution for Lab systems. Selected Internet Communications Engine (Ice, see www.zeroc.com).
Solely responsible for an image acquisition framework that handles a wide variety of cameras and interfaces, including CameraLink. Designed a set of abstract interfaces, utilities, and GUI elements that can be combined in a variety of ways. I
Took the lead in introducing Qt as the Lab’s primary GUI development system. Xerox
Software Engineer
June 2001 - May 2003 (2 years)
Page 5 of 6
Collaborated with an international research team (Xerox and Fuji Xerox) to design a next generation distributed “technology platform” for multi-function document handling intended to replace current Xerox technology:
• Reverse engineered existing Xerox platform code to discover areas of improvement. Applied automated code metric tools to characterize cohesiveness and coupling, and made recommendations for refactoring the code base to improve metrics and remove circular dependencies.
• Participated in design of abstractions and interfaces for various platform sub- systems.
• Studied distributed programming with CORBA, which was ultimately rejected. Designed and implemented a simple distributed system prototype using the Adaptive Communications Environment (ACE), which involved creating a binary protocol and marshalling via CDR, along with a means to identify and invoke operations remotely. Made extensive use of the ACE Reactor Framework.
Education
Syracuse University
BS, Computer Engineering
Page 6 of 6