Job Overview
We are seeking a highly skilled and innovative Software Engineer to join our dynamic team. The successful candidate will be responsible for designing, developing, and maintaining a wide range of software solutions across embedded systems, web applications, and data management platforms. This role offers an exciting opportunity to work on cutting-edge projects involving Internet of Things (IoT), machine learning, and large-scale data processing. The ideal applicant will possess strong analytical skills, a passion for technology, and the ability to collaborate effectively within multidisciplinary teams.
Duties
- Develop and maintain software applications across various platforms including Linux, Windows, and embedded systems.
- Design and implement firmware for hardware components such as FPGA, ARM processors, and Raspberry Pi devices.
- Write clean, efficient code using programming languages such as C++, Python, Java, C#, JavaScript, PHP, Perl, Visual Basic, and Objective-C.
- Create and optimise databases using MySQL, Microsoft SQL Server, and SQL for data storage and retrieval.
- Develop APIs and integrate third-party services via RESTful interfaces to enhance application functionality.
- Conduct thorough debugging, testing (including unit testing), and troubleshooting of software issues to ensure high quality standards.
- Collaborate with hardware teams on signal processing, soldering tasks, and firmware development for embedded systems.
- Utilise version control tools such as GitHub, GitLab, SVN, and Jenkins for continuous integration and deployment workflows.
- Engage in software testing automation to improve reliability and efficiency of development cycles.
- Participate in system analysis using UML diagrams and Confluence documentation to support project planning.
- Implement network protocols including TCP/IP, UDP, DHCP, VoIP over Ethernet/WAN/Wi-Fi networks while ensuring security through encryption techniques.
- Contribute to the development of IoT solutions involving Zigbee modules, Raspberry Pi boards, and cloud services like AWS.
- Assist in system optimisation through OS kernel tuning, signal processing algorithms with MATLAB/Simulink or LabVIEW environments.
- Support software quality assurance initiatives by conducting code reviews and adhering to industry standards.
Qualifications
- Proven experience in software development with a strong understanding of embedded systems programming.
- Proficiency in multiple programming languages including C++, Python, JavaScript, Java, C#, PHP, Perl, Visual Basic or Objective-C.
- Familiarity with FPGA design tools as well as hardware soldering skills is advantageous.
- Experience working with databases such as MySQL or Microsoft SQL Server; knowledge of SQL queries is essential.
- Strong understanding of networking protocols including TCP/IP, UDP, Ethernet/WAN/LAN configurations; experience with network monitoring is desirable.
- Knowledge of cloud computing platforms like AWS along with REST APIs integration skills.
- Experience with version control systems such as GitHub or SVN coupled with CI/CD pipelines using Jenkins or similar tools.
- Ability to develop UI/UX components using HTML5/CSS3/Node.js frameworks; experience with front-end frameworks is a plus.
- Familiarity with operating systems including Linux distributions (Ubuntu/Red Hat) and Windows environments.
- Analytical skills combined with problem-solving capabilities for complex system analysis tasks involving big data or machine learning models.
- Excellent organisational skills with the ability to manage multiple projects concurrently under tight deadlines.
This position offers an engaging environment where innovation is encouraged and professional growth is supported through continuous learning opportunities in emerging technologies such as IoT devices and AI-driven solutions.
Pay: £29,394.45-£82,897.91 per year
Benefits:
Work Location: In person