Position: Middle/Senior Software Developer (.NET)
Company: Eleks
Experience required: 5y
English level: upper

ABOUT CLIENT
Our customer is a technology software and consulting company headquartered in London, with offices in Paris, Brussels, and the USA. The company’s services are used by the largest insurance companies worldwide, which benefit from the market disruption and ground-breaking capabilities it gives them.
The project is a technology platform that helps non-life and life insurance companies across their modeling platforms, including capital, pricing, reserving, life cashflow modeling, economic evaluation, risk, and data cleaning.

**REQUIREMENTS**
4+ years of experience with C# and .NET
Experience with MS SQL, Entity Framework
Practical knowledge of algorithms
Math knowledge: understanding the modeling process
Experience with Azure DevOps (is used just a system control repository)
Bachelor’s degree/Master’s degree in Mathematics, Statistics, Physics or Computer Science
Upper-Intermediate level of English

**RESPONSIBILITIES**
Develop solutions and algorithms according to technical specifications or other requirements documentation; use standard algorithms in the applicable cases
Write program code according to the defined application architecture
Possess knowledge of software development methodologies (Waterfall, Agile, etc.)
Structure and format the source code, comment and mark up the code, and name variables, functions, classes, data structures, and files according to the company conventions and industry best practices
Implement code refactoring and optimization methods. Post-refactoring and optimization results in the collective knowledge base as the best practices
Modify existing software code and test its availability. Analyze software code compliance with readability and performance standards
Use version control systems to track code optimization progress, as well as to merge or split code entities. Commit changes according to version control rules
Perform analysis, verification, and debugging of the software code at the level of application units
Develop procedures to test code availability, collect diagnostic data, generate test data sets with desired characteristics, examine the required software characteristics, etc.
Reproduce defects logged in the database, establish their causes, and modify code to eliminate defects
Determine software product compliance with the technical requirements
Collect and analyze results of software tests. Deliver correct interpretation of diagnostic data; analyze the significance of the obtained software characteristics; can document test results. Assess software product availability
Develop, document, and edit programming interfaces, software modules, and components assembling procedures, software deployment, and update procedures as well as data migration and transformation (conversion) procedures
Assemble software modules and components into software products; connect software products to the external environment. Test availability of software product versions
Analyze variants of software requirements implementation; evaluate their time consumption and workload. Conduct assessment and justification of the solutions recommended for software requirements implementation
Approve technical requirements for software with stakeholders. Evaluate and justify terms of task completion. Assign tasks to developers, and monitor task implementation. Provide training on the project

**PERSONAL CHARACTERISTICS**
Attention to client
Sense of responsibility
Problem-solving skills
Working in a team
Attention to details
Analytical mindset
Dedication and attitude toward success