Bachelor's degree in Computer Science, Electrical Engineering, or related field; Master's preferred
5+ years of embedded software development experience
Proficiency in C/C++ and Python programming languages
Experience in a LINUX environment
Familiarity with GIT or other code repository systems
Solid understanding of TCP/IP protocol stack and multithreading
Experience with PID-based control for motion and temperature regulation
Responsibilities
Design, develop, and maintain embedded software applications for various platforms
Develop drivers for interfacing with motor controllers, cameras, and PLC systems
Collaborate with hardware engineers to define system requirements
Implement real-time operating systems (RTOS) and device drivers
Write efficient and reliable code in C/C++ for embedded systems
Conduct unit testing and debugging of software modules
Participate in code reviews and provide constructive feedback
Benefits
Competitive salary & equity opportunities
Medical, dental & vision insurance
Employer-paid life & disability insurance
401(k) with company contributions
Generous PTO & paid holidays
Daily catered lunch
Employee wellness & assistance programs
Career growth & development opportunities
Collaborative, innovative, and mission-driven work environment
Full Job Description
JOB TITLE: Embedded Software Engineer
LOCATION: Hawthorne, NY (on-site)
TYPE: Full time, regular
COMPENSATION: $115,000 - $155,000/yr
Role Summary:
The Embedded Software Engineer will be working alongside our existing software engineers, electrical engineers on medical device development. This role is multi-disciplinary with technical responsibility for designing, developing, and testing device control software, both at the driver and at the application level. We are looking for a team player who views medical device development as a competitive advantage.
Responsibilities:
Design, develop and maintain embedded software applications for various platforms, including microcontrollers and microprocessors
Develop drivers for interfacing with motor controllers, cameras, scanners, and PLC systems
Collaborate with hardware engineers to define system requirements and develop software architecture designs
Implement real-time operating systems (RTOS) and device drivers to support hardware functionality
Write efficient and reliable code in C/C++ for embedded systems, ensuring optimal performance and resource utilization
Conduct unit testing and debugging of software modules to identify and resolve defects
Participate in code reviews and provide constructive feedback to ensure code quality and maintainability
Work closely with cross-functional teams, including firmware engineers, hardware engineers, and QA testers, to integrate software components and validate system functionality
Stay updated on emerging technologies and industry trends related to embedded software development, and incorporate best practices into our development processes
Document software designs, specifications, and test procedures to support product development and regulatory compliance efforts
Collaborate with external partners and suppliers as needed to integrate third-party software components or tools into our embedded systems
Qualifications:
Bachelor's degree in Computer Science, Electrical Engineering, or related field. Master's degree preferred
5+ years of experience in embedded software development, with a strong proficiency in C/C++ and Python programing languages
Prior experience working in a LINUX environment
Prior experience working with GIT or other code repository systems
Solid understanding of the TCP/IP protocol stack
Solid understanding of multithreading and real-time embedded systems, including RTOS, device drivers, and hardware-software interfaces
Prior experience utilizing PID-based control for motion and temperature regulation
Experience with embedded development tools and environments, such as IDEs, debuggers, and version control systems
Familiarity with microcontroller architectures and peripheral interfaces (ex: Ethernet, Serial, UART, SPI, I2C, GPIO)
Familiarity with industrial communication protocols such as MODBUS
Knowledge of software development lifecycle (SDLC) processes and quality assurance principles
Strong analytical and problem-solving skills, with the ability to troubleshoot complex software issues
Excellent communication and teamwork abilities, with a collaborative approach to problem-solving
Demonstrated ability to work effectively in a fast-paced, deadline-driven environment
Prior experience in Agile development methodologies and continuous integration practices, a plus
Experience with robotics platforms like ROS or YARP, a plus
Experience interfacing with Clinical Lab Information Systems, a plus
Experience in addressing data security and compliance with HIPPA regulations, a plus
Histology laboratory workflow experience, a plus
Experience building visions systems for process and quality control, a plus
Company Offers:
Competitive salary & equity opportunities
Medical, dental & vision insurance
Employer-paid life & disability insurance
401(k) with company contributions
HSA & FSA options
Generous PTO & paid holidays
Daily catered lunch
Commuter benefits
Employee wellness & assistance programs
Career growth & development opportunities
Collaborative, innovative, and mission-driven work environment