ABOUT THE POSITION
A Principal Software Engineer designs, builds and maintains integrations and APIs that connect disparate systems. This includes on-premises legacy applications, third-party SaaS platforms, or cloud-native microservices. Ensures solutions are developed and delivered with quality, simplicity, reliability, and maintainability. Designs modern, testable, secure solutions in a fast-moving environment. Maintains high standards of code quality and solution delivery.
HOW YOU’LL MAKE A DIFFERENCE
- Integration Development:
- Build robust REST APIs and middleware using C# and .NET 8/10 (Web API, Minimal APIs).
- Build end-to-end integration workflows using Enterprise Integration Patterns (EIP) like Message Queuing, Publish/Subscribe, and Request/Response.
- Cloud Infrastructure: Provision and manage Azure resources via Infrastructure as Code using Bicep, Terraform, or ARM templates.
- Data Transformation: Implement complex data mapping and transformation logic (JSON, XML, Flat File) to ensure seamless communication between systems.
- Observability: Implement comprehensive logging, monitoring, and alerting strategies using Grafana and Application Insights.
- Mentorship: Participate in code reviews and provides technical guidance and mentorship to mid-level and junior developers.
- Agile Delivery: Deliver solutions in an iterative manner with ambiguous requirements. Contributes to and helps refine the team’s backlog.
- Testing: Implements robust unit testing suites that reduce production bugs and streamline the CI/CD pipeline.
YOU ARE
- Languages & Frameworks: C#, Blazor, .NET 8/10, ASP.NET Core, IIS, GitHub Copilot
- Azure Integration Services: Azure Service Bus (Queues/Topics), Azure Logic Apps, Azure Functions (Serverless), API Management (APIM).
- Data & Storage: Cosmos DB, Azure Blob Storage, Key Vault
- DevOps & CI/CD: Azure DevOps and GitHub Actions
- Standards and Practices: REST APIs, Clean Code, Agile Delivery
- Unit Testing: MSTest, XUnit, or NUnit
Key Competencies
Distributed System Troubleshooting: The ability to trace a failed message across multiple cloud hosted resources and identify bottlenecks or dead-letter causes.
Performance Optimization: Tuning .NET code for high-throughput and managing Azure scaling rules to balance performance with cost.
Resiliency Patterns: Developing fault-tolerant, decoupled systems by implementing robust patterns like Circuit Breakers, automated retries, and Dead Letter Queues.
Key Competencies
Distributed System Troubleshooting: The ability to trace a failed message across multiple cloud hosted resources and identify bottlenecks or dead-letter causes.
Performance Optimization: Tuning .NET code for high-throughput and managing Azure scaling rules to balance performance with cost.
Resiliency Patterns: Developing fault-tolerant, decoupled systems by implementing robust patterns like Circuit Breakers, automated retries, and Dead Letter Queues.
YOU HAVE
- Education: Bachelor’s degree in Computer Science or a related field.
- Experience:
- 10+ years of professional software engineering experience, with at least 5 years focused specifically on Azure-based integrations and C#.
- 5+ years agile delivery experience and familiarity with Jira, SCRUM and Kanban.
- 8+ years of remote collaboration experience across time zones.
- Exposure to wholesale and/or retail solutions preferred
- Experience in design and development of an Enterprise CI/CD process
#LI-SA1
#Hybrid
This job description is not meant to be an all-inclusive list of duties and responsibilities, but constitutes a general definition of the position's scope and function in the company.