Senior Backend Engineer

South Africa
Engineering /
Full-Time /
Remote
Senior Backend Engineer
Are you craving the challenge of building complex systems? Really smart systems where performance and speed are essential without sacrificing the working environment?
 
If this appeals to you, join a purpose-driven, fast-growing enterprise software company that is working to transform Public Safety.
 
Our mission is to reduce emergency response times of first responders by providing situational awareness (via tactical mapping) to dispatchers and call-takers, and analytics to customers to optimize their workforce and processes.
 
We are cloud-native, leveraging the length and breadth of Microsoft Azure, processing serious ‘big-data’ volumes.

Job Description
We are looking for a Senior Backend Engineer to join our team. Responsibilities will include building microservices (mainly .NET, running in Docker and Kubernetes) using paradigms such as event-sourcing, CQRS, Domain Driven Design and backends-for-frontends (BFFs) to name a few.

Your primary responsibilities will be to design and develop services and components on this stack, and to coordinate with the rest of the team working on different layers of the infrastructure.
 
A commitment to collaborative problem solving, sophisticated design, and a thirst for elegant code is a must.
 

Responsibilities:

    • Design and develop libraries, components and services, using efficient, reusable, secure and reliable code
    • Ensure the best possible performance, quality, and responsiveness of applications
    • Identify bottlenecks and bugs, and devise solutions to solve these
    • Help maintain code quality, organisation, and automation (including test-automation)
    • Develop new user-facing features
    • Build reusable components for future use
    • Translate designs into high quality code
    • Constant collaboration with other developers and product management
    • A passion to keep track of the latest technology trends
    • Ability to understand business requirements and translate them into technical requirements

Required Background/Experience:

    • Bachelor's degree in computer science, Engineering, or related field (or equivalent experience).
    • 5- 8 years' experience

Skills:

    • Proficient in C#, with a good knowledge of its ecosystems
    • Familiarity with the .NET framework as well as .Net Core
    • Strong understanding of object-oriented programming
    • Strong understanding of message queuing
    • Strong understanding of asynchronous and multi-threaded applications
    • Skill for writing reusable C# libraries
    • Familiar with various design and architectural patterns
    • Knowledge of concurrency patterns in C#
    • Familiarity with NoSQL
    • Knack for writing clean, readable C# code
    • Understanding fundamental design principles behind a scalable application
    • Augmenting automated testing platforms and creating unit tests
    • Familiarity with development pipeline and release management tools
    • The following would be advantageous:
    • Familiarity with Domain Driven Design and Event Sourcing
    • Hands-on experience with Docker and Kubernetes

Behavioural Competencies

    • Work well under pressure.
    • Good communication skills (Written and verbal).
    • A good problem solver.
    • Have an inquisitive nature and a drive to thoroughly understand problems.
    • Acute attention to detail and due diligence to tasks
PLEASE NOTE WHILE THIS IS REMOTE - APPLICANTS MUST BE CITIZENS OR PERMANENT RESIDENTS OF RSA 

Disclaimer:
Employees must be able to perform the essential functions of the position satisfactorily, and if requested, reasonable accommodations will be made to enable qualified employees with disabilities to perform the essential functions of their job, absent undue hardship. RapidDeploy retains the right to change or assign other duties to the position at any time.