Job Description
Senior Software Engineer
Crawley – Hybrid
£50,000 - £60,000
The Senior Software Engineer will lead the development of software applications from initial design to coding, ensuring requirements are defined and met.
* Oversee software application development stages, including concept creation, requirements definition, design, and coding.
* Collaborate closely with mechanical, electrical, and electronics engineers to drive successful project outcomes.
* Monitor and manage all software requirements and related issues within a project.
* Develop reliable software, with particular focus on fault management, reporting, and application health monitoring.
* Create and maintain supporting documentation, such as interface control documents, user manual inputs, fault codes, and response actions.
* Assist customers with integration, commissioning, and troubleshooting, which may occasionally involve on-site support.
* Understand and incorporate customer technical requirements and operational concepts into the broader project scope.
* Collaborate with the Project Manager, Technical Authority, and Quality team to identify risks, issues, and opportunities.
* Keep the engineering team informed of key developments and provide technical insights to aid the project manager in maintaining the project plan and monthly review update.
Essential Skills for a Senior Software Engineer:
* Solid educational background in a relevant technical field
* Proficiency in embedded software design with strong knowledge of associated hardware
* Robust mathematical capabilities
* Track record of successful leadership in technical software projects
* Comprehensive understanding of software engineering principles
* Experience in embedded software design and broad familiarity with related hardware
* Competence in writing C/C++ code for embedded applications
* Expertise in designing and developing control systems, especially in the areas of motor control principles, theory, and interfaces
Desirable Skills:
Embedded Software/Firmware Experience:
* Experience utilising STM32 processors and the Keil uVision development environment and associated tools
* Proficiency in various communication protocols such as Ethernet, RS422/UART, CAN, SPI, etc.
* Skilled in hardware interfacing, including GPIO, ADCs, DACs, and related components
Windows/User Interface Development:
* Understanding of developing desktop applications and user-centric interface design
* Familiarity with the Qt and Qt Creator multiplatform development environment in C++
* Experience with Visual Studio for C++ and C# programming
* Knowledge of low-latency programming techniques
* Expertise in networking concepts (TCP/UDP)
General Software Skills:
* Proficient in the use of source control systems, particularly SVN and Git
* Experience with Jira and Confluence for software requirements and task management
* Familiarity with unit testing tools and technologies
* Competence in static code analysis