Position Name: Software Engineer - Heldekruin
Reporting to: AIOps Lead
Job Purpose:
The Software Engineer plays a vital role in the development and maintenance of high-quality software solutions. This position involves collaborating with cross-functional teams to design, implement, and enhance software applications, while providing technical leadership and expertise throughout the software development lifecycle. The Software Engineer is responsible for delivering efficient, scalable, and reliable software solutions that meet the needs of the organization and its stakeholders
Key Job Outputs:
-
Development: Design, code, test, and debug software applications in accordance with established coding standards and best practices.
-
Technical Leadership: Provide guidance and mentorship to junior engineers, assisting in their skill development and promoting best practices within the team.
-
Software Architecture: Contribute to the design and architecture of software systems, ensuring scalability, maintainability, and extensibility.
-
Documentation: Create and maintain technical documentation, including specifications, system designs, and user manuals, to facilitate efficient development and maintenance processes.
-
Collaboration: Collaborate with cross-functional teams, including product managers, designers, and quality assurance, to understand requirements and translate them into technical solutions.
-
Problem Solving: Identify and resolve complex technical issues, debugging and troubleshooting software defects, and implementing effective solutions.
-
Quality Assurance: Conduct thorough code reviews to ensure code quality, adherence to coding standards, and implementation of best practices.
-
Continuous Improvement: Stay updated with industry trends and emerging technologies, recommending process improvements, and implementing innovative solutions to enhance software development practices.
Key Responsibilities:
-
Develop high-quality software solutions, including coding, testing, debugging, and maintenance activities.
-
Collaborate with stakeholders to gather and analyse requirements, translating them into technical specifications and designs.
-
Design and implement software architecture, ensuring scalability, performance, and maintainability.
-
Identify and resolve technical issues, debugging and troubleshooting software defects, and implementing effective solutions.
-
Conduct thorough code reviews to ensure code quality, adherence to coding standards, and implementation of best practices.
-
Create and maintain technical documentation, including specifications, system designs, and user manuals.
-
Stay updated with industry trends, emerging technologies, and best practices in software development.
Key Requirements:
-
Bachelor's or Master’s degree in Computer Science, Software Engineering, or a related field.
-
Proven experience as a software engineer, with a focus on designing and developing complex software applications.
-
Strong proficiency in programming languages such as Java, C++, Python, or similar languages.
-
Solid understanding of software development methodologies, principles, and best practices.
-
Experience with software development tools and frameworks, including version control systems, IDEs, and testing frameworks.
-
Strong problem-solving skills and the ability to debug and troubleshoot complex technical issues.
-
Excellent communication and collaboration skills, with the ability to work effectively in a team environment.
-
Demonstrated leadership abilities, with experience mentoring and guiding junior engineers.
Competencies:
-
Technical Expertise: Possesses a deep understanding of software engineering principles, algorithms, and data structures, with the ability to apply them effectively in software development.
-
Analytical Thinking: Demonstrates strong analytical and problem-solving skills, with the ability to dissect complex problems and propose innovative solutions.
-
Attention to Detail: Pays close attention to detail, ensuring accuracy and precision in software development tasks and documentation.
-
Collaboration: Works collaboratively with cross-functional teams, effectively communicating and sharing ideas to achieve common goals.
-
Adaptability: Adapts to changing requirements, technologies, and project demands, quickly learning new tools and technologies as needed.
-
Leadership: Exhibits leadership qualities, guiding and mentoring junior engineers, and promoting a positive and productive
Familiar with the following programming Languages and frameworks:
-
Python: A versatile language known for its simplicity, readability, and vast ecosystem of libraries and frameworks.
-
JavaScript: The primary language for web development, used both on the client-side and server-side with frameworks like Node.js.
-
Java: A widely adopted language, particularly for enterprise-level applications and Android development.
-
C#: Developed by Microsoft, C# is used for building applications on the .NET framework.
-
TypeScript: A superset of JavaScript that adds static typing and enhanced tooling support.
Front-end Development:
-
React: A JavaScript library for building user interfaces, known for its component-based architecture and virtual DOM.
-
Angular: A comprehensive front-end framework maintained by Google, providing tools for building large-scale applications.
-
js: A progressive JavaScript framework that offers an approachable learning curve and great performance.
Back-end Development:
-
js: A JavaScript runtime built on Chrome's V8 engine, used for building scalable server-side applications.
-
Django: A high-level Python framework that promotes rapid development and follows the model-view-controller (MVC) architectural pattern.
-
Ruby on Rails: A popular framework for building web applications in Ruby, emphasizing convention over configuration.
Mobile App Development:
-
Swift: The programming language used for iOS and macOS app development.
-
Kotlin: A modern programming language used for developing Android applications.
-
Flutter: A framework developed by Google for building cross-platform mobile apps using a single codebase.
Database Languages:
SQL (Structured Query Language): The standard language for managing relational databases.
NoSQL (Not Only SQL): A category of databases that provide flexible and scalable data storage options, such as MongoDB (document-based), Cassandra (column-based), and Redis (key-value store).
-
Familiar with Microsoft Power Platform low-code and no-code tools
-
Familiar with API development
We reserve the right not to make an appointment to any advertised position.
Whilst preference is always given to existing employees and the choice made purely on merit, Historically Disadvantaged Candidates and Disabled Candidates are encouraged and supported in the FSG team. Fidelity Security Group (Pty) Ltd supports global fair practice and business ethics on continuous development of our human capital as the key resource to our success in the markets in which we participate. Should you not be contacted regarding this position within 10 working days from the closing date, please regard your application as unsuccessful.