Contact
585-***-**** (Mobile)
**************@*****.***
www.linkedin.com/in/mew2020
(LinkedIn)
Top Skills
Technology Leadership
Boost (C++ libraries)
Internet Protocol Suite (TCP/IP)
Certifications
AWS Foundations Completion
Learning S.O.L.I.D. Programming
Principles
Certificate of Completion: Python
Course
Publications
An Introduction to Clang Part 2
An Introduction to Clang
Qt Signal Adapter Library
Github
My Software Blog
Mark Wilson
Senior Software Engineer C++, Software Infrastructure, Linux, Software Development, OOD, OOP
United States
Summary
I am an experienced C++ Software Engineer with a SOLID background in OOD/OOP.
Experience
Iridium
Senior Software Engineer
October 2024 - Present (1 year)
United States
Rochester Institute of Technology
Adjunct Professor
August 2023 - Present (2 years 2 months)
MarkVTech
Experienced C++ Designer and Programmer
January 1996 - Present (29 years 9 months)
Safran Federal Systems
Senior Software Engineer
August 2020 - November 2024 (4 years 4 months)
Rochester, NY
Worked on several different PNT platforms.
Fixed bugs.
Developed code to handle complex GPS satellite protocols. Worked with PTP.
IMAGINANT INC.
Senior Software Engineer
November 2017 - October 2019 (2 years)
Rochester, New York Area
Page 1 of 5
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
Senior Software Engineer
February 2016 - November 2017 (1 year 10 months)
Rochester, New York Area
Developed client code to gather spectrum data from a tactical radio. Required development of a Windows GUI in Qt and a cross-platform serialization/ networking library. Used Visual Studio 2012 with Qt extensions. Independently designed and built a C++/Qt application to manage radio device configuration and startup automatically. Saved many hours a week by eliminating manual processes.
Page 2 of 5
Assisted imaging characterization team on development of C++ software to acquire and process images and data from a high-speed Teledyne Dalsa camera. The selection of a new camera put the project behind schedule; this work helped bring the schedule back on track.
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
Debug various application and process issues in CNC gear cutting machine. 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 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. Page 3 of 5
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)
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. Page 4 of 5
• 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
BS, Computer Engineering
Monroe Community College
Certificate in Culinary Arts, Food Preparation/Professional Cooking/Kitchen Assistant · (2016 - 2020)
Page 5 of 5