We are Haefele Software. We are a boutique software development firm, established in London 2006, with a growing team of 55 between London, Cape Town (primarily), Johannesburg, and Melbourne.
We are engineering-focused and build high-performance Agile teams, enjoying complex problems, serving a variety of industries and clients, generally abroad.
As a collective, we strive to be surrounded by equally personable, sharp, and growth-minded people, in a space that values relationships, people first, and pragmatic process, to foster the mentor and the mentorable.
Intermediate C# .NET/.NET Core Developer
An Intermediate Developer at Haefele Software takes the skills and experience they’ve acquired and applies them to work in an existing high-performance agile process-oriented team. Intermediate Developers at Haefele Software take full responsibility and accountability for the work they take on or are assigned. They push themselves and their team members to get the job done in the most intelligent way possible.
Usually working in existing architecture, under the guidance and mentorship of more senior team members, they are expected to deliver high-value, working software to the highest quality standard within a reasonable timeline.
They are excellent collaborators, contributors, and communicators, wasting no time guessing at solutions; they research or gather the right people to achieve the best outcome for the team, solution, and project.
At Haefele Software, Intermediate Developers are the heartbeat of any team. They are the pacesetters. They are responsible for guiding interns and juniors to deliver high value to our clients.
Your first 6 months at Haefele Software
Everyone starts at Haefele Software by learning our processes. Our staff experience team will ensure you have all your hardware, gear, and swag on your start date. You’ll need to work through our onboarding guide to get yourself set up and comfortable on our communications platform (MS Teams and Office 365) and added to the relevant groups and channels for the project team you will be joining. You’ll meet your team, client, and the broader engineering team.
You’ll get to know your Technical Lead and Development Practice Lead, and you’ll complete our fundamentals training program using our internal learning platform. You’ll receive regular structured feedback from your team, and your Tech Lead will help you set goals and track their progress on the road to professional improvement.
Your mission will be:
- Proactively contribute to our client’s software solution to the standard set out by Haefele Software and the team.
- Key contributor and participant in all scrum activities.
- Diligent in approach to completing tasks ensures that any work is completed to the best of their ability.
- Challenge existing and defines new technical solutions during planning to deliver the best solution to our clients.
- Take responsibility for continued learning and professional growth.
- Mentor and teach junior team members to reach the highest possible levels of performance.
- Hold themselves and their team members to a very high standard of delivery.
- Contribute to sprint retros and help the team to continuously improve.
- Complete internal training from time to time.
- Complete external professional certifications from time to time.
- Working in a high-pressure team environment.
- Key contributor in building or extending features on client-focused project(s).
- Experience designing a solution or part of a solution.
- Consulting on a solution with the team and client.
Essential Personal Skills
- High EQ and ability to read the personalities around them to extract the best results from their team members.
- An open-minded collaborator with a growth mindset.
- Able to self-motivate, never sits idle.
- Makes technical decisions for the project based on data.
- Identifies opportunities to learn and grow your experience and value within the team.
- Favours teamwork and collaboration over individual delivery.
- Favours outcome over output.
- Loves a challenge, leans into complex tasks, especially in areas they are unfamiliar with.
- Comfortable with ambiguity, good at digging into a vague requirement and getting clarity.
- Uses standard approaches to problem-solving where possible. Implementing novel solutions only where no solution to the problem exists in the community or other projects.
- Clear and professional communicator. Able to clearly articulate ideas and explanations with team members and stakeholders alike.
- Conscientious problem solver, diligent in solving the tasks you are assigned.
- A fervent researcher. Has a good understanding of how to go about solving technical challenges.
Essential Technical Skills
- Demonstrable knowledge and professional experience using Object-Oriented Software development patterns.
- Demonstrable knowledge and professional experience using Domain-Driven Design principles, Test-Driven Design principles and SOLID software patterns and practices.
- A solid foundational understanding of Agile Software Delivery and supporting methodologies like Scrum or Kanban.
- Solid experience working in Agile Project Management tools like Azure DevOps or Atlassian Jira.
- Demonstrable knowledge and experience using standard source control systems like Git, VSTS or SVN and their supporting tools.
- Demonstrable knowledge and experience with typical Integrated Development Environments like Visual Studio and Visual Studio Code.
- Experience building or contributing to cloud-first solutions in Azure, AWS, or Google Cloud.
Essential Technical Competencies
- Highly competent and knowledgeable in the C# programming language in .NET Framework/.NET Core.
- Highly competent and knowledgeable in unit testing using frameworks like NUnit, xUnit and MSTest.
- Competent and experienced using Dependency Injection and Inversion of Control implementations like AutoFac, Unity or similar.
- Competent and comfortable working with relational database technologies like MSSQL, PostgreSQL, or MySQL.
- Strong competence in designing and improving data structures in relational databases.
- Knowledge of non-relational data stores like CosmosDB, Mongo, and Azure Table Storage.
- Competent and comfortable using Object Relational Mapping technologies like Entity Framework (Core), NHibernate, or similar.
- Competent and comfortable with Continuous Integration and deployment pipeline automation using YAML and Azure Resource Management templates.
- Competent and experienced in building and securing RESTful APIs
- Competent and experienced in building presentations in patterns like MVC and MVVM.
- Understanding of modern authentication paradigms and their implementations in enterprise software. (Oauth2.0, OpenID Connect)
- Working knowledge of resources and services within Azure, AWS, or Google Cloud.
- Experience securing cloud solutions using available services to secure PaaS, SaaS, and IaaS infrastructure in a cloud-hosted environment.
- Experience architecting a part of a solution from design to implementation.
Desired Technical Skills
- A good understanding and exposure to cloud-first development.
- Knowledge and understanding of Cloud-Native concepts and trade-offs.
- Experience leading a small group of more junior developers.
Desired Technical Competencies
- Experience with container and container orchestration technologies like Docker and Kubernetes.
- Experience with Mobile Development Technologies like Xamarin, React Native, Ionic, or Flutter.
- Experience with Indexed Search technologies like Elastic and Azure Search.
- Experience with Microsoft Power Platform, including PowerApps and Power Automate.
- A degree, diploma, accredited qualification or equivalent in Software Development, Computer Science, or Engineering.
- Certified in Azure Fundamentals.
- Certified in Azure Data Fundamentals.
- Certified in Azure Developer Associate.
Intermediate C# .NET/.NET Core Developer
Thanks for applying