Senior .Net Engineer
PrincePerelson & Associates
Lehi, Utah, United States
Job type: fulltime
Job industry: I.T. & Communications
Great people make great companies and we are looking for a great Lead Software Engineer to join our team in Murray, UT. Our approach to building software is disciplined and quality-focused with an emphasis on creativity, craftsmanship and commitment. We are looking for smart, quality-minded individuals who want to be a part of a high functioning, dynamic team. We believe in treating people fairly and your compensation should reflect that. Bring your passion for software engineering and help us disrupt ourselves.
As a Principal Platform (.NET) Software Engineer you apply your expert technical knowledge, broad knowledge of software engineering best practices, problem solving, critical thinking and creativity to build and maintain software products that achieve technical, business and customer experience goals and inspire other engineers to do the same.
- Directly contributes as a member of a scrum team to the test-driven development of software features and non-functional quality attributes, applying software engineering best practices and authoring integration tests.
- Leads sessions with scrum team members to structure solution source code and designs implementation approaches optimizing for 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 and plan product roadmaps.
- Manages and organizes build steps, continuous integration systems and staging environments.
- Provides masterful communication and respectful listening conveying logical and structured thoughts, truthfulness, empathy, confidence and friendliness.
- Applies advanced levels of strategic thinking, judgment, decision making, attention to detail, teamwork, organization, innovation and initiative.
- Mentors other members of the development team.
- Evaluates, understands and recommends new technology, languages or development practices that have benefits for implementing.
- 5+ years experience programming enterprise web products.
- Expert-level knowledge and extensive experience with Microsoft development technologies and tools: C#, Visual Studio, .NET Framework/Core, Entity Framework, WCF, LINQ, WebApi/MVC, SignalR, NuGet.
- Advanced knowledge and significant experience with relational and non-relational database technologies and concepts like Microsoft SQL Server, TSQL, ACID, CAP theorem, MongoDB, Elasticsearch, HBase.
- Expert-level knowledge of general engineering concepts like design patterns, OO programming and SOLID principles, UML, HTTP, MVC, APIs, data structures and algorithms.
- Expert-level knowledge and extensive experience with automated test tools and techniques including test-driven development, behavior-driven development, automated acceptance testing, Gherkin & GWT.
- Expert-level knowledge and significant experience with REST and WebAPIs, including Web Sockets, JSON, OAS or RAML, Swagger, OData or GraphQL.
- Robust understanding and experience with DevOps practices in source code management, continuous build and deployment tools: GIT, GitFlow, MSBuild, npm, Bower, NuGet, PowerShell, TFS, Jira, Jenkins, Bamboo, IaC, Docker, Kubernetes, APM tools.
- Robust understanding and experience with secure coding practices: OWASP, XSS, CSRF, SSO/Authentication, static code analysis tools, ethical hacking.
- Good working understanding of application architecture concepts like microservices, Domain-Driven Design, broker pattern/message bus, event-driven, CQRS, ports & adapters/hexagonal/onion, SOA.