Job Description :
We are seeking an experienced Sr. Software Engineer who will be working as part of an Agile team to analyze, design, develop, test, document, and implement software applications. The successful candidate will serve as an individual contributor while providing leadership to teams of software developers to innovate, evolve, enhance, maintain, deploy and provide application support. The Sr. Software Engineer will provide technical guidance and mentoring to drive success of the team and meet its objectives.
Responsibilities
Review, analyze designs, modify, develop, test, document, and implement software applications within the scheduled timeframe
Analyze and resolve complex problems associated with applications systems. Detect, diagnose, and report related problems
Collaborate with other developers on best practices, code reviews, internal tools and process improvements
Provide the project team with support and guidance on project specific processes, procedures, tools, training, and techniques
Review of the product architecture, design, requirements specifications, and test specifications
Determine and provide estimates for development tasks
Provide technical assessment of the impact of any changes to product requirements
Contribute to the continued improvement of the organisation’s development procedures by looking for opportunities for improvement and implementing solutions
Resolution of technical issues in conjunction with team members
Ensuring that designs, code, and unit tests are consistent, robust, and scalable
Prepares paperwork and attends departmental and project related meetings
Typical Tasks
Collaborate with technical managers, architects and other technical leads to deliver world class enterprise grade software and software enabled services
Mentor engineers on the team and ensure high code quality by performing code reviews, providing guidance, developing standards and managing work allocation within SCRUM Agile project teams ensuring highest productivity
Mentor and lead technical team on technology and process ensuring best practices and continuous improvement
Architect, Design, Develop, unit test, debug, deploy and support software ensuring end to end software life cycle
Follow software engineering discipline ensuring delivery of stable, scalable, maintainable and highly available software products and services
Engage in Continuous improvement ensuring higher quality, productivity and punctual delivery
Run workshops on technical aspects of products ensuring continuous learning
Support the agile development SCRUM processes and entire PDLC process meticulously ensuring alignment across teams
Identify and report assessed risks and potential solutions to management ensuring proactive risk management
Work with technical team members to overcome and resolve all technical related roadblocks ensuring team risk mediation
Skills and Experience
Minimum 7 years’ experience developing enterprise-level, mission critical, database-driven software for medium and large application development projects. Full life cycle experience is required.
Extremely thorough understanding of software design and development including C#/.Net platform, programming languages, Object oriented analysis and design, and application architecture and design.
Must be focused on the delivery of customer value, in the form of executing software that meets the customer''s needs.
Experience working in a DevOps environment. Familiar with DevOps concepts, tools and practices.
Familiar with AWS or other cloud-based architecture.
Must be able to interact and communicate with all levels of staff and project management in both the business and the technical areas
Must be able to work with a matrixed project or scrum team
Possess excellent analytical, problem solving, organizational, interpersonal, and motivational skills, with the ability to move cleanly from theoretical to implementation thinking.
Background

Education
Bachelor of Science Degree in Computer Science or Engineering, or equivalent experience. An MS, MSc or MBA would be an advantage.

Software Engineering Skills
Minimum 7 years expert experience in
o Object Oriented Programming
o C#, ASP.Net, JavaScript, HTML, CSS
o Object-Relational Mapping
o Agile Software Development (SCRUM)
o Domain-Driven Design, MVC and other design patterns
Proficient in
o Data Modeling with Object Role Modeling (or other conceptual modeling method)
o Subversion, Accurev, JIRA, JIRA Agile, Jenkins, experience with Git highly preferred.
o SQL Server in a clustered environment
o XML and JSON
o Web Services – SOAP and/or REST
o DevOps scripting languages (Python, etc
Utilized
o Visual Studio
o Performance Profiling Tools
Familiar with
o NAnt or MSBuild
o Design by Contract
o Continuous Integration tool
o AWS or other cloud-based architecture