The Senior Software Engineer is responsible for the design, development, testing, and operations of applications critical to the business. The potential candidate has demonstrable, specific and personal experience of secure engineering practices and will be a part of an agile development team, building and working on enterprise grade software systems on top of the Microsoft .NET development stack. The Senior Software Engineer will provide technical guidance to teammates through coaching and mentorship.
Duties and Responsibilities:
- Guide team development efforts towards successful project delivery.
- Provide technical guidance to teammates through coaching and mentorship.
- Maintain high standards of software quality within the team by establishing best practices.
- Collaborate with other software engineers, product managers, and software architects to plan, design, develop, test, and maintain web and desktop-based business applications built on Microsoft technologies.
- Assist in the collection and documentation of user's requirements, development of user stories, estimates and work plans.
- Prepare documentation on the status, operation, and maintenance of software.
- Design, develop, and unit test applications in accordance with established standards.
- Leading peer-reviews of solution designs and related code.
- Package and support deployment of releases.
- Work with teammates in the migration of legacy applications to current Microsoft technologies.
- Develop, refine, and tune integrations between applications.
- Analyze and resolve technical and application problems.
- Assess opportunities for application and process improvement and prepare documentation of rationale to share with team members and other affected parties.
- Adhere to high-quality modern lean engineering principles while delivering solutions on-time.
- Research and evaluate a variety of software products and/or solutions.
Required Skills and Competencies:
- Proficient with Microsoft .NET 3.5+ development using C#
- In depth knowledge and experience with core Microsoft .NET technologies including: WCF, WPF, WF, LINQ and EF
- Extensive experience designing and developing enterprise grade software
- Comprehensive understanding of object-oriented and service-oriented application development techniques and theories
- Experience with source control management systems and continuous integration/deployment environments
- Experience with automated testing; working on an agile team; multi-threading and concurrency; debugging, performance profiling and optimization
- Experience with agile development methodologies including Kanban and Scrum
- Internally motivated, able to work proficiently both independently and in a team environment
- Strong initiative to find ways to improve solutions, systems, and processes
- Experience with web development technologies including ASP.NET, MVC3+, JavaScript, AJAX and CSS
- Experience with database development including relational database design, SQL and ORM technologies
- Experience with user interface design and prototyping
- Experience configuring and developing customizations for a wide range of Microsoft platforms
- Communication – Understanding of effective communication concepts, tools and techniques; ability to effectively transmit, receive and accurately interpret ideas, information and needs through the application of appropriate communication behaviors. This includes the ability to describe or explain complex processes and issues in a concise manner