I have a variety of experience in embedded, desktop, and network application design. I'm a professional hardware and software engineer, and have worked as an IT administrator and an electronics technician. My strong problem solving skills and intuitive nature enable me to adapt to a wide variety of tasks.
Experience
2023 — Now
2022 — 2023
2018 — 2022
2018 — 2022
Livermore CA
• Helped to build agile team for rewrite of CANopen tools in WPF using .NET 5. Served as technical lead on team, implementing core functionality, ensuring compliance to internal and external specifications, and reviewing nearly every change to ensure code quality.
• Designed architecture and implementation plans for application including definition of backlog items and identification of parallel paths and shippable milestones. Communicated architecture through code, UML diagrams, and docs. Remotely pair programmed with Jr engineers to help them come up to speed and get productive.
• Designed and implemented CANopen communications stack focusing on maintainability, extensibility, and logging to help debug issues in field. Achieved high degree of unit test coverage.
• Initialized repository with rational structure for documentation, code, and unit tests. Configured team code cleanup rules, developed DevOps pipeline for CI and release builds. Pipelines included automatic deployment of docsite and application.
• Developed code coverage tool to convert test coverage report from DotCover to a format compatible with Phabricator to provide coverage metrics in code reviews.
• Introduced ticketing system which is now in use by all software and application engineers, and by product support group at Curtis CA to support customers and internal users in several locations around the world.
• Worked with team to create wireframes and workflows and helped gather user feedback in organized discussions with end users. Helped create and perform live demos of applications during pre-release period.
2016 — 2017
2016 — 2017
Livermore, CA
Late addition to team developing CANopen WinForms (.NET Framework 4.x) application for programming and configuring Curtis motor controllers. Main contributions include:
• Introduction of cloud services, including a licensing scheme, automatic application updates, crash reports and user feedback,
• Development of administrator console for managing licenses, user feedback, and
• Development of tool for formatting the display of vehicle parameters information published to cloud services for use by users of the application.
• Training of users on the use of development tools and administrator console.
• Writing and execution of validation plan
Helped to modernize DevOps at Curtis
• Worked with IT and senior management to specify and procure server hardware for use by software teams. Drafted policies for interfacing with IT, provisioning and naming virtual machines, and configuring builds with Jenkins.
• Created common library for Jenkins pipelines using Jenkinsfile
• Introduced unit test tools to organization and wrote first code with unit test coverage. Trained other users on unit testing.
2012 — 2015
2012 — 2015
Auburn, Il
Main responsibilities include developing updates for existing products, developing and supporting test equipment in a manufacturing environment, and maintaining our documentation website. Also involved in peer-review process for hardware and software designs.
Designed CAN-enabled force sensor for large farm implement, meeting customer's size requirements by working closely with manufacturing and mechanical engineers to ensure fit and manufacturability. Designed schematic, PCB, and all firmware for the sensor.
Implemented HAL, driver, and application libraries for USB HID device on NXP LPC processor. Application code was used to program language and settings files to a handheld moisture tester and to serve as a test interface during final assembly.
Developed software updates for an internationally-distributed, US Government-Certified grain analysis machine. Also responsible for improving and supporting software for creating calibrations, programming, and testing those machines on the production line. Helped to develop a simplified process for distributing and installing 2013 calibrations for the same machine.
Designed and implemented intranet websites to display test data and project tracking information using both ASP.net forms and JavaScript libraries. Created web-facing API and accompanying C# library to provide access to the test database for out-of-network applications.
Designed schematics and multi-layer PCBs with through-hole and surface mount components for circuit board assemblies.
Helped to develop and support a modular 'universal' test platform for the sensors produced by DICKEY-john.
Education
University of Nebraska at Omaha