Position: Expert IoT Integration .NET Developer
Company: Ciklum
Category: .NET
Experience required: 5y
English level: fluent
Published: 2021-02-01T00:00:00+02:00

Our client is a leading global provider of first-rate products in the areas of heat transfer, separation and fluid handling. With these as its base, our client aims to help enhance the productivity and competitiveness of its customers in various industries throughout the world. We define their challenges and deliver sustainable products and solutions that meet their requirements – mainly in energy, the environment, food and the marine industry.

Responsibilities:
●	Lead development team; 
●	Lead and improve the decision-making process in design solution architecture, solution development, architecture and code review;
●	IoT back-end and client services development to meet customer’s business needs and implement components according to modern software development environment (cloud-based platforms, microservice architecture, etc.);
●	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 architecture preparation, 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 7 years;
●	Experience with IoT, data management, data integration and data transformation approaches;
●	Excellent knowledge in Computer Science, Computing Theory:
○	Paradigm & Principles (OOP, SOLID, DDD, TDD, BDD);
○	IoT reference architecture;
○	Database theory (RDBMS, NoSQL);
○	Code testing practices;
○	Algorithms;
○	Data structures;
○	Architectural, Enterprise and Design Patterns;
○	Deployment 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 5 years);
●	Practical commercial experience with:
○	REST API development;
○	.NET Framework, .NET Core, ASP.NET (Core, MVC, WebAPI)  (more than 4 years);
○	Testing frameworks (e.g. e.g. NUnit, XUnit, MSTest) (more than 3 years);
○	 ORM (e.g. Entity Framework, Dapper)  (more than 3 years);
○	RDBMS (e.g. SQL Server, MySQL/MariaDB, PostgreSQL)  (more than 4 years);
○	NoSQL (e.g. MongoDB, ElasticSearch, CouchDB);
○	Search Engines (e.g. ElasticSearch, Azure Search, Apache Solr);
○	Key-value storages (e.g. Redis, Memcached);
○	Messaging systems (e.g. RabbitMQ, Apache Kafka, Active MQ, AWS SQS, Azure Service Bus, Google Pub/Sub);
○	IoT protocols (e.g. MQTT, AMQP, LwM2M);
○	Microsoft Azure IoT (Azure IoT Hub, Azure Device SDK, Azure Device provisioning services, Azure Device twins, Azure Functions, Azure Stream analytics);
○	Web Servers;
○	Version control systems (GIT);
○	Cloud computing platforms (e.g. Microsoft Azure, AWS, Google Cloud Platform);
○	Integration with 3rd party solutions;
○	Docker;
○	Continuous Integration tools (e.g. Gitlab Pipeline, Jenkins, TeamCity, Bamboo);
○	Builders;
●	Experience with:
○	Leading Team;
○	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 English;