Position: Senior .Net Developer
Company: Ciklum
Experience required: 5y
English level: intermediate

**Project description**
Our client develops a low-code platform for rapid application development, helping organizations build enterprise apps and transform their business faster. The platform combines the power of low-code development with advanced mobile capabilities, enabling the visual development of entire application portfolios that easily integrate with existing systems.
Software developers and business users can build applications through an intuitive, visual interface, rather than traditional coding. Customers experience tremendous cost savings and create competitive advantages by developing custom applications in days and weeks versus months and years, despite a shortage of skilled developers

**Responsibilities:**
●	Back-end development to meet customer’s business needs and implement components according to modern software development environment (cloud-based platforms, microservice architecture, etc.);
●	Taking part in the decision-making process in design application architecture, solution development, architecture and code review;
●	Develop and review feature design documents and provide inputs/update to specifications for the solution;
●	Design and implement a set of various types of tests (unit, integration, functional, etc);
●	Proactive position in solution development, processes improvements;
●	Working in an international distributed team in an Agile environment;
●	Communicate with PMs, engineers, Architects, QA and other colleagues and stakeholders;
●	Delivering the product roadmap and plannings;
●	To use high coding standards, software best practices and write highly testable, automatable and performant code over the whole SDLC.

**Requirements:**
●	Experience in software development for more than 5 years;
●	Excellent knowledge in Computer Science, Computing Theory:
○	Paradigm & Principles (OOP, SOLID, DDD, TDD, BDD);
○	Database theory (RDBMS, NoSQL);
○	Code testing practices;
○	Algorithms;
○	Data structures;
○	Architectural, Enterprise and Design Patterns;
○	Security patterns, Reverse engineering resistance, Common attacks types (OWASP);
●	Understanding of network interactions:
○	protocols;
○	conventions (e.g. REST, RPC);
○	authentication and authorization flows; 
○	standards and practices (e.g. oAuth, JWT);
●	Excellent knowledge and experience in C# and .NET (more than 3 years);
●	Practical commercial experience with:
○	REST API development;
○	.NET Framework, .NET Core, ASP.NET (Core, MVC, WebAPI)  (more than 3 years);
○	Testing frameworks (e.g. e.g. NUnit, XUnit, MSTest) (more than 2 years);
○	ORM (e.g. Entity Framework, Dapper)  (more than 2 years);
○	RDBMS (e.g. SQL Server, MySQL/MariaDB, PostgreSQL)  (more than 3 years);
○	Key-value storages (e.g. Redis, Memcached);
○	Messaging systems (e.g. RabbitMQ, Azure ServiceBus, Apache Kafka, Active MQ, AWS SQS, Google Pub/Sub);
○	Web Servers;
○	Version control systems (GIT);
○	Cloud computing platforms (e.g. Microsoft Azure, AWS, Google Cloud Platform);
○	Docker;
○	Continuous Integration tools (e.g. Gitlab Pipeline, Jenkins, TeamCity, Bamboo);
○	Builders;
○	Visual Studio 2019;
●	Experience with:
○	Troubleshooting, profiling and debugging applications;
○	Creation software architecture and design of complex applications, platforms, microservices solutions;
○	Agile software processes and technologies;
○	Code Review process;
○	Refactoring process;
●	Fluent or Upper-Intermediate English;

**Desirable:**
●	Certifications on:
○	Microsoft Certified Developer;
○	Cloud computing platforms (Microsoft Azure, AWS, GCP);
●	Understanding of orchestration and containerisation (e.g. Kubernetes, Swarm);
●	Knowledge in Deployment patterns;
●	Practical commercial experience with:
○	Serverless architecture;
○	Integration with 3rd party solutions;
○	NoSQL (e.g. MongoDB, ElasticSearch, CouchDB);
○	Experience with Search Engines (e.g. ElasticSearch, Azure Search, Apache Solr);
○	Provisioning tools (e.g. Terraform, Ansible);
○	Quality tools (e.g. SonarQube);

**Personal skills**
●	Ability to relate positively to and engage with a wide range of people
●	Strong self-motivation, reliable and flexible team-player. High attention to details
●	Always seeking to improve processes and suggest alternative better solutions
●	Be ready to embrace change, be flexible
 
**What's in it for you?**
●	Career growth opportunities;
●	Realization of your innovative ideas in building new solutions and services;
●	Possibility to propose solutions on a project;
●	Friendly collaborative teams and enjoyable working environment;
●	Professional skills development and training programs;
●	Variety of knowledge sharing, training and self-development opportunities;
●	Learn different business domains;
●	Constant flow of new projects;
●	Dynamic and challenging tasks;