As a Lead Full Stack Software Engineer you will be a key member of a new, greenfield scrum team and apply your advanced technical knowledge, broad knowledge of software engineering best practices, problem-solving, and creativity to build and maintain software products that achieve technical, business, and customer experience goals. The Lead Software Engineer reports directly to the Sr Director of Engineering, and is work-from-home eligible after the new team is up and running. Preferring someone already in the Salt Lake City area or willing to relocate to SLC. At a minimum, this person will need to travel to SLC regularly to work with the team.
- Directly contributes as a member of a scrum team to the automated test-driven development of software features and non-functional quality attributes, applying software engineering best practices and authoring unit and integration tests.
- Provides thoughtful recommendations in sessions with scrum team members to structure solution source code and implementation approaches — emphasizing the need to optimize code that follows engineering best practices, and maximizes maintainability, testability, and performance.
- Ensures SOLID principles and standard design patterns are applied to system architectures and implementations.
- Works with product management, business stakeholders, and application architects to understand software requirements and helps estimate epics, features, and stories.
- Scripts and maintains automated build steps, continuous integration systems, and staging environments.
- Provides skillful communication and respectful listening — conveying logical and structured thoughts, truthfulness, empathy, confidence, and friendliness.
- Applies consistent levels of strategic thinking, judgment, decision making, attention to detail, teamwork, organization, innovation, and initiative.
- Mentors junior members of the development team.
- Evaluates understands and recommends new technology, languages, or development practices that have benefits for implementing.
- 8+ years’ experience in programming enterprise web products.
- Advanced knowledge of general engineering concepts like design patterns, OO programming, and SOLID principles, HTTP, MVC, APIs, data structures, and algorithms.
- Advanced knowledge and experience with automated test tools and techniques including test-driven development, behavior-driven development, automated acceptance testing, Gherkin & Given/When/Then.
- Advanced knowledge and experience with REST and WebAPIs including but not limited to Web Sockets, JSON, RAML, Swagger, OData, or GraphQL.
- Good working understanding and experience with DevOps practices in source code management, continuous build and deployment tools including but not limited to git, Jira, Jenkins, Docker, Kubernetes, APM tools.
- Working understanding and experience with secure coding practices: OWASP, XSS, CSRF, SSO/Authentication, static code analysis tools, ethical hacking.
- Working understanding of application architecture concepts like microservices, Domain-Driven Design, broker pattern/message bus, event-driven, CQRS, ports & adapters/hexagonal/onion, SOA.
- Deep expertise in one or more Clouds (Azure, AWS, Google Cloud).
- Understanding of healthcare revenue cycle concepts and familiarity with FHIR, HL7 and HIPAA.
- Advanced knowledge and experience with Microsoft development technologies and tools: C#, Visual Studio or Visual Studio Code, .NET Framework/Core, and Entity Framework.
- Good working understanding and experience with relational and non-relational database technologies and concepts like Microsoft SQL Server, TSQL, ACID, CAP theorem, MongoDB, Elasticsearch, HBase.