Overview
We are seeking a highly skilled and innovative Software Engineer to join our dynamic team. The ideal candidate will have a strong background in software development across various platforms and technologies, with experience in embedded systems, application development, and network communications. This role offers the opportunity to work on cutting-edge projects involving Internet of Things (IoT), machine learning, and big data analytics, contributing to the development of high-quality software solutions that meet industry standards. The successful applicant will be involved in designing, developing, testing, and maintaining software applications that are integral to our technological advancements.
Duties
- Design, develop, and implement software solutions across multiple platforms including embedded systems, mobile applications (Android, iOS), and web environments.
- Write clean, efficient, and well-documented code using languages such as C++, Python, Java, C#, PHP, JavaScript, and Objective-C.
- Develop firmware for embedded hardware components using soldering techniques and signal processing methods.
- Integrate hardware components with software systems through APIs and communication protocols such as TCP/IP, UDP, Ethernet, Zigbee, Wi-Fi (IEEE 802.11), VoIP, and WAN technologies.
- Conduct debugging, troubleshooting, and testing of software applications to ensure optimal performance and reliability.
- Collaborate with cross-functional teams using tools like GitHub, GitLab, Jenkins, Jira, Confluence, UML diagrams, and version control systems to manage project workflows effectively.
- Perform software quality assurance through unit testing, test automation frameworks, and continuous integration practices.
- Analyse system requirements and develop technical specifications for new features or enhancements.
- Participate in code reviews to maintain high standards of code quality and adherence to best practices in software engineering.
- Contribute to the realisation of IoT solutions involving Raspberry Pi or similar hardware platforms; implement security measures such as encryption for data protection.
- Stay abreast of emerging trends such as machine learning algorithms, big data processing (MySQL, Microsoft SQL Server), cloud computing (AWS), and application development frameworks like .NET or Node.js.
Experience
- Proven experience in software development within a professional environment or academic setting.
- Strong proficiency in programming languages including C++, Python, Java, C#, PHP, JavaScript; familiarity with Objective-C is desirable.
- Hands-on experience with embedded software development using ARM microcontrollers or FPGA programming is advantageous.
- Knowledge of operating systems such as Linux and Windows; experience with OS kernels is preferred.
- Familiarity with network protocols including TCP/IP, DHCP, DNS; experience with network monitoring tools is beneficial.
- Experience working with APIs (RESTful services), cloud platforms (AWS), version control systems (GitHub/GitLab/SVN), and CI/CD pipelines (Jenkins).
- Skills in hardware soldering combined with signal processing expertise are a plus for roles involving IoT devices or firmware development.
- Demonstrated ability to perform software testing—unit tests, integration tests—and utilise test automation tools effectively.
- Strong analysis skills with the ability to interpret complex technical requirements into practical solutions. This role offers an exciting opportunity for a motivated Software Engineer eager to contribute to innovative projects within a collaborative environment that values technical excellence and continuous learning.
Job Type: Full-time
Pay: £35,450.00-£82,560.00 per year
Benefits:
- Casual dress
- Free parking
- On-site parking
- Sick pay
- UK visa sponsorship
Application question(s):
- Current where do you live?
Work Location: Hybrid remote in London SE8 5HY