Ryan Corbin
Email: Corbin.Ryan (at) gmail.com
Skills
Firmware/Software
Languages: C/C++, Python, Java, C# .NET
Processors: Cypress PSOC 4, STM32 (ARM Cortex-M Series), PIC24 and PIC16, RabbitCore Modules
Embedded Linux Platforms: Freescale i.MX 6UL, ASUS RT-AC68U (Broadcom ARM), ASUS RT-N66U (Broadcom MIPS), Gumstix COM (ARM Cortex-A8)
Source Control: Atlassian Bitbucket, Git, GitHub, and SVN
Project Management Tools: Atlassian Jira, Redmine, EasyRedmine
Hardware
Circuit Design and Layout (USB, Bluetooth, Ethernet)
Eagle CAD and gEDA CAD
Work Experience
Senior Embedded Software Engineer
HillRom, Cary, NC 08/2016 – Present
Embedded Engineer for nurse call devices responsible for providing on-time delivery of high quality firmware, including:
Performed low-level device bring-up of prototype nurse call devices. This included diagnosing hardware design errors, software bugs, and Linux device tree / kernel module issues.
Developed bash scripts and C/C++ applications to support UL 1069 (Standard for Hospital Signaling and Nurse Call Equipment) and FCC EMC testing.
Involved in system design for next generation nurse call product line, working with business analysts and system engineers on product requirements. Turned product requirements into technical requirements, generating system and software requirements, and network protocol specification documents.
Provided engineering support to contract manufacturer, minimizing the effect of production issues on delivery time tables.
Lead Engineer of the Functional Test (FCT) system for nurse call product line. Responsible for overseeing and approving the work of a third-party design firm’s mechanical and electrical designs.
Developed on-device functional test framework and test routines in C++.
Created production test software and test procedures used to verify initial prototypes.
Led quality improvement efforts that aimed to reduce rate of software defects found in the field:
Promoted code quality by supporting and educating the team about good git versioning control procedures such as feature branches and git flow and pull requests. Encouraged all team members to participate in code reviews.
Worked with Quality Assurance and DevOps departments to establish procedures and documentation for releasing production firmware. Communicated established procedures to hardware and software teams.
Setup build system for production firmware to allow for reproducible images to be produced.
Participated in HillRom’s Project Management Essentials course, learning how to self-manage small projects.
Embedded Software Engineer
Anuva Innovations, Morrisville, NC 03/2014 – 08/2016
Played a key role in developing low level firmware for new medical and commercial devices. Worked collaboratively on a team with hardware, mechanical, and software engineers throughout the product development life cycle.
Supported a home automation product line comprised of various Embedded Linux platforms (Broadcom MIPS and Broadcom ARM). This included setting up the platform build process (Yocto, Buildroot, OpenEmbedded, Makefiles), designing the application architecture (written in C and C++), and planning and implementation of the system’s network protocol.
Designed a generic framework, in C++, that allowed the home automation system to integrate with third-party devices. The framework translated our protocol into the protocol of the third-party device through the use of highly configurable and extendable XML “driver” files. Utilized the Standard Template Library and Boost regular expression library.
Improved release management by working with the software team to update company policies for proper requirements / specification documentation, git version control, bug and issue tracking in Redmine and JIRA.
Advocated for the adoption of the Agile scrum process. Acted as informal Scrum Master for a software team of 4-5 engineers. Used scrum metrics, such as burndown velocity, to plan and monitor sprint and release progress.
Improved system quality by instituting quality assurance and end user acceptance testing policies. Utilized the Zephyr Test Management System for JIRA to plan test cycles, write test cases, and manage test execution during QA phases.
Administered and supported company servers running git, svn, Redmine, doku wiki, and file shares. Wrote bash scripts to automate routine tasks such as new user and git repository creation.
Lead Firmware/Hardware Engineer
GlueLogix, Hillsborough, NC 12/2007 – 09/2009, 06/2011 – 03/2014
Took multiple projects from initial concept through to prototype phase. This included hardware tasks, such as circuit design, component selection, printed circuit board layout, hand assembly, testing, and troubleshooting. Communicated with customers to refine prototypes into final products.
Most projects included writing embedded firmware in C, as well as, custom-designed test harnesses utilizing Python on the Gumstix embedded Linux platform.
Highlighted Projects
Printer Emulator and Capture Device
Designed a custom daughterboard for Gumstix Overo COM that incorporated USB, Serial, Parallel, Ethernet, Wifi, and Bluetooth interfaces. Modified the Linux USB gadget kernel module to enable proper simulation of HP DeskJet printers. Designed a linux kernel module that implemented a IEEE 1284 parallel peripheral driver. Wrote emulation and capture software in Python.
Rugged Interconnectivity Board For Military Use
Lead hardware design and layout efforts on a custom daughterboard for Gumstix Overo COM that incorporated 7 USB Interfaces, 3 Ethernet Interfaces, GPS module with discrete antenna, and several power regulation and control circuits. Oversaw board level testing and quality assurance for the prototype phase.
Automotive Distracted Driving Solution
Designed hardware controller board that integrated a PIC24F microcontroller, an nBlue Bluetooth LE module, and USB into a system that aimed to prevent distracted driving. Designed, developed, and maintained system firmware.
Implemented framework to support manufacturing. Developed C# .NET application to facilitate order management and unit programming. Application tied unit serial number to customer order, and programmed unit with customer-defined configuration.
Co-owner
WeeBee Consulting L.L.C., Cary, NC 07/2009 – 07/2010
Maintained all aspects of the business, while consulting on various electronics projects. Projects included aiding the development of a CAN protocol based application on the Omnima Embedded Linux Controller based on the Infineon ADM5120.
Test Operator
Catalyst Manufacturing Services, Morrisville, NC 06/2007 – 02/2008
Was responsible for operating board and box level test fixtures for various electronic products to insure quality. Identified problems such as missing, lifted, and broken components.
Education
B.S. Electrical Engineering Technology
University of North Carolina at Charlotte, Charlotte, NC 08/2009 – 05/2011
Honors: magna cum laude, Tau Alpha Pi, George Rawlins Scholarship
A.A.S. Electronic Engineering Technology
A.A.S. Computer Engineering Technology
Wake Technical Community College, Raleigh, NC 08/2006 – 05/2009
Open Source Contributions / Hobby Projects
Open On-Circuit Debugger (OpenOCD)
Updated and expanded existing driver for the OpenJTAG programmer to work with the latest version of OpenOCD.
AWS IoT SDK for Embedded C Devices
Updated library to support latest changes in mbedTLS project.