As a Senior Software Developer, you will be responsible for designing, implementing (which includes writing programming code), testing, and documenting software systems. This includes developing new features, enhancing existing features and maintaining the existing programming code including performing bug fixes.
This position is located in our Toronto, Ontario Canada offices.
- 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
- 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
Send Resume and Cover Letter to firstname.lastname@example.org