The Sr. Software developer will be part of an agile development team, building and working on enterprise grade software systems on top of the Microsoft .NET development stack. The Sr. Software Developer develops information systems by designing, developing, and installing software solutions that are scalable for a high transaction environment.
- Follow secure programming and web application security best practices
- Responsible for writing technical design specifications.
- Work closely with the Principal Engineer to produce the team’s software architecture and design
- Coach the team on software best practices (design, coding, troubleshooting, work breakdown, work estimation, refactor strategies, automated testing, etc.)
- Must be able to mentor all levels
- Work closely with the other teams to optimize system architecture and project efficiency
- Partner with our Product Owner to plan work and prioritization
- Provide technical leadership to teammates through coaching and mentorship.
- Maintain high standards of software quality within the team by establishing good practices and habits.
- Provide regular updates on projects and team performance
- Identify and encourage areas for growth and improvement within the team.
- Assist in the collection and documentation of user's requirements, development of user stories, estimates and work plans.
- Collaborate and add value through participation in peer code reviews, providing comments and suggestions
- Analyze and resolve technical and application problems.
- Regular practice of CI/CD
- Support, maintain and document software functionality
- Travel may be required
- Research and evaluate a variety of software products
Knowledge, Skills and Abilities:
- Communication Skills, must be able to articulate, and have a strong technical vocabulary
- Must be able to coach the team on software best practices (design, coding, troubleshooting, work breakdown, work estimation, refactor strategies, automated testing, etc.)
- Strong knowledge in Object-oriented Design and Analysis (OOA and OOD) and Solid Principal
- Evaluate and identify new technologies for implementation
- Strong knowledge of C# .NET
- Strong knowledge of Relational and non-relational DBs
- Knowledge and experience in Distributed systems, MicroServices, SOA and n-tier architectures
- Knowledge of REST Api, event-driven architecture applications, caching, scaling, security, etc
- Strong knowledge of CI/CD pipelines, automated testing and deployment
- Strong understanding of best practices within any .Net technology
- Experience with Parallel Programming / Thread-safe coding
- Familiar with Managed Memory Architecture / .NET Garbage Collector / Cache Management
- Familiar with ADO.NET / Connection Pool / Data Reader
- Production experience with Docker, Kubernetes is a plus
- Experience with DDD, Event-Sourcing and CQRS is a plus
Education and Experience:
- Requires a minimum of five years of experience with software development, design patterns, software architecture
- Bachelor’s Degree in Computer Science/Engineering or related fields