Software Engineer
We are looking for a Software Engineer to develop Python-based software solutions for controlling hardware on Linux. You will build and maintain frameworks and GUI tools, collaborate with internal engineering teams, and take full ownership of projects from design to delivery.
Responsibilities
- Design, develop, and maintain Python-based software solutions including frameworks, internal tools, and GUI applications.
- Collaborate with internal customers such as chip designers, algorithm engineers, and optics engineers to understand requirements and translate them into robust solutions.
- Take ownership of projects: define solutions, design architectures, implement, integrate, and support production-ready tools.
- Extend existing frameworks and tools, and develop new ones from scratch.
- Work within Linux environments, integrating software with hardware interfaces, drivers, and engineering workflows.
- Apply OOP principles and design patterns to build scalable, maintainable software architectures.
Requirements
- B.Sc in Electrical or Software Engineering.
- 1-2 years of relevant experience.
- Proficiency in Object-Oriented Programming (OOP) and solid understanding of design patterns.
- Experience with GUI development (PyQt or similar frameworks).
- Interest in hardware systems, circuits, or engineering workflows.
- Hands-on experience in Linux systems, including software/hardware interaction and exposure to drivers.
- Strong analytical and problem-solving approach.
- Good communication skills and ability to work closely with multidisciplinary engineering teams.
Nice to have
- Familiarity with SerDes, optics, or related hardware.
- Experience with DevOps, CI/CD, or containerized development environments.
- Knowledge of REST APIs and backend frameworks (Django, FastAPI) including data validation tools (Pydantic).
- Experience with databases (e.g., MongoDB) and visualization tools (e.g., Matplotlib).