Datafin

+ 27 (0) 21 741 0400 + 27 (0) 21 741 0400   CAREERS@DATAFIN.COM

Software Engineer (C#)

IT – Software Development
Johannesburg – Gauteng

ENVIRONMENT:
A Joburg-based provider of advanced IOT technology is looking for a Software Engineer who thrives on meeting deadlines and delivering high performance. The role involves designing, developing, and maintaining software applications, as well as analyzing complex problems. The ideal candidate will have the ability to break down intricate issues into smaller components and devise innovative solutions using their technical expertise. Collaboration is key, as the goal is to create efficient, reliable, and user-centric software applications that cater to the needs of businesses and end-users. This entails understanding user requirements, incorporating feedback, and delivering intuitive and user-friendly applications that add value and address real-world challenges. Additionally, the Software Engineer will play a crucial role in maintaining the organization’s security through the implementation of secure coding practices, comprehensive testing, and adherence to governance protocols.
 
DUTIES:
  • Delivery:  Deliver work according to commitments, both formal and informal, by completing assigned tasks within the agreed timelines.
  • Present completed work through demonstrations to showcase functionality and gather feedback.
  • Follow through on support requests, ensuring timely resolution and addressing any issues or defects.
  • Analysis, design and Estimation:  Produce high-quality and well-considered designs that clearly articulate requirements and planned implementation.
  • Provide estimates at an appropriate level of granularity that are accurate and realistic.
  • Quality of delivery:  Implement requirements, adhere to conventions, standards, and best practices to ensure clean and maintainable code.
  • Implement measures to prevent and detect defects, such as thorough testing and code reviews.
  • Ensure user interface (UI) design is consistent, visually appealing, and of high quality.
  • Quality of Code reviews:  Provide valuable and constructive feedback to peers during code reviews, helping to improve the overall quality and maintainability of the codebase.
  • Innovation & Skills Development:  Demonstrate a commitment to personal and professional growth by actively improving knowledge and skills.
  • Contribute to the continuous improvement of the team through sharing insights, innovative ideas, and suggestions for enhancing products, processes, or technologies.
 
REQUIREMENTS:
  • Programming Languages: Proficient in one or more programming languages, with a solid understanding of their syntax, features, and best practices.
  • Software Development: In-depth knowledge of software development methodologies, including Agile or Scrum, as well as familiarity with various programming languages and frameworks commonly used in software development.
  • Databases, Data Structures, and Algorithms: Strong understanding of fundamental data structures and algorithms, their efficiency, and appropriate use cases. Knowledge of database concepts and experience working with relational databases. Proficiency in writing SQL queries and familiarity with database management systems.
  • Version Control: Experience with version control systems, such as Git, and understanding of branching, merging, and code repository management.
  • Software Testing: Understanding of software testing principles, including unit and integration testing, and experience with testing frameworks and methodologies. Knowledge of automated testing tools to ensure software quality.
  • Continuous Learning: Demonstrated ability to stay updated with the latest software development trends, technologies, and tools. Self-motivated to learn new skills and adapt to evolving industry practices. Proactive in researching technologies and driving innovation within the team.
  • Technical skills: C#, JavaScript, CSS, HTML; SQL Server Database development, T-SQL; Knowledgeable of frameworks like React, Angular, or Vue.js; Understanding of Object Orientated (OO) principles, design patterns and N-tier architectures.
  • Advantageous: Exposure to Azure DevOps, CI/CD, Docker, .NET Core, SPA, React/Angular, Mobile Application Development.
 
Education:
  • University Graduate (Bachelor of Science Degree Electrical Engineering / Information Technology or equivalent is mandatory)  
Training:
  • Advantageous: Technical Certifications (AWS/Azure/MCSD); commercial development experience