Software Engineer
Role details
Job location
Tech stack
Job description
We are seeking a highly skilled Software Engineer to join our innovative team. The successful candidate will be responsible for designing, developing, and maintaining a wide range of software solutions across various platforms. This role offers the opportunity to work on cutting-edge projects involving embedded systems, IoT, machine learning, and big data analytics. The ideal applicant will possess strong technical expertise, excellent problem-solving skills, and a passion for developing high-quality software products., * Develop and maintain software applications using languages such as Python, C++, Java, C#, and JavaScript.
- Design and implement firmware and embedded software solutions for hardware platforms including FPGA, ARM, Raspberry Pi, and other microcontrollers.
- Collaborate with cross-functional teams to integrate APIs, optimise system performance, and troubleshoot complex issues related to signal processing, networking (Ethernet, TCP/IP, UDP), and security (encryption).
- Conduct code reviews, unit testing, and software quality assurance to ensure robustness and reliability of deliverables.
- Utilise version control tools such as Git, SVN, and GitHub for efficient code management.
- Develop user interfaces (UI) using HTML, CSS, and frameworks like Node.js or Visual Studio.
- Implement software testing automation frameworks and perform debugging to resolve bugs swiftly.
- Work with cloud services such as AWS and utilise tools like Jenkins for continuous integration/deployment pipelines.
- Analyse system requirements using UML diagrams and modelling tools like Confluence or MATLAB.
- Solder components on circuit boards as needed for hardware-software integration projects involving IoT devices or signal processing modules.
- Document technical specifications and collaborate on project management using Jira or similar tools.
Requirements
Do you have experience in Python?, * Proven experience in software development with a strong background in embedded systems programming using C/C++, Python, or Java.
- Familiarity with FPGA design workflows and hardware description languages such as VHDL or Verilog is desirable.
- Hands-on experience with Android application development using Objective-C or Java is advantageous.
- Knowledge of database management systems including MySQL, Microsoft SQL Server, or PostgreSQL.
- Proficiency in Linux operating systems along with shell scripting (Bash) for automation tasks.
- Experience working on Internet of Things (IoT) projects involving Zigbee, MQTT protocols, or Raspberry Pi platforms.
- Strong understanding of network protocols such as TCP/IP, DHCP, VoIP, WAN/LAN architectures.
- Ability to perform signal processing analysis using MATLAB or Simulink; familiarity with UML modelling techniques is preferred.
- Demonstrated skills in software troubleshooting, test automation frameworks like Jenkins or Selenium, and version control systems such as Git or SVN.
- Excellent analysis skills with the ability to interpret complex technical data and develop innovative solutions. This role offers an exciting opportunity to contribute to pioneering projects within a dynamic environment that values technical excellence and continuous learning. We seek motivated individuals eager to develop their careers in a collaborative setting focused on technological innovation across multiple domains including AI, machine learning, big data analytics, and IoT systems.