Staff Engineer- Linux Application Developer
- Remote, Hybrid
- Dallas, Texas, United States
- Macnica
Job description
About Macnica:
Macnica Americas, Inc. is the North American division of Macnica Fuji Electronics Holdings, Inc. a $10 billion technology solutions provider with a stronghold in semiconductor distribution. Macnica excels in customizing solutions to client requirements and leveraging skilled engineers to expedite product development without compromising outcomes for our clients.
Company perks:
- 15 days of vacation, plus 12 days of national holidays
- 40 hrs. of paid sick time off
- Health, dental, and vision insurance
- 401 (k) with company matching
- HSA/ FSA
Job Summary:
We are seeking a highly skilled and experienced Staff Embedded Engineer to join our dynamic team. This role requires a proactive and hands-on professional with expertise in embedded systems, software development, multimedia frameworks, and protocol management. As a Staff Engineer, you will be involved in designing, developing, and maintaining advanced embedded systems while collaborating with cross-functional teams to achieve product milestones.
Responsibilities:
- Develop, implement, and maintain complex Linux applications, writing efficient code primarily in C/C++ or other relevant languages. Optimize applications for performance and reliability in resource-constrained environments.
- Integrate Linux applications with various subsystems, including multimedia, network protocols, and device drivers, ensuring seamless communication and interoperability.
- Analyze and optimize application performance at both software and system levels, using profiling tools and techniques to enhance responsiveness, stability, and resource usage.
- Provide solutions to complex issues in collaboration with other team members.
- Work closely with hardware, firmware, and product teams to understand hardware dependencies, application requirements, and overall product goals.
- Develop thorough documentation for applications, APIs, and system integration points.
- Conduct and participate in code reviews to ensure code quality and maintainability across the team.
- Engage with stakeholders as needed to gather requirements, provide updates, and manage expectations regarding project timelines, deliverables, and potential challenges.
- Drive continuous improvement by identifying and addressing inefficiencies in software and hardware interfaces.
Job requirements
Requirements:
- Ability to travel up to 10%
- Design and develop embedded software solutions for various platforms, ensuring high performance and reliability.
- Architect, code, and optimize embedded applications and systems using C, C++, STL, Python, and shell scripting.
- Excellent in Linux programming, IPC, multi-threaded programming & Socket programming.
- Utilize object-oriented design principles (UML, design patterns) to build scalable and maintainable software.
- Debug and troubleshoot issues using tools such as GDB, Valgrind, Clang, TCP dump, and Wireshark.
- Proficiency or familiarity with one of the build systems such as CMake, Make or Ninja.
- Work with embedded systems build environments (Buildroot, Yocto).
- Awareness of Linux driver models, including board bring-up processes, Bootloaders and Device tree concepts.
- Knowledge of communication protocols, including UART, I2C, SPI, TCP, UDP.
- Understanding of real-time operating systems (RTOS), such as FreeRTOS or Zephyr, and their integration within embedded systems.
- Multimedia frameworks (GStreamer, FFmpeg) to handle audio and video functionalities in embedded environments using protocols RTSP and RTP is preferred.
- Ability to collaborate and write integration code on cloud technologies including REST APIs, MQTT, AWS, and SaaS for connected device solutions.
- Familiarity with version control systems like Git, SVN, or Mercurial for code management and version tracking.
- Experience setting up unit tests, integration tests, and system tests in the CI/CD pipeline.
- Domain knowledge in Pro-AV/Broadcast or Imaging solutions is a plus.
Education:
- Bachelor’s or Master’s degree in Computer Science, Electrical Engineering, or related field.
- Minimum 8 years of hands-on experience in embedded systems development.
- Dallas, Texas, United States
or
All done!
Your application has been successfully submitted!