Senior Software Engineer – Durban
Our client is looking for an experienced, dynamic Software Engineer design, enhance, customize, and maintain our system designs through a variety of analysis and development tasks (see Responsibilities section below).
This individual will architect, analyze, design, build, and verify new high-performance systems for our access control products (and devices/modules included with them).
Duties and Responsibilities
- Analyze and evaluate software requirements; collaborate with colleagues and customers to gather and define product requirements
- Assist in product design and architecture development
- Design, develop and maintain software systems to satisfy documented software requirements
- Facilitate and assist in the task estimation process
- Work and communicate in a cross-functional team environment comprised of software engineers, quality assurance engineers, product line managers, and customer support representatives, etc.
- Investigate and analyze reported software defects to resolve them in a timely manner
- Proactively provide status, raise issues, and communicate necessary information to appropriate team members on a regular basis
- Prepare, present, and participate in technical discussions and code reviews
- Contribute to the continued development of processes to improve the efficiency and quality of development projects; assist in formulating standards and development practices to improve the software development process
- Work with all departments to continuously improve product, process, workflow, and customer experience
- Make recommendations and assist in the implementation of new processes and tools
- Consult with firmware engineers and other engineering staff to evaluate interfaces between hardware & software and operational & performance requirements of the overall system
Essential Skills and Experience
- Strong understanding of the software development lifecycle, including design, architecture, and implementation
- Common design patterns
- Experience with databases such as SQL Server or SQLite
- Working knowledge of the following
- REST
- Web Sockets
- Source code management and configuration
- Containerization
- Unit testing, integration testing, regression testing
- C#
- Eclipse IDE
- Jenkins
- Linux
- MQTT
- React storybook
- React (3+ years)
- HTML/CSS (5+ years)
- JavaScript (ECMAScript 6 and higher – at least 5 years)
- NPM
- OR
- Java (5+years)
- Maven
- In-depth core java knowledge (Concurrency, generics, streams, lambda etc)
Work Requirements
Travel and fieldwork including international travel may be required, therefore employee must possess or can acquire valid travel authorization.