Summary
• I'm a team oriented self-motivated architect and engineer, with 16 years of professional software experience, who loves working with people and on challenging, interesting, or meaningful problems.
• I'm interested in User Interface Development/Design, Aerospace, Robotics, Medical Devices, Pharmaceuticals, Artificial Intelligence, Programming Language Development, Scientific Research, Genetic Engineering, Biotechnology, Astronomy, Game Development (not gambling), Rendering (2D and 3D), Virtual Reality, 3D Printing, IoT, or similar areas of work.
Education Summary
• Milwaukee School of Engineering - Milwaukee, Wisconsin
•• Bachelor of Science in Software Engineering, 2007
•• Minor in Technical Communications
Languages/Markup/Formats:
C#, C++, C++/CLI, C, JavaScript, Swift, Python, SQL, HTML5/CSS, SASS, JSON, XML, XAML, INI, CSV, Bitmap, PNG
Integrated Development Environments
Visual Studio, Visual Studio Code, XCode, Rad Studio/Borland Development Studio, Arduino, IntelliJ, Eclipse
Libraries/Technologies
.Net 8 - .Net Core 2.0, Azure, REST, Swift UI, .Net Framework, Nlog, Nunit, NuGet, WPF, WinForms, WinUI 3, Skia, UWP, TCP/IP, UDP, WCF, Aurora (Matrox) Imaging Library, MEF, JSON.Net, ScottPlot, Microsoft Prism, Caliburn Micro, OpenGL, XNA
Programming Paradigms/Architectural Patterns/Diagrams:
Procedural, OOP, SOLID, Event Driven, Clean Architecture, Layered Architecture, Monoliths, Modular Monoliths, Macro/Micro Services, Serverless, Assembly, UML, Class Diagrams, Sequence Diagrams
Tools
GitHub, Azure DevOps, Gitlab, JIRA, Git, TFS, SVN, Perforce, CVS, Windows, Linux, OS X, Crucible, Dev Track, Photoshop, XWiki, Paint.Net, Notepad++, UltraEdit, Beyond Compare, Microsoft Office
Past Roles
• Software Engineering
• Software Architecture
• Software Lead
• Business Owner
• Technical Communicator
• Mentor
• Product Lead
• Project Management
• Scrum Master
• Quality Assurance
Business Domains
Medical Devices, Regulated SW Development, Pharmaceuticals, Industrial Automation, Industrial/Machine Controls, Radionuclide Generators, Computer/Machine Vision Systems, Mobile Development, Internet of Things (IoT), Game Development, Web and Finishing Print Systems, Warehouse Systems, Label Printing
Technical Domains
User Interface / User Experience, Design Documentation, Design Patterns, Asynchronous Programming, Library Design, Logging, Performant Software, Realtime Programming, Cloud, 2D Rendering, API Design, Cybersecurity
Operating Systems/Containers/Databases
Windows, MacOS, iOS, Linux, Docker, SQLite, SQL Server, SQLCE
Development Tools
Git, GitHub, Gitlab, Azure DevOps, Jira, Jenkins, Jama, IBM Doors, Beyond Compare, Trello, SQL Server Management Studio, nDepend, Microsoft Project, Microsoft Office, Photoshop, Paint.Net, UltraEdit, Notepad++, TFS, SVN, Perforce, CVS, Crucible, Fish Eye, DevTrack
Standards
• IEC 62304 (Medical Device - Software life cycle processes)
• ISO 13485 (Medical devices - Quality management systems )
• ISO 14971 (Medical devices — Application of risk management to medical devices)
Certificates
AIA Certified Vision Professional - Basic Modern HTML & CSS - UdemyFuture Interests
AWS, Clang, GCC, STM32Cube, LLVM, LLDB, Rust, Zig, OCaml, Haskell, Erlang, Machine Learning (PyTorch/Tensor Flow), Simulation, 3D Rendering (WebGPU, DirectX, Apple Metal, Unreal, Vulkan), Direct2D, Data-Orientated Design, Functional Programming
Career Highlights
• Positively affecting over 2.2 million lives by designing and implementing software to produce diagnostic and therapeutic radiopharmaceuticals for the purposes of treating and diagnosing tumors, imaging organs, finding blood clots, and performing other medical procedures.
• Architecture and implementation for a next gen machine vision system, with an increased feature set, a node based graph for data storage and vision processing, and a self-managed custom thread pool, while meeting millisecond realtime performance requirements on a non-realtime OS.
•• This system was used for the production and automatic quality control of billions of manufactured items.
• Design and implementation for a machine vision system that generated a 3D topographical analysis of up to 36 simultaneous items.
• Design for a dual syntax Turing complete programming language and co-designed a corresponding multi-platform virtual byte code.
•• Intended for Nuclear Scientists to program fluid mechanical systems for moving pressurized radioactive and non-radioactive liquids.
• Architecture and implementation of a communication protocol that sent/received serialized lambda expressions, and compiled and executed the resulting code at run time to update a node graph data system to control camera hardware and vision algorithms.
• Architecture and implementation of a custom 2D multi-threaded sprite engine and user interface for a mobile game.
• Successful system redesign and deployment of a contracted team's failed project. Area's redesigned: Networking, Vision Processing, Vision Inspection, User Interface, and Camera Display systems.
• Created an automatic lock hierarchy detection system to record interactions between synchronization primitives across multiple applications.
• Misc: Multiple successful product submissions to the FDA. Cybersecurity research and proposals for medical devices. Mentoring engineers.
• Led efforts in various software life cycle phases for architecture, design, implementation, investigation of high priority field issues, change requests, defect/enhancement requests, the improvement of confidential FDA regulated processes, and delegated work to engineers, interns, contractors and contracting companies, while following company procedures and FDA regulations, and meeting project schedules.
• Worked with cross functional teams consisting of Firmware/Embedded Engineers, Electrical Engineers, Mechanical Engineers, System Engineers, Nuclear Pharmacists, Nuclear Chemists, Chemists, Microbiologists, Manufacturers, Service, Management, and Marketing teams for requirements analysis, system design, feature selection, and, verification and validation for various projects
• Training on various QMS, Software, Laboratory, Mechanical, and RA/QA processes.
• Interviewed over 180 candidates for roles in engineering, management, and other technical roles.
• Creation and review of FDA Audit ready documentation: Software Development Plans (based on IEC 62304), Code Standards, Review Standards, Software Requirements Specifications, Software Architecture Specifications, Software Design Specifications, Integration Tests, Standard Operating Procedures, Work Instructions, etc.
Past Work
NorthStar Medical Radioisotopes
Madison, Wisconsin
February 2017 to August 2023
Roles: Software Architect, Software Engineering Lead, Project Manager, Scrum Master, Product Lead
• Led sprints, planned projects using agile and waterfall based methodologies for an 11 person team of engineers.
• Created, estimated, and tracked road maps, user stories/reqs, deliverables, features, issue items, and reviewed individual task planning.
• Software architecture, design, implementation, and testing for NorthStar's current and next generation isotope separation system.
•• Architected a next generation edge and server based, event driven set of applications and services for an 8 figure IoT system and SW support infrastructure. The next gen system supports multiple clients, improved processing times, full system observability, integration with third party systems, live edge monitoring, and is designed for robust stability to meet customer expectations of reliability and availability.
•• Lead designer for a domain specific Turing complete programming language, for Nuclear Scientists, Microbiologists, and Service Personnel, and a corresponding virtual byte code designed to run on an embedded interpreter to control pressurized radioactive liquids for custom fluid movement systems.
•• Implemented a network protocol (OSI layer 7) library for clients and servers that sends event based messages via TCP/IP.
•• Implemented a set of libraries for asynchronous network and intra-process messaging, a custom thread-pool, and plugin loader, that allows new functionality to be added to apps without recompiling code via DLL based modules.
•• Implemented an observability library that allows for logging and user notices, unique occurrence tracking, multi-cultural user facing messages, run-time adjustable per item log levels, service and engineering message isolation, and is built with dependency injection.
•• Research into various technology choices for operating systems, development languages, and communication technologies.
•• Participated with an outside design firm on NorthStar's next generation user interface and mechanical designs.
• Led efforts into increased cybersecurity capabilities on current and next generation systems based on FDA Guidance and customer needs.
• Led efforts in various software life cycle phases for architecture, design, implementation, investigation of high priority field issues, change requests, defect/enhancement requests, the improvement of confidential FDA regulated processes, and delegated work to engineers, interns, contractors and contracting companies, while following company procedures and FDA regulations, and meeting project schedules.
• Worked with cross functional teams consisting of Firmware/Embedded Engineers, Electrical Engineers, Mechanical Engineers, System Engineers, Nuclear Pharmacists, Nuclear Chemists, Chemists, Microbiologists, Manufacturers, Service, Management, and Marketing teams for requirements analysis, system design, feature selection, and, verification and validation for various projects
• Training on various QMS, Software, Laboratory, Mechanical, and RA/QA processes.
• Interviewed candidates for roles in engineering, and other technical roles.
• Creation and review of FDA Audit ready documentation: Software Development Plans (based on IEC 62304), Code Standards, Review Standards, Software Requirements Specifications, Software Architecture Specifications, Software Design Specifications, Integration Tests, Standard Operating Procedures, Work Instructions, etc.
Role: Software Lead
• Software Engineering for the RadioGenix Isotope Separation System:
•• Requirements, Design, Implementation (C#), and testing of new features while following company procedures and FDA regulations.
•• Working with a cross functional team consisting of Firmware Engineering, Electrical Engineering, Mechanical Engineering, Pharmacists, Chemists, Microbiologists, Manufacturers, Service, Management, and Marketing teams.
• Led the investigation for a new Continuous Integration development process (Automated Builds, Agile Development processes, Kanban Board), a Requirements Management System, updates to NorthStar's Git branching strategy, and an Issue Tracker.
• Implementation of a GS1 barcode parsing library, reagent tracking library, part number control library, improved system logging, UI changes, general new functional changes across various apps, and a CGMP controlled software/document archive using SVN.
• Support for multiple FDA submissions, including the 1st submission of the RGX to the FDA for approval. Updates for the DHF, BPRs, Software Compatibility Matrix, Design Docs, & Change History.
• Participated in the Change Review Board and CAPA investigation process for software, company processes, and documentation.
• Led efforts in various software life cycle phases for architecture, design, implementation, investigation of high priority field issues, change requests, defect/enhancement requests, the improvement of confidential FDA regulated processes, and delegated work to engineers, interns, contractors and contracting companies, while following company procedures and FDA regulations, and meeting project schedules.
• Worked with cross functional teams consisting of Firmware/Embedded Engineers, Electrical Engineers, Mechanical Engineers, System Engineers, Nuclear Pharmacists, Nuclear Chemists, Chemists, Microbiologists, Manufacturers, Service, Management, and Marketing teams for requirements analysis, system design, feature selection, and, verification and validation for various projects
• Training on various QMS, Software, Laboratory, Mechanical, and RA/QA processes.
• Interviewed candidates for roles in engineering, management, and other technical roles.
• Creation and review of FDA Audit ready documentation: Software Development Plans (based on IEC 62304), Code Standards, Review Standards, Software Requirements Specifications, Software Architecture Specifications, Software Design Specifications, Integration Tests, Standard Operating Procedures, Work Instructions, etc.
Spacelabs Healthcare
Madison, Wisconsin
November 2015 to August 2016
February 2017 to February 2017
Role: Application/UI Engineer
Development of an Automatic Lock Hierarchy Detection System:
• This was a system designed to record, at runtime, the interaction of various synchronization primitives, across multiple applications, in a highly multithreaded anesthesia medical device. The results of this system were outputted in a human readable text and as a serialized call tree in json format. The text contained information on which process was using various locks, mutexes, semaphores, threads, and various communication mechanisms.
Development of a Tree Merger Application:
• This application would reading multiple json files containing serialized call trees and information on methods and synchronization primitives. The application would output a human readable file containing information on how various processes interacted via WCF through named pipes.
Role: Application/UI Engineer
• Software development for multiple Anesthesia Machine lines and to support third party hardware.
• UI Design and Development for the display unit of the Arkon and unreleased projects.
•• 1080P UI re-layout to allow for Arkon’s UI to be rendered at a higher resolution.
•• User Experience improvements with the 1080P UI.
•• New User Control design.
• Extending various utility applications.
• Rewriting existing requirements to conform to standards and to allow for better test development.
• Creation of requirements and design documentation.
• Investigating new technology choices including programming languages, software libraries, and third party hardware, for future development efforts.
• Merging code changes for large 100,000 lines plus code bases between unlinked branches.
• UEFI Application Development to allow for a 30 times faster system boot time.
• Code reviews, training material reviews, and employee mentoring.
• Training on required FDA and Spacelabs material.
Failure Analysis:• Field Critical Reset Issue investigation, solution discovery, and implementation.
•• Reverse engineering compiled libraries to determine the logic of obfuscated code via assembly.
•• Development of custom test applications to determine the events that caused the Critical Reset Issue.
•• Custom watchdog logic implementation and removal of select third party library calls in safety critical code.
• Log File Analysis for field issues.
• Live field Support.
Infrastructure Support:• OS Image Customization for Windows Embedded Standard 7 and Windows 10 IoT Enterprise.
• BIOS customization for third party hardware.
• Server and Internet installation and maintenance for the Madison Office.
• Research into cloud based backup solutions and office technology choices.
• Linux installation and configuration.
• XWiki Administration, MariaDB installation, and Jetty installation.
BigBot Systems
Brookfield, Wisconsin
December 2009 to December 2016
Role: Software Lead and Architect
• Team lead for a music puzzle game for the Windows Phone 8 and 7. Implemented with XNA in C#.
• Architect and Software Engineer of a custom 2D multithreaded sprite engine for the game.
• Quality Assurance, Legal, Accounting, and Web Development for the company.
QuadTech Inc.
Sussex, Wisconsin
October 2008 to October 2015
Role: Software Lead and Architect
• Architecture and Implementation for the 3rd version of the QuadTech Camera System (QCS).
•• An 11 Phase approach allows for incremental changes to the architecture while the software is deployed in monthly releases. The new version implements a MVVM UI, a node-graph based approach to data storage and flow, and a self-regulating thread pool to ensure high performance.
•• Wrote architectural plans, requirements, and design documentation.
• Re-architected and implemented the 2nd version of QCS, consisting of 52 separate projects, that was previously handled by a 5 member team, and left in a non-working state. This application runs on over 150 systems.
•• 40% performance improvement with a 75% CPU consumption reduction.
•• Systems redesigned in 7 months: Communication (TCP/IP & UDP), Vision Processing, Inspection, User Interface, and Display systems. Including a rewrite of large amounts of inefficient and poorly maintainable code.
• Additional vision related projects:
•• Ported a QuadTech UDP C++ network protocol to C# and refactored a native UDP C++ protocol for QCS.
•• Designed and implemented a serialized lambda expression communication protocol. This protocol is designed to work with MVVM and MEF based plugins.
•• Laser Press Integration, Error Tracking, Inspection History, Address Verification Inspection, Optical Character Recognition Inspection, Object Presence Absence Inspection, and the QCS Field Service Manual.
• Additional Work:
•• Rewrote a critical Windows service that monitors and updates applications for over 400 production lines.
This service also handles updating each line's Windows Operating System.•• Software Management System to deploy, upgrade, and track software applications and OS shells on all of Quad Graphic's vision systems and for potential use on their print lines. The system consisted of a client, multiple Windows services, and a MS Windows Shell, connected to a multi-location database infrastructure.
•• QTDotNet C# libraries. These libraries were used in 6 projects and provide a number of specialized classes and methods to increase code reuse.
•• Managing multiple projects, in separate problem domains, in a multicultural environment, while delegating tasks, reviewing Code, creating System Requirements Documents, and creating System Design Documents for various projects.
•• Participated in 5000+ code reviews.
•• Training and Mentoring of new software engineers and contractors.
Role: Software Engineer
• Mentored Lead Software Engineer for the software portion of a 2 million dollar project that saved a 30 million dollar customer contract.
• A machine vision system that generated a 3D topographical analysis of up to 36 simultaneous book forms (1 to 32 pages folded in half). These forms were in various physical conditions, and were scanned into 256 bit grey scale images at a rate of 180 scans per minute. The book forms were also analyzed for the correct code blocks using particle and histogram analysis.
• Development in multiple highly multi-threaded, memory sensitive, and performance sensitive code bases.
• Implementation:
•• Barcode rasterization for large volume publications (Examples include Time Magazine, Sports Illustrated, Wired, Kohl's Catalogue, Best Buy, etc.).
•• Image skewing algorithm to allow 120 DPI print heads to print at 170 DPI. Dynamic text arcing capability for Press Machines.
•• Added the capability to draw arched text in PCS. This led to the customer doubling sales and selling out of product within 24 hours.
•• XML layout control capability for inkjet printers, which allowed for quick implementation of new features and human readable print files.
•• QT UDP C++ protocol that was rewritten for PCS and supported a packet logging tool.
• Efficiency Increase for:
•• Printer Control System so that they could print at a max of 3000 feet per minute vs. the old 1800 feet per minute.
•• Message Check for the simulation of production jobs, decreased from a maximum of 60 hours to 25 hours for the longest jobs. This also increased user notification of simulation progress, created a better framework for memory management, and increased server performance.
RedPrairie (now Blue Yonder)
Waukesha, Wisconsin
June 2007 to October 2008
Role: Software Engineer
• Customer Specific Modifications for warehousing software in C#, SQL, MOCA, and C for national and international customers.
• Custom Reports for warehousing software with SQL, MOCA, and C.
• RF/UPC scanner software to support 3PL scanning technology with SQL/C.
• Debugging software for large multi-user integration systems.
• Onsite Travel and Training for Go-Live support for warehouse personal.
• Onsite Debugging and problem solving for critical system operations for multi-million dollar warehouses.
Internships
RedPrairie (Now BlueYonder)
Waukesha, Wisconsin
February 2007 to May 2007
Role: Intern
• Implemented features in C# and MOCA for RedPrairie Warehousing software.
• Quality Assurance for features created by other RedPrairie engineers.
Rockwell Automation
Milwaukee, Wisconsin
June 2006 to September 2006
Role: Intern
• Large-Scale testing for Rockwell's Embedded Touch Screens.
• C Programming and debugging on Embedded Systems.
Brady Corporation, Teklynx Division
Brookfield, Wisconsin
March 2006 to May 2006
Role: Intern
• JavaScript programming with mobile hardware.
Awards and Special Recognitions Received
Innovation Awards - QuadTech
• Design and Implementation of the Signature Recognition System: A High speed machine vision analysis of the correct layout of book bodies using vision algorithms.
• Design and Implementation of the Lambda Expression Communication Protocol: A protocol that allowed engineers to send data changes and events via small snippets of code that are dynamically invoked and executed at run time by the receiving host or client.
Boy Scouts - Brookfield, Wisconsin
• Eagle Scout and troop Quarter Master.