Hiring: Software Engineer (Randburg)
We are actively seeking a talented and driven Software Engineer to join a dynamic team.
Our client is a leading innovator in the mining industry dedicated to developing cutting-edge solutions that meet global demands.
This position offers an excellent opportunity to work on diverse projects alongside a collaborative team of engineers and professionals.
Key Responsibilities:
Collaborate with project leads and Engineering Managers to design, develop, and test code for various engineering projects.
Utilize established programming languages for existing projects; propose and implement new languages when appropriate.
Work closely with Electronic Engineers to contribute to hardware development under the guidance of the Engineering Manager.
Solve complex technical challenges by participating actively in cross-functional teams.
Conduct thorough code reviews to ensure adherence to high-quality standards.
Stay updated with emerging technologies and industry trends in software engineering.
Troubleshoot and debug software issues to optimize performance.
Provide engineering support to management, sales teams, and production as required.
Maintain regular communication with global teams, including reporting to Head Office and participating in international engineering meetings.
Skills and Requirements:
Minimum of 4+ years of proven experience in Software Engineering.
Bachelor's degree in Computer Science, Engineering, or related field.
Proficiency in programming languages such as Java/JavaScript, Python, C & C++.
Experience with frameworks such as Node.js and React is advantageous.
Familiarity with IDEs such as Visual Studio, VS Code, and Arduino IDE.
Strong understanding of database design and implementation using SQL-based databases (e.g., SQLite, MySQL, MSSQL).
Knowledge of version control systems (e.g., Git) and agile development methodologies.
Hands-on experience in front-end GUI development (HTML, CSS, JavaScript/jQuery).
Familiarity with network communication protocols (e.g., TCP/IP, MODBUS, CAN) and IC communication protocols (e.g., I2C, SPI, UART).
Experience with embedded systems and microcontroller-based projects (e.g., Raspberry Pi, Arduino).
Excellent problem-solving skills with attention to detail.
Ability to work independently and collaboratively in a team environment.
Willingness to travel occasionally as required.