Senior Software Developer-.NET
Clever Devices
Toronto, ON
As THE leader in transit technology, Clever Devices’ vision is to make meaningful contributions to worldwide mobility. Our goal is to be the leading provider of smart, sustainable technology that improves the quality of mobility in communities around the world. We are seeking an experienced Senior Software Developer to join our growing and passionate team in Toronto.

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.

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