Senior Software Engineer
Role details
Job location
Tech stack
Job description
You will work as part of a small, focused team responsible for developing and supporting a complex software platform used across multiple hardware products. The role spans the full software development lifecycle-from requirements analysis and system design through implementation, verification, release, documentation, and post-delivery support-within a structured, quality-driven engineering environment.
The position involves development across multiple layers of the software stack, including low-level bootloaders and Linux kernels, hardware interfacing and management services, system-level Linux applications, networking and control protocols, and user-facing interfaces. You will also contribute to maintaining and improving development tooling, CI pipelines, and automated test infrastructure.
Key Responsibilities
Design, develop, and maintain embedded and GNU/Linux-based software for networking and systems products. * Act as a software representative within cross-functional product development teams. * Lead the delivery of new software features from initial concept and requirements through to release. * Create and maintain test specifications and automated test scripts to support development and release activities.
Requirements
Degree in Software Engineering, Computer Science, or a related discipline. * Strong proficiency in C within a GNU/Linux development environment. * Proven experience delivering software across the full development lifecycle. * Familiarity with scripting languages such as Python and Bash. * Experience developing software that uses networking technologies and protocols (e.g., TCP/IP, Ethernet). * Working knowledge of configuration management, version control, and CI/CD tools. * Exposure to Agile or iterative development methodologies.