Job Description
Senior Software Engineer .NET
Department: Product Research & Development
Employment Type: Permanent
Location: Morocco, Casablanca
Description
We are incrementally modernizing our .NET-based ERP platform while continuing to operate and extend the existing system.
We work in cross-functional teams with clear domain ownership. Modernization happens alongside feature development, not in isolation. Architecture is discussed explicitly and documented, and technical debt is addressed when it meaningfully improves stability or maintainability.
The role
Responsibilities
- Contribute to the incremental modernization of a large, long‑lived .NET‑based ERP system.
- Design and implement elements of a new backend architecture that will gradually replace existing functionality.
- Build and maintain clean, well‑documented APIs, usable both internally by teams and externally by partners.
- Develop solutions enabling parallel operation of legacy components alongside modernized services.
- Address technical debt pragmatically, integrating refactoring into ongoing development work.
- Contribute to both backend and frontend development when required.
- Support the modernization of multiple user interfaces across different platforms.
- Ensure all solutions run reliably on AWS, including sandbox and staging environments.
- Collaborate closely with product managers, QA, and developers within cross‑functional teams.
- Document and explain technical decisions to ensure alignment and shared understanding across the team.
Skills, Knowledge & Expertise
- Several years of experience as a Senior Software Developer, ideally in ERP, SaaS, or other complex business systems.
- Strong hands‑on expertise with .NET / C#, particularly in large, long‑lived codebases.
- Experience evolving existing systems incrementally, rather than replacing them in a single step.
- Solid understanding of API design, documentation, stability, and backward compatibility.
- Experience working with AWS‑hosted systems.
- Full‑stack awareness, with understanding of both backend and frontend concepts.
- Ability to work independently, make technical decisions, and take ownership of outcomes.
- Clear, structured, and proactive communication skills.
- Experience with highly configurable, extensible, or partner‑customizable platforms.
- Familiarity with modern frontend technologies.
- Experience with cloud‑native architectures or platform‑oriented system designs.
- Background in domain‑driven design (DDD) or modular system architecture.
