Senior Software Engineer
The primary responsibility of the Senior Software Engineer is to deliver high quality, reliable, scalable software. The role engages directly with IT management, development teams, technical delivery teams, and vendors to ensure the successful design, development, and delivery of technology-based solutions. The Senior Software engineer is involved in the entire software development life cycle (SDLC) using both Agile/SAFe and Waterfall methodologies. This role is expected to be experienced in the following technologies: C#, .Net, Azure cloud PaaS technologies, SQL and to have a strong grasp of client-side technologies including JavaScript frameworks such as Angular. The Senior Software Engineer should also have experience working in a fully integrated development environment such as Azure DevOps – using Git version control, work item management, CI/CD, and monitoring tools.
#LI-DNI
Essential Duties and Responsibilities include the following. Other duties may be assigned
- Design and develop software solutions using .NET / ASP.NET / ASP.NET Core / Angular / Typescript
- Maintaining and improving existing codebases and performing code reviews
- Design and maintain MS SQL/Azure SQL database objects such as tables, stored procedures, functions, & triggers
- Liaise with colleagues to implement technical designs
- Work closely with Product Owners and other business colleagues to clearly understand requirements, identify gaps in functional design, and proactively suggest alternatives or options to improve systems
- Deliver working solutions in the planned time that meet or exceed acceptance criteria
- Identify non-functional requirements that are necessary to deliver a working solution
- Make accurate estimates of the development time required for projects, modules, and/or fixing defects
- Provide regular, accurate updates on the status of the assigned tasks to team members
- Participate in software builds, release management, and environment management
- Improve system quality by identifying issues and common patterns, and developing standard operating procedures
- Enhance applications by identifying opportunities for improvement and implementing systems
- Utilize technical expertise to research critical production issues and efficiently and effectively resolve problems.
- Create clear and concise technical design specifications and documentation (flowcharts, layouts, diagrams, design documents, and code comments)
- Demonstrate solutions at iteration demos, system demos, etc.
- Provide written knowledge transfer material
- Remain at the forefront of emerging technologies and development standards, and proactively identify and recommend improvements to the software development lifecycle.
- Investigate and implement new technologies where relevant
- Prepare and execute detailed unit and integration test plans to ensure quality solutions.
- Support/participate in additional Quality Assurance activities as needed
- Develop code using industry best practices, considering application performance, scalability, and reliability.
Education and/or Experience
- Bachelor’s degree in Computer Science, a related field, or equivalent education required
- 9+ years of experience in software design, development, and development methodologies (Microsoft .Net, Microsoft Azure, and Object-Oriented methodologies preferred).
- Experience implementing web-enabled applications in ASP.NET Core, .NET Core, C#, ASP.NET, HTML5, ASP.NET MVC, React, JSON, REST, CSS
- 9+ years of experience managing and effectively operating complex systems that are secure, reliable, and scalable.
- Working knowledge of JavaScript frameworks and modern web technologies such as Angular, TypeScript, HTML, CSS, or other open source tools
- Experience with Azure cloud PaaS services such as Azure Functions, Logic Apps, and Service Bus
- Understanding of software development best practices and design patterns
- Experience designing and building RESTful APIs/ Web API
- Demonstrated ability using TFS/Git/VSTS/Azure DevOps and building and deploying web-based applications
- Experience in open source technologies
- Experience working with NoSQL DBs like Cosmos and MongoDB
- Experience working in a distributed team, including third parties and offshore development, preferred
- Working knowledge of online consumer software, web services, and Software as a Service (SaaS)