Bachelor’s degree in Computer Information Systems, Computer Science, or related field., 7+ years of software engineering experience with distributed applications and automated testing., 5+ years of experience designing and maintaining SaaS products in public cloud environments., Proficient in .Net or .Net Core (C#) and Python, with experience in TDD and BDD development techniques..
Key responsibilities:
Design and develop high-quality features for cloud-native SaaS products.
Coach development team members on testing practices and enhance test frameworks.
Plan and deliver the technical evolution of products while improving legacy applications.
Collaborate with cross-functional teams and participate in code reviews to ensure quality and operational excellence.
Report This Job
Help us maintain the quality of our job listings. If you find any issues with this job post, please let us know.
Select the reason you're reporting this job:
For more than 30 years, ECI Software Solutions has been providing industry-specific, cloud-based business management software and services to businesses around the world.
With divisions focused on manufacturing, wholesale/retail distribution, building and construction, and field service, ECI's solutions integrate into every aspect of a customers' business to help them level the playing field, run day-to-day operations more efficiently, and free them up to focus on what matters most. It’s how business gets done.
Privately held with more than 16,000 customers, ECI is headquartered in Fort Worth, Texas, USA, with offices and companies throughout the U.S., Australia, New Zealand, England, and the Netherlands. For more information, email info@ecisolutions.com, visit www.ECISolutions.com, or call (800) 959-3367.
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.
What you’ll do
Aspire to be a technical leader on a high-performing team.
Design and develop high quality features which delight our customers.
Coach members of development teams to implement tests and test framework enhancements to support various portions of the Test Pyramid.
Support and promote the practices and culture needed to transform our organization to a successful DevOps “you build it, you run it” organization.
Perform on-call duties for all modernized components, user interfaces, or services that your team owns.
Be a champion and example for quality, engineering, and operational excellence.
Plan and deliver the technical evolution of our products to cloud-native SaaS products and services.
Improve the design of current legacy application to permit extension and use of modernized services.
Support and promote a Generative organizational culture.
Plan complex initiatives by breaking them into manageable chunks.
Contribute to test automation and refactoring efforts, including BDD, TDD, performance/scalability testing, resiliency testing, etc.
Collaborate effectively with Engineering leadership, Architects, UX Designers, Product Managers, SDETs, SREs, and other Software Engineers.
Work within a small, agile team leveraging Scrum / Kanban.
Create reliable and fast automated test capabilities and feedback loops within our CI/CD pipelines.
Implement automated testing of software capabilities, including unit, integration, component, system (E2E), regression, compatibility, and performance tests.
Refactor code, as needed, to improve testability.
Document key technical decisions, code design specifications and test outcomes.
Participate actively in code reviews and contribute to technical discussions.
Effectively communicate technical challenges and help resolve them.
Keep yourself up-to-date with evolving technologies and apply this knowledge in our technical solutions.
Empathetically help other developers grow.
Skills or experience you need
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.).
Skills that will set you apart
AWS – Developer or Solutions Architect Certification
Thorough understanding of AWS infrastructure and services
Hands-on experience with Blazor and Webassembly.
Hands-on experience with Azure Dev Ops
Hands-on experience with an Observability Platform like CoraLogix.
Hands-on experience with Istio, AppMesh, and/or similar service mesh architectures.
Experience with cross-platform mobile development frameworks (e.g. Blazor, Xamarin, etc.)
Good understanding and responsiveness for requests related to compliance activities (ISO27001, SOC2, PCI etc.)
Good understanding of Remote Apps over Remote Desktop Protocol and/or GraphOn etc.
Prior experience with payment devices.
Behavioral Competencies
A sense of urgency and a strong bias for action.
Strong communication skills and a natural inclination to collaborate.
Strong problem solving skills and technical acumen
Exhibits sound judgement and can make wise decisions despite ambiguity.
Identifies and resolves root causes rather than only treating symptoms.
Required profile
Experience
Spoken language(s):
English
Check out the description to know which languages are mandatory.