Location: US - Remote
We are seeking a Senior Software Engineer who is ready to play a crucial role in designing, planning, and executing our product modernization plans, going from a monolithic desktop application to a SaaS-based cloud-native architecture leveraging microservices and hosted in AWS.
A Senior Software Engineer is expected to work closely with stakeholders, peers, and cross-functional teams to translate overall system architecture and product requirements into well-designed and implemented software components. You will take ownership of the implementation of individual software components, with high emphasis on quality, test-driven development, behavior-driven development, sound software engineering practices, and operational excellence. You will act as an individual contributor while closely collaborating with the software engineering team and provide technical solutions, coaching, and mentoring to the rest of the team.
ECI’s home and building supply software suite (Spruce) is a fully integrated business management solution for small to medium sized businesses. It streamlines operations and drives growth. The software is cloud-based and completely integrated, from purchasing through to delivery.
Bachelor’s degree in Computer Information Systems, Computer Science, or related field of study.
7+ years software engineering experience with distributed applications in production environments and automated testing hands on experience.
5+ years of experience designing/developing/maintaining SaaS products in public cloud environments.
5+ years of recent experience with .Net or .Net Core (C#).
5+ years of experience with Python, Bash, PowerShell, GO or equivalent
5+ years of experience with test-driven (TDD) and behavior-driven (BDD) development techniques.
Experience with Cl/CD pipelines using tools such as GitHub, Azure DevOps, Jenkins, Nunit/XUnit, Selenium/Appium, Specflow/Cucumber/ReqnRoll, etc.
3+ years of experience with building, orchestrating, and managing containerized workloads (AWS ECS/EKS, Docker, etc.)
3+ years with Azure DevOps, GitLab or equivalent.
Proficient in design patterns and modern software design principles (e.g. SOLID, Twelve Factor, etc.).
Previous working experience in decomposing a large, monolithic codebase into a modular and well-designed solution.
Familiarity with micro-services architecture, RESTful APIs and defining test automation strategies for Services.
Prior experience with modern monitoring solutions (e.g. DataDog, Dynatrace, AppDynamics, Splunk, Prometheus, Grafana, Open Telemetry)
Experience with Terraform and/or CloudFormation and management of all infrastructure or configuration through code (e.g. IaC).
Hands-on experience with TSQL and NoSQL Data stores.
Thorough understanding of AWS infrastructure and services including but not limited to EKS, ECS, EC2, EBS, S3, CloudWatch, Cloud Trail, API Gateway, ALB, Route 53, Transit Gateway, IAM, AWS Config, etc.
Proficient with Infrastructure as Code, Configuration as Code, GitOps, Continuous Integration, Delivery and Deployment (CI/CD) practices and tools (Azure DevOps, GitHub, Jenkins, Atlantis, Ansible, Packer, CloudFormation/Terraform, etc.).
#LI-Remote
#LI-ND1