Overview

Our growing engineering team at ZERO is seeking a passionate backend engineer, with well-rounded experience working with all service aspects of high throughput and multi-tenant services. In this position, you will design and develop backend components, correctly handle errors, and write clean and well-factored code with good tests and good maintainability. You will be a part of an agile development team building server-side AI-powered automation tools for time-consuming administrative tasks.
You’ll need to demonstrate a passion for your work, be self-motivated, and be eager to engage in high impact, challenging, engineering problems while continuously raising the standard of quality for our products and services.
You should have experience building services using .NET Core, be comfortable deploying to a Linux environment, deploying and managing services on Azure Kubernetes Service (AKS), and using both SQL and NoSQL databases. As a Staff Engineer, you are expected to provide technical direction to engineers and work closely with the engineering manager in the Engineering team.

Responsibilities:


- Collaborate with product owners and business stakeholders to define strategy and scope of software requirements
- Perform all aspects of software development within the agile development process, including coordination with other software developers and stakeholders
- Produce maintainable code following the best OOP/OOD practices in agile environment
- Develop innovative approaches to technical software development problems
- Ensure codebase is thoroughly tested by writing tests and maintaining test infrastructure
- Integrate trained machine learning models

Required Qualifications:


- At least 6 years of professional experience working with .NET/.NET Core, CLR and C#
- At least 3 years developing web applications
- At least 3 years' experience working with relational databases
- Experience with all SDLC phases, including analyzing stories, writing code, implementing automated tests, contributing to release and iteration planning, and developing the team’s working practices
- Experience writing micro services in the .NET Core environment
- Experience with Unit testing frameworks such as nUnit or xUnit
- Expert-level experience in troubleshooting and debugging web server platforms, software, and code
- Knowledge of Domain-Driven Design (DDD), SOA architecture, as well as microservice design patterns such as CQRS
- Knowledge of SQL and database design
- Excellent understanding of OOA/D, design patterns, architectural styles and principles
- Deep understanding of multi-threading, concurrency, asynchronous and parallel programming
- Good understanding of memory management principle
- Good understanding of Data structures and algorithms
- Ability to multi-tasking, problem-solving, and working cross-functionally in a dynamic environment
- High energy, go-getter with fresh ideas who takes the initiative to get things done Nice to have:
- Knowledge of Docker is a plus
- Knowledge of Kubernetes (or any container orchestration tool) is a plus
- Understanding of modern authentication /authorization mechanisms like OAuth and OpenID Connect