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