Job Title: Senior Embedded Software Engineer
Location: Galway, Ireland
Description:
Mbryonics is a leading company in free space optical communications. Our product portfolio covers emerging technologies including photonic integrated circuits, advanced optical systems, and embedded software solutions. Our optical communication systems are integrated and deployed in satellite communication systems.
Our work is exciting and challenging, at the forefront of technology domains.
Role:
As a Senior Software Engineer, you will work alongside our multidisciplinary team. This team comprises photonics engineers, optical engineers, mechanical engineers, software engineers, mechatronics engineers, digital engineers, physicists, mathematicians, con-ops engineers, and business operations specialists.
You will be a lead and mentor to a team of various levels, leading by example. You will be involved in all stages of the software development life cycle from requirements gathering, design, implementation, testing, and maintenance on unique cutting-edge technologies.
Responsibilities:
* Developing software on various embedded platforms, from microcontrollers interfacing with peripheral devices to powerful embedded controllers running full operating systems with advanced networking capabilities.
* Developing architectures, APIs, and technical requirements to ensure our systems meet business needs and scale to support dynamic market requirements.
* Helping to grow and manage our CI/CD platforms to accommodate complex versioning and testing operations.
* Leading by example and helping the team develop best practices regarding programming, architecture, code quality, and version control.
* Developing software according to Mbryonics' quality standards and procedures.
* Following Mbryonics' SCRUM framework adoption and participating in reviews and SCRUM ceremonies to ensure compliance with these standards and processes.
Key Responsibilities:
* Generating software requirements documents using adopted and proven requirement management systems and practices.
* Generating software architecture documents guiding the development of scalable, modular software systems with clean application programming interfaces.
* Generating design and test documents following various standards including ECSS (European Cooperation for Space Standardisation).
* Participating in internal and customer-facing reviews.
* Developing system and application software on primarily embedded Linux systems.
* Developing software on embedded systems running real-time operating systems.
* Creating peripheral device drivers by liaising with electronics and hardware engineers.
* Growing our CI/CD pipeline to accommodate complex build tooling and version control.
* Developing independent software testing capabilities, setting foundations for code quality processes.
* Ensuring all architectures and systems utilise robust security mechanisms.
* Leading by example the adoption of SCRUM methodology and framework processes together with the SCRUM Master and Product Owner.
* Coaching our existing software team and instilling a work ethic of excellence, innovation, and collaboration.
Requirements:
* Bachelors degree or higher in Computer Science, Computer Engineering, or equivalent field.
* Proven experience developing embedded software for embedded Linux, RTOS, and microcontrollers.
* Proven experience developing production-level software solutions in telecommunications, robotics, medical devices, automotive, aerospace, or similar industries.
* Experience writing software for low-level interfaces such as UARTs, CAN bus, I2C, RS-422, and similar interfaces.
* Experience with network interfaces and protocols such as Ethernet, TCP/IP, and UDP.
* Experience with high-level protocols and data formats such as HTTPS, DHCP, XML, JSON, YAML, HTML.
* Strong experience with both functional and object-oriented programming in C, C++, and Python.
* Experience developing high-level applications that include full stack web functionality, databases, connection to cloud APIs.
* Experience managing version control systems and pipelines, with an emphasis on GIT.
* Experience implementing security mechanisms, including authentication and authorisation systems, and familiarity with SAML, X.509, PAM, OATH, SSO, and related protocols and approaches.
Desired Skills:
* Ability to read and understand technical specifications related to the programming of integrated circuits.
* Familiarity with or exposure to digital logic, FPGAs, SoCs, SoMs.
* Some familiarity with GUI development for the creation of internal utility applications.
Diversity, Inclusion and Equal Opportunities:
Core ethical values, diversity, and inclusion are invaluable to Mbryonics' business success. We recognise that the broad perspectives resulting from recruiting, developing, and retaining a globally diverse workforce promotes innovation and helps us succeed as a business enterprise. It is the policy and practice of the Company to provide equal opportunities to all employees and applicants. The Company will not tolerate discrimination on the basis of gender, race, religion, sexual orientation, gender identity, civil status, family status, disability, age, or membership of the Traveller community.