Embedded Software Engineer
Role details
Job location
Tech stack
Job description
- Develop and implement software applications using languages such as Python, C++, Java, C#, and JavaScript.
- Design and optimise embedded software for hardware platforms including ARM, 32 and 16 bit microcontrollers.
- Collaborate on the development of firmware and signal processing algorithms for IoT devices and sensor systems, specifically from Nordic Semiconductors.
- Utilise tools like MATLAB, Simulink, and LabVIEW for simulation, analysis, and testing of electronic systems.
- Implement APIs and RESTful services to facilitate communication between distributed systems over TCP/IP, Ethernet, and WAN networks.
- Conduct debugging, unit testing, integration testing, and software troubleshooting to ensure high-quality deliverables.
- Use version control systems such as GitHub, GitLab, SVN, and Jenkins for code management and continuous integration.
- Participate in system architecture design using UML diagrams and OS Kernel analysis to optimise performance.
- Engage in software quality assurance processes including test automation and code reviews via tools like Jira and Confluence.
- Support network monitoring, security protocols such as encryption, and the implementation of VoIP solutions within projects.
Requirements
Do you have experience in Zigbee?, We are seeking a highly skilled and innovative Software Engineer to join our dynamic development team. The ideal candidate will be responsible for designing, developing, and maintaining software solutions across a variety of platforms and applications. This role offers an exciting opportunity to work on cutting-edge projects involving embedded systems, IoT devices, and large-scale data processing. The successful applicant will possess strong technical expertise, excellent problem-solving abilities, and a passion for technological advancement. This is a paid position suitable for both experienced professionals and recent graduates eager to develop their careers in software engineering., * Proven experience in software development with proficiency in languages including Python, C++, Java, C#, PHP, Perl, Visual Basic, HTML/CSS/JavaScript.
- Strong understanding of embedded systems programming with knowledge of FPGA development (VHDL/Verilog), ARM architecture, soldering skills preferred.
- Experience working with IoT protocols such as Zigbee, MQTT; familiarity with Raspberry Pi or similar platforms is advantageous.
- Knowledge of database management systems including MySQL and Microsoft SQL Server; experience with SQL queries essential.
- Familiarity with networking concepts such as TCP/IP, DHCP, DNS; experience with network monitoring tools beneficial.
- Ability to work with operating systems like Linux (Ubuntu), Windows; experience with OS Kernels is desirable.
- Competence in using development tools such as Visual Studio, Eclipse; experience with Jenkins or similar CI/CD pipelines preferred.
- Strong analysis skills combined with the ability to troubleshoot complex technical issues efficiently.
- Excellent organisational skills with the ability to manage multiple projects simultaneously under tight deadlines.
- Relevant qualifications in Computer Science or Electrical Engineering are preferred; professional certifications are a plus. This position offers an engaging environment where innovation is encouraged and professional growth is supported through ongoing training opportunities. We value diversity within our team and are committed to fostering an inclusive workplace that promotes creativity and excellence in technology development.