Embedded Software Engineer
Role details
Job location
Tech stack
Job description
Employees in this role are responsible for designing, developing, testing, and maintaining software applications and products to meet customer needs. The position participates in the full software development lifecycle, including software architecture design, development, testing, deployment, and ongoing support., * Engage with customers to understand use cases, pain points, and requirements while advocating for user-centric software solutions.
-
Design, develop, and deliver solutions using various programming languages, frameworks, methodologies (including Agile), and technologies.
-
Assess software requirements and determine appropriate technology stacks, integration methods, and deployment strategies.
-
Develop high-level software architecture designs, defining structure, components, and interfaces.
-
Collaborate with cross-functional teams, including Product Owners, Designers, Architects, and other stakeholders.
-
Define and implement software testing strategies, guidelines, policies, and processes aligned with organizational objectives, industry regulations, and best practices.
-
Continuously improve application performance, optimize solutions, and evaluate new technologies to maximize development efficiency.
-
Apply modern software engineering practices including:
-
Test-Driven Development (TDD)
-
Continuous Integration (CI)
-
Continuous Delivery (CD)
Support security best practices, including data encryption and anonymization.
Create intuitive, interactive, and user-friendly interfaces.
Develop and maintain backend applications, APIs, and microservices using server-side technologies.
Evaluate and incorporate emerging technologies and participate in development across evolving technology stacks, often through industry collaboration.
Requirements
- MATLAB Modeling
- Embedded Software Development
- Software Testing
- Unit Testing
- Integration Testing
Preferred Skills
- Hardware Experience
Required Experience
Engineer 3
- Practical experience in two programming languages or advanced expertise in one programming language
- 6+ years of IT experience
- 4+ years of software development experience
Preferred Experience
Hands-on experience with:
- Embedded C development
- MATLAB development
- Software testing
- Hardware testing
- Low-level code debugging
Additional experience preferred in:
- Embedded C
- MATLAB
- Integration Testing
- Low-layer code debugging
- LIN
- CAN
- Diagnostics
- NVM
- HIL Testing
- Requirements Management
- Algorithm Design from requirements
Education Requirements
Required
- Bachelor's Degree or Master's Degree