About this role
About the Role Senior Embedded Software Engineer responsible for designing and implementing robust firmware and software for high-speed data processing and networking in a hybrid in-person/office role in Melville, NY. What You'll Do
- Design and implement robust, scalable, and multi-threaded object-oriented software in C++, Linux, Python and C# to address complex challenges in high-speed data processing and networking.
- Design and implement robust, scalable, and multi-threaded driver level and higher embedded firmware in C, for 8-bit and higher microprocessor-based electronics using basic operating systems and RTOS. Linux and other OS based embedded skills are highly desirable.
- Create, conduct, automate and document Quality Assurance tests to validate firmware/software releases to ensure high product quality.
- Create software in LabView or Visual Studio for GUI based software used in test fixtures for production or product evaluation.
- Develop innovative algorithms for controlling image acquisition parameters and for managing efficiency.
- Analyze, identify, and optimize system performance issues, applying strong problem-solving skills and engineering expertise.
- Provide comprehensive options and plans to implement firmware/software tasks including providing accurate effort estimates to project management.
- Produce comprehensive design documentation detailing software architecture, algorithms, implementation strategies, test procedures and reports.
- Collaborate closely with hardware engineers during board bring-up, system integration, and debugging activities.
- Contribute to a collaborative development environment by leveraging version control (Git), participating in code reviews, workflow discussions, maintaining and improving department procedures. What We're Looking For
- Bachelor’s or Master’s degree in Computer Engineering, Software Engineering, Electronics, or Electrical Engineering.
- Hands-on experience in embedded systems development.
- 7+ years of experience in C and C++ design and programming for embedded applications.
- Proven experience developing in a Linux environment for ARM target processors.
- Solid understanding of operating system concepts, including processes, threads, mutexes, and exception handling.
- In-depth understanding of embedded design principles, including C/C++ memory management, microprocessor architectures, instruction efficiency, and I/O timing.
- Knowledge of TCP and UDP networking protocols
- Familiarity with automated testing, continuous integration, and deployment pipelines
- Extensive experience with build systems, especially CMake, and with compilers and related toolchains.
- Experience with scripting languages (e.g. Python), build systems, and version control systems (e.g., Git).
- Advantageous Skills and Knowledge: Image Processing, Camera Systems, Containerization (Docker), DevOps & CI/CD (GitLab CI/CD), Version Control with Git/GitLab.
- Target Base Salary Range: $130,000 - $160,000 Nice to Have
- Image Processing: Familiarity with image processing techniques, libraries, or frameworks
- Camera Systems: Experience working with camera hardware and software interfaces
- Containerization: Experience with Docker and containerization for software deployment and development
- DevOps & CI/CD: Familiarity with GitLab, GitLab CI/CD, or similar platforms for continuous integration and deployment
- Version Control: Experience collaborating within distributed teams using Git and GitLab Compensation & Benefits
- Salary range: $130,000 - $160,000 per year
- Incentive Bonus Plans
- Medical, Dental, Vision benefits
- 401K with Company Match
- 10 Paid Holidays
- Generous Paid Time Off Packages
- Employee Stock Purchase Plan
- Paid Parental & Family Leave
- And more!