Position: Full-Stack .NET developer (PAI Project)
Company: MedeAnalytics
Experience required: 3y
English level: intermediate

Required skills
* Practical experience with .net framework — min 3 years
* Practical experience with Angular — min 2 years
* SQL Server — queries optimization
* Asp.net core & .net core (any version) would be plus
* MongoDB experience would be a plus

As a plus
Knowledge & practical experience with client-side technologies (Angular — modern versions)
Solid understanding of object-oriented design and concepts.
Experience with web application performance and scalability
Experience working in an agile environment (for example SCRUM).
Experience building distributed systems and Software as a Service (SaaS)
Experience using an ORM tool such as NHibernate
Experience with NoSQL database such as MongoDB
Experience with developing using a single page framework like Angular

We are looking for Personal skills:
Ability to work independently without constant supervision
Ability to come up with several solutions to some technical problem
Ability to differentiate between root cause and consequence in some problem
Ability to mentor junior engineers

We offer
• Friendly team and enjoyable working environment;
• Opportunity for self-realization. Career and professional growth;
• Competitive salary based on your qualifications, experience and skills;
• Office in a comfortable business center, located near a subway station;
• Paid sick leave and vacations;
• English classes with a certified English teacher;
• Company-owned gym and shower;
• Convenient parking near the office building;
• Room for bicycle parking;
• Corporate events and meetings;
• Large recreation area;
• Not an open-space office. (Remote for now)
• Taxi fee compensation

Responsibilities
* Participate in new features architecture & design
* Implement new features as a full-stack engineer (FE+BE)
* Tricky problems/bugs investigation & fixes from production
* Getting rid of technical debt (refactoring yeah)
* Evaluation of new technologies
* Response to production incidents & work together with other teams to troubleshoot them

Project description
Our engineering team is working on a distributed real-time system for healthcare market in the US. (PAI — Patient Access) Its several web-based applications & bunch of distributed microservices.
Some facts about or system:
* Our system processes ~ 450 000 events each day using services under tight SLA (less than X seconds each)
* Generates around 100Gb logs per day
* SQL DB sizes in total 40Tb
* Around 15 different microservices on balanced worker nodes

Our technical stack
Front-end:
* Angular 10 (new features only)
* ASP.NET MVC existing functionality

Back-end:
* Existent application on .NET 4.7
* New features are built on .NET Core 3.0
* Migration to .net core
* NServiceBus 7 as the message broker
* RabbitMQ as the message broker
* NHibernate as ORM

Misc:
* StructureMap, NLog

Source control
* Git in Bitbucket

Data layer:
* SQL Server as classical storage
* MongoDB as nosql storage

Monitoring/tools stack:
* Elastic/Grafana/Kibana as monitoring stack
* TeamCity & Jenkins as CI & deploy tools

Code quality checks:
We are following gitflow branching strategy.
Core review is a natural part of the development process.
Happens during the pull-request review for each merge request to develop.
We also use SonarCube for automated code quality checks.