Principle Software Engineer - Architect
Role details
Job location
Tech stack
Job description
The Principle Software Engineer - Architect is responsible for design, development, testing and support of new and existing software components for Envipco's Reverse Vending Machines. The Principle Software Engineer - Architect is responsible for identifying, documenting and implementing new functionality. The successful candidate will work with the Validation team to create and execute comprehensive test plans. The Principle Software Engineer - Architect will also be responsible for research and documentation of new and existing defect resolutions., * Collaboration: Work with cross-functional teams (Support, Validation, Product Management) to align architectural goals with product requirements.
-
System Architecture:
-
Define high-level software architecture, and design modular, scalable components; tailored for global interworking systems.
-
Design and document software architecture for Linux based products and servers, defining component interactions and interfaces.
-
Define and document interfaces between system-level components, including kernel modules, drivers, and middleware.
-
Technical Leadership: Lead design reviews, mentor team members, and promote coding standards.
-
Hardware/Software Integration: Collaborate with hardware teams to incorporate new processing systems and debug complex system interactions.
-
Performance Optimization: Analyze and optimize processing systems for utilization, power consumption, and real-time responsiveness.
-
Linux Mastery: Deep understanding of Linux internals, including system programming, OS kernel, and middleware.
-
Requirements: Translate functional requirements into technical specifications and design documentation.
-
Tools: Experience with tools such as UML for modeling, Git for version control, Jira for work process control, and Jenkins based CI/CD pipelines.
Requirements
Do you have experience in iOS development?, Do you have a Master's degree?, * Bachelor's or Master's degree in Computer Engineering, or Computer Science.
- 15-20 years of experience in Linux software development
- 2-3 years experience in a technical leadership or design role.
Technical Skills
- Programming Languages:
- Expert-level proficiency in C and C++.
- Proficient in Python.
- Proficient with MySQL
Bonus Skills
- Experience integrating vision systems into embedded systems.
- Experience integrating TinyML/ML into embedded systems.
- Experience developing Android / iOS mobile applications or services.