Firmware Engineer, Durham, North Carolina
Role details
Job location
Tech stack
Job description
In recent years, Medication Management Solutions (MMS) has built on this history through a significant expansion into the high-growth pharmacy automation space and is now one of the global leaders in pharmacy automation. The Pharmacy Automation platform positions BD to offer our pharmacy customers a more comprehensive set of smart, connected care technologies as they expand care to new settings, centralize their pharmacy operations and lead the charge in addressing some of the biggest challenges facing the industry - health care worker burnout and the global clinician shortage. BD's Pharmacy Automation portfolio covers a wide range of hardware and software technologies from storage and dispensing robots, vision solutions, pouch packagers, vial filling systems, blister card production systems, central fill solutions and enterprise pharmacy management software., Responsible for designing, developing, and testing all aspects of automation and robotic motion control systems. This well-rounded engineer will apply their knowledge of software, electrical, and mechanical engineering to design and improve products including robotics, servo systems, communications networks, and supervisory control systems., * Kinematic analysis and development of complimentary control algorithms associated with robotic systems.
- Develops control algorithms and is responsible for design and implementation of the control system for early prototype and proof of concept robotics.
- Writes and documents the code needed to drive the motion control system of our products.
- Interacts and drives architectural and design changes in the mechanical and electrical design of the system to improve system performance related to the control systems.
- Selects and interfaces with vendors as necessary.
- Works with Legal department in evaluating intellectual property as it relates to current and new concepts
- Complies with regulatory requirements and company design procedures.
- Some travel required (~2-3 trips/year)
Requirements
- Bachelor's degree in Computer Science, Electrical Engineering, or a related technical field
- 5+ years of hands-on development experience in C# and C/C++
- Proficiency with object-oriented programming and software design principles.
- Experience with Visual Studio, .NET, and common C/C++ toolchains.
- Strong debugging and problem-solving skills.
- Familiarity with source control systems (e.g., Git).
- Ability to work effectively in a collaborative, fast-paced environment.
Preferred Experience:
- Object oriented software development (C#, C++)
- Experience with .NET Framework and Standard edition
- Working knowledge of UML state machine theory and practical application
- Robotic control theory, including servo systems and PID controllers
- Cross platform software development experience
- Familiarity with CAN bus networking
Work environment and physical demands
The characteristics described below are representative of those encountered while performing the essential functions of this position. When properly requested and when feasible (without undue hardship to the company), reasonable accommodations will be made to enable individuals with disabilities to perform essential job functions.
- Work will primarily be in an office setting with limited opportunities to be exposed to adverse environmental conditions.
- Work will be primarily working with fingers by picking, pinching, typing, and grasping often with repetitive motion.
- Must have visual acuity for viewing a computer screen, the ability to talk, hear and sit for extended periods of time.
- Must be able to carry, lift and push/pull up to 5 pounds frequently and up to 30 pounds occasionally.
- Additional physical duties may be required as necessary.