Software Engineer - Embedded Systems
Main Responsibilities:
- Collaborate with experienced engineers in the design, coding, testing, and maintenance of software applications.
- Develop and maintain embedded software modules using programming languages such as C++ and Python.
- Implement networking solutions to ensure seamless communication between software components.
- Contribute to the development of software tools, libraries, and frameworks to enhance product quality and efficiency.
- Participate in code reviews, providing constructive feedback to improve code quality and adherence to coding standards.
- Troubleshoot and resolve software defects and technical issues in collaboration with the team.
- Support the integration of software components on Linux operating systems.
- Assist in the testing and validation of software features to ensure functionality and performance meet specified requirements.
- Utilize cloud technologies to enhance software deployment and management.
- Work closely with cross-functional teams, including product managers and designers, to understand requirements and contribute to technical discussions.
- Maintain clear and organized documentation of software designs, development processes, and tasks.
- Demonstrate strong teamwork and communication skills, both oral and written.
- Lead the design, development, and implementation of advanced satellite ground segment software systems, ensuring high performance, scalability, and reliability.
Required Qualifications:
- Bachelor's or Master's degree in Computer Science, Computer Engineering, Electrical Engineering, or a related field.
- 4+ years of experience in software development, with a focus on embedded systems.
- Basic understanding of networking concepts and protocols.
- Proficiency in using the Linux operating system.
- Familiarity with cloud technologies is a plus.
- Strong analytical and problem-solving skills.
- Ability to collaborate effectively within a diverse team.
- Excellent oral and written communication skills.
- Enthusiasm for learning new technologies and tools.
- Detail-oriented with a commitment to producing high-quality software.
- Experience designing software with consideration for hardware resource constraints.
- Experience in software development for satellite communication systems is a plus.