Software Engineer
Role details
Job location
Tech stack
Job description
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., * 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.
Requirements
Do you have experience in Software development?, * 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.
Benefits & conditions
Pulled from the full job description
- Sick pay
- Free parking
- Casual dress
- UK visa sponsorship
- On-site parking