Software Engineer .NET Senior (M/F)
Île-de-France, France
About the role
STEP UP is an engineering company expert in managing industrial and IT projects (+ 250 employees across 11 agencies in France), placing human potential as the primary vector of excellence and performance in business. Forget engineering companies that only value your skills; at STEP UP, we also aim for the alignment between your personality and our clients' corporate culture. For you, this translates into a fundamental difference in terms of well-being, professional fulfillment, and success in your missions. What we offer you: - A fulfilling, stimulating, and collaborative work environment; we are a certified great place to work! - Innovative and varied projects. - The possibility to continuously improve with internal training. - Career development prospects. - Individualized support with a human potential development program. - A referral program. And of course, we cover 70% of your health insurance and financially encourage soft mobility. The position: As part of a new project for our partner, we are looking for a Senior Software Engineer .NET to participate in the redesign and evolution of components for a remote meter reading SaaS platform. ## The context You will join the Metering team and work on a multi-tenant product processing large volumes of time-series data. In a partially legacy application environment, you will contribute to improving the performance, maintainability, and scalability of distributed applications. You will work in close collaboration with Software Engineers, DevOps teams, and Product teams. The main projects concern the modularization of the application architecture, the evolution of data access and pipelines, the strengthening of observability, as well as the industrialization of development. ## Your main missions * Analyze needs and contribute to the definition of technical specifications; * Design and develop backend components in C#/.NET; * Participate in the progressive redesign of the application architecture towards a modular model; * Evolve the data access layer and ORMs while considering performance issues; * Optimize the processing of large volumes of time-series data; * Design and evolve messaging mechanisms based notably on RabbitMQ; * Improve the performance, scalability, and resilience of distributed applications; * Implement end-to-end observability based on metrics, logs, and traces; * Develop, assemble, and maintain reusable software components; * Develop and execute unit, integration, and non-regression tests; * Implement performance tests on the components being reworked; * Contribute to CI/CD pipelines and deployment automation; * Participate in production incident diagnosis and post-incident analysis; * Ensure corrective and evolutionary maintenance of applications; * Produce and maintain technical and architectural documentation. ## Expected deliverables * Core components delivered progressively and semantically versioned; * Clear and directly usable release notes; * Architecture documentation associated with developments; * ADRs formalizing structuring technical choices; * Unit, integration, and non-regression tests; * Performance tests concerning the reworked components. Profile sought: ## Required skills Essential skills: * Expertise in C#/.NET backend development; * Confirmed mastery of Kubernetes; * Experience in designing and evolving distributed applications; * Ability to intervene on complex existing systems and evolve them progressively. Important skills: * PostgreSQL and time-series databases; * Design and optimization of data access layers and ORMs; * RabbitMQ and messaging-oriented architectures; * Management of high volumes and performance optimization. Mastery of DevOps and observability practices is also appreciated: * CI/CD; * Infrastructure as Code; * Deployment automation; * Metrics, logs, and traces. ## Your profile * Master's degree in computer science, engineering school, or equivalent; * At least 6 years of experience in .NET backend development; * Significant experience at a software publisher or on a product platform; * Successful experience in redesigning application architecture towards a modular model; * Experience in optimizing a data access layer or an ORM; * Contribution to an end-to-end observability strategy; * Fluent French and professional English...