Our team based in Cape Town is looking for a Lead .Net Engineer to build high-performing, scalable, enterprise-grade applications & build capability in others to do the same. This includes but is not limited to applying critical thinking, design thinking and problem solving skills in an agile team environment to solve complex technical problems (Front End, Back End and Integration) with high quality solutions & leading all phases of the development lifecycle to deliver.
Key critical requirements:
- 8+ years development experience
- Tertiary education in Computer Science or related field
- Cross domain knowledge
- Must have worked on the MS stack in the last 2 years
- .Net Core experience (Linux)
- Beneficial technical skills – .Net core, Rancher, Kubernetes, Docker
- Ways of Working – experience with actively working in an agile manner i.e. Kanban, Scrum etc
- Good understanding of scrum and agile practices
- Strong analytical and creative problem-solving skills, with excellent attention to detail
- Flexible about working with new methodologies and technologies
- A solid understanding of OOP principles
- SOLID design principles
- Design patterns experience
- Proficient understanding of code versioning tools
- Good understanding of C# technology
- Experience using ORMs such as Entity Framework or NHibernate
- Experience of WCF technology (advantageous)
- Domain Driven Design (DDD) and Test Driven Development (TDD) (advantageous)
Outputs What are the key performance areas and daily responsibilities?
- Build reusable software components and libraries for future use across multiple projects
- Design, code, test, debug and document software according to the functional requirements
- Analyse, diagnose and resolve errors related to their applications
- Keep abreast of technical and industry developments
- Work closely with developers and a variety of end users to ensure technical compatibility and user satisfaction
Key accountabilities: DevOps
- Apply critical thinking, design thinking and problem solving skills in an agile team environment to solve complex technical problems (Front End, Back End and Integration) with high quality solutions
- Contribute to and in some cases lead all phases of the development lifecycle including e.g. design process Determine operational feasibility of solutions by evaluating analysis, problem definition, business requirements, solution development and proposed solutions
- Develop high quality software / application design and architecture in a test driven & domain driven / cross domain environment
- Quickly produce well-organised, optimized, and documented source code to deliver technical solutions
- Ensure designs & solutions support the technical organisation principles of self-service, repeatability, testability, scalability & resilience
- Apply general design patterns and paradigms to deliver technical solutions
- Create & Maintain Sophisticated CI / CD Pipelines (authoring & supporting CI/CD pipelines in Jenkins / Azure Devops or similar tools and deploy to multi-site environments supporting and managing your applications all the way to production)
- Use & configure modern observability techniques to provide a deeper understanding of the application. To do this, leverage e.g. aggregated logging via ELK stack, metrics via Prometheus / Grafana / NewRelic and distributed tracing like Zipkin/Jaeger etc.
- Automate tasks through appropriate tools and scripting e.g. Docker, Ansible, Kubernetes
- Debug existing source code and polish feature sets.
- Work with guilds and other technical SMEs to improve and evolve technical products and services
- Apply unit testing frameworks and perform integration, validation and verification testing (apply knowledge of stubbing tools e.g. wiremock, hoverfly etc.)
- Apply version control and related concepts and techniques
- Align all application development & development process to Group Architecture, Security & Infrastructure guidelines
- Work with project & program teams (when required) to plan & manage the development lifecycle e.g. releases, risk management, testing, integration etc.
- Conduct reviews, performance monitoring & ongoing optimization and maintenance on applications
- Stay ahead of the curve on emerging technologies and development practices e.g. scripting languages, containerization etc.
- Contribute to the design & evolution of Group Architecture, Infrastructure & associated technical standards for the organization
We deliver a wide range of Digital products (which includes mobile-, web applications and APIs) This opportunity will span across Corporate, Investment, Client and Colleague based projects with the ultimate deliverable being to implement new solutions