Senior Software Engineer (C# .NET) – Toronto

Primary Responsibilities:

Write maintainable, clean, re-usable, object-oriented, and efficient programming code in compliance with department standards and templates.

Investigating the root cause of issues and providing resolution.

Work within source control utilizing branching, merging, proper check-in procedures, and passing of continuous builds to ensure that software is always releasable

Practice Test Driven Development (TDD) and ensuring that unit tests are created prior to writing programming code and that any programming code is structured in such a way to maximize testability

Resolve software bugs in the programming code and modify unit tests to prevent future regression

Perform various types of testing including black box, white box, integration, functional, systems, sanity, smoke, regression, acceptance, stress, load, performance, usability, installation, recovery, security, compatibility, and more on software systems

Work within the context of department processes and procedures

Peer review programming code and participate in code reviews

Learn and understand the technical details of all relevant products and having hands-on familiarity of the system as required

Work with management to define and establish processes, templates, and standards related to software development and to continually improve the quality of the process

Contribute fresh, new ideas during developer meetings demonstrating a commitment on-going learning

Utilizing tools to improve quality of code

Mentor and assist in the training and on-boarding of other team members

Raise concerns to management and team members

Any other tasks required by management

Skills Required:

A minimum of six (6) years of demonstrated prior work experience conducting the primary responsibilities outlined in this job description

Excellent English verbal communication skills, due to a need to communicate with remote personnel over the phone or similar medium. Proficient English written skills.

Excellent organization skills with an ability to switch from one task to another,

Comfortable at the data level with an ability to diagnose the root cause of issues by querying data from a variety of sources, such as Excel, XML, databases, etc.

Strong working knowledge and skill with C# and the .NET framework.

Experience with advanced debugging techniques, such as breakpoints, watches, attaching to remote processes, utilizing dump files, etc. within Visual Studio.

Exceptional knowledge and skill with SQL Server 2008, 2012, and later is essential.

Exceptional knowledge of the various tools provided by SQL Server and windows, including SQL Server Profiler, Index Tuning Wizard, client statistics, execution plans, statistics, etc.

Exceptional skill writing high-performance T-SQL.

Exception skill writing T-SQL Data Manipulation Language (DML) statements.

Experience with advanced debugging techniques, such as breakpoints, stepping through T-SQL code.

Demonstrated experience developing large-scale, high-availability databases

Experience with Team Foundation Server or SVN (Subversion), source control, branching and merging, is an asset

Working knowledge of WPF, WCF, and multi-threading is an asset.

Experience working with ETL (extract, transfer, and load) utilities is an asset.

Ability to quickly and independently learn about new technologies, business and technical terms and concepts is essential

Ability to discern between value-added and frivolous work

Dedicated to continuous education by obtaining industry-related certifications and training

Ability to collaborate with multiple departments and teams, demonstrating high-quality interpersonal skills, including good listening skills, respectful treatment of others, and professional behavior contributing to a positive and enjoyable environment

Ability to work as part of a team and also individually with a self-starter (“can do”) attitude

Comfortable speaking and interacting with technical and non-technical people

Excellent research, analytical, and organization skills with an exceptional eye for detail

Ability to perform work activities according to set priorities and delivery timelines

Ability to take constructive criticism

Desire to participate in speaking engagements or be involved within user or other community groups or any other events attended by the department

Diploma or degree in Computer Science or Engineering is required

Experience working in an Agile environment is an asset