Position: Middle .Net Engineer
Company: Softserve
Category: .NET
Experience required: 2y
English level: intermediate

WE ARE: 

Going to improve the public transportation system in Lviv! 
SoftServe is aimed to implement the E-ticket project to increase the convenience of the urban transport service, reduce the use of cash, and increase the revenues from public transport services. The envisioned solution will provide passengers the ability to purchase and use travel tickets and plan a trip from their smartphones.  

As well as improving journey experience a new Automated Fare Collection (AFC) system will be developed for management of public transportation system and replenishment of accounts by Lvivavtodor personnel. 

Size of development team is 20 people including back-end, front-end, mobile and QC sub-teams.  
Project duration is 6-8 months.  
 
YOU ARE: 
A .Net (Core) engineer with over 2 years of experience in IT, and have following competencies: 
Knowledge of C#, .NET, Web API, OOP/OOD;  
Experienced with .NET Core;  
Experienced with MS SQL and Entity Framework Core; 
Experienced in developing microservices; 
Understanding of main DDD and CQRS concepts; 
Experienced with Elastic Search and Kibana (ELK stack); 
Experienced with any popular service bus, but better RabbitMQ; 
Experienced with Docker and Kubernetes; 
Experienced in unit testing; 
Result oriented, responsible person; 
Analytical and troubleshooting skills; 
Intermediate spoken/written English 

Would be a plus: 
• Experience with Redis, gRPC, GraphQL; 
• Experience with cloud platforms; 
 
YOU WANT TO WORK WITH:  
ASP.NET Core on back-end; 
Docker + Kubernetes; 
Microservice architecture 
ReactJS 16.13.1 on front-end; 
React native 0.6.2 as mobile solution; 
 
TOGETHER WE WILL: 
Develop a project from scratch according to microservice architecture; 
Work with experienced TLs to design maintainable, performant and reusable React components.  
Ensure the best possible performance, quality, and responsiveness of applications.  
Maintain quality throughout software development through peer code review, unit and functional testing. 
Solve non-trivial and extraordinary tasks. 
Resolve development issues of high complexity;