Post Job Free
Sign in

Senior Embedded Software Engineer

Company:
Motion Recruitment
Location:
Boston, MA, 02298
Posted:
May 11, 2024
Apply

Description:

Senior Embedded Software Engineer (Android experience required)

Location: Boston, MA (Downtown)

Term: Permanent

We are seeking a highly skilled and experienced Senior Embedded Software Engineer to join our team. As a Senior Embedded Software Engineer, you will be responsible for designing, developing, and maintaining software for embedded systems. You will work closely with cross-functional teams, including hardware engineers, firmware engineers, and product managers, to deliver high-quality embedded software solutions. Your expertise in embedded systems, low-level programming, and software development will be crucial in ensuring the success of our products.

Requirements:

Proven industry experience as an Embedded Software Engineer, with a focus on embedded systems and low-level programming.

Strong proficiency in C/C++ programming languages for embedded systems.

In-depth knowledge of embedded systems architectures, real-time operating systems (RTOS), Android OS, and hardware-software interaction.

Experience with embedded development tools, debuggers, emulators, and compilers.

Experience developing software targeting embedded SoCs such as ARM, NXP, Microchip, etc.

Familiarity with communication protocols such as UART, SPI, I2C, Ethernet, and wireless technologies (Bluetooth, Wi-Fi, etc.).

Solid understanding of software development methodologies, version control systems, and software testing techniques for embedded systems.

Strong problem-solving skills and the ability to debug complex software and hardware integration issues.

Experience with agile development methodologies (e.g., Scrum) is advantageous.

Desired Skill Set:

Proficiency in radar signal processing techniques, DSP algorithms, and ML preferred but not essential.

Matlab/Simulink/Octave or similar tool knowledge

Experience implementing embedded software on multi-core processors.

Programming skill set with scripting languages (e.g. Python, TCL, Perl, etc.)

Personal Qualities:

We’d love you to be self-aware, thoughtful, empathetic, diligent, hard working, a lifelong learner, and a great team player. You’d show us that you have:

Strong interpersonal skills and the ability, perhaps even a passion, to build camaraderie and work effectively on difficult goals with a broad range of business and technical collaborators across cultures, skills, and time zones

Self-awareness to know your own superpower (nobody is great at all things) and the humility to permit others to exercise theirs on a team of accomplished specialists

Respect and empathy to recognize and support the goals of the company, your team, and colleagues in ways that build trust for people to feel safe to “disagree and commit” (The Amazon Way)

A work ethic that doesn’t quit, that recognizes that time-to-market is often the only thing that separates teams that win from those that don’t (“No matter how hard you work, someone else is working harder.” — Elon Musk)

Tenacity and a dogged determination to never give up

Innate hunger to constantly do better and evolve both your work product and yourself (You’re a lifelong learner)

The courage to move fast, break things, and ship products that people use (“Real artists ship.” — Steve Jobs)

Exceptional communication skills with attention to detail and precision in your spoken and written words and your work product

Education and Experience:

A Master's degree in Electrical Engineering, Computer Engineering, Computer Science, or a related field, or equivalent work experience

Real-world work experience in relevant roles in a commercial setting

Ideally, full life cycle experience with an electronics product that has shipped and achieved meaningful commercial success

Job Responsibilities

Design and develop software for different types of embedded systems, ensuring that it meets the requirements, and successfully taking it through the entire software development lifecycle until it is deployed in commercial products. This will include microcontrollers, DSPs, and FPGAs.

Collaborate with hardware engineers to define system requirements and specifications for embedded software development.

Write efficient, modular, and scalable code for embedded systems using languages such as C/C++.

Implement and optimize device drivers, board support packages (BSPs), and firmware for peripherals and communication interfaces.

Conduct thorough testing and debugging of embedded software to ensure high quality and reliability.

Work closely with the firmware team to integrate software and firmware components seamlessly.

Stay up to date with industry trends and emerging technologies in embedded systems to drive innovation and continuous improvement.

Collaborate with cross-functional teams to ensure successful integration of software with hardware and overall system functionality.

Participate in code reviews, architecture discussions, and technical design sessions to drive engineering excellence and maintain code quality standards.

Document software designs, specifications, and development processes for future reference and knowledge sharing.

Troubleshoot and resolve software defects and performance issues, ensuring timely and effective resolutions.

Apply