As a Senior Software Engineer you will be working alongside the entire multidisciplinary Mbryonics team. Our 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 and 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
* You will be responsible for developing software on a variety of embedded platforms, from microcontrollers interfacing with peripheral devices to powerful embedded controllers running full operating systems with advanced networking capabilities.
* You will develop architectures, APIs, and technical requirements to ensure that our systems meet business needs and scale to support dynamic market requirements.
* You will help to grow and manage our CI/CD platforms so that they can accommodate complex versioning and testing operations.
* You will lead by example and help the team develop best practices with regards to programming, architecture, code quality and version control.
* You will develop software according to Mbryonics’ quality standards and procedures.
* You will follow Mbryonics’ SCRUM framework adoption and participate in reviews and SCRUM ceremonies to ensure compliance with these standards and processes.
The Senior Software Engineer Will Be Responsible For
* Generating software requirements documents, using adopted and proven requirement management systems and practices.
* Generating software architecture documents that guide 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 our independent software testing capabilities, setting the 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 the Product Owner.
* Coaching our existing software team and instilling a work ethic of excellence, innovation and collaboration.
Requirements/Technical Skills/Education
* 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 industry.
* 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 that result 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.
#J-18808-Ljbffr