Agile Software Developer (.NET/C#)

  • Contract

Company Description

Our Information Technology division is responsible for the infrastructure and software to enable the efficient operation of the highway---including toll capture, account management, financials, and data storage---as well as customer services including call centre, web, IVR and supporting workflows.

The organization is in the process of implementing an Enterprise Architecture vision that will develop an Agile Enterprise and transform the technology landscape to a more robust, scalable, and flexible architecture. Some of the major components of this new architecture include a Service Oriented Architecture (SOA), an Enterprise Service Bus (ESB), a Business Process Management System (BPMS), Business Rule Engine (BRE), and a Customer Relationship Management (CRM) system.

The technology includes a high-speed private network across 2 data centres; a converged “POD” server/network/storage stack with a comprehensive virtualization implementation, including a Linux and Windows configuration; Java and C++ for proprietary and integration coding; and a best of breed combination of open source and commercial products for middleware, business process and relationship management, and information management.

Delivery is accomplished using an Agile-Scrum approach, including self-organization, short iterations, strong collaboration, and dedicated teams in scrum rooms. We are looking for an energetic professional with a positive outlook to augment our growing team.

Job Description

• Demonstrate the attributes of a good Scrum team member:

» Team Collaboration

» Communication

» Agility

» Energy

» Cross-Functionality

·        Learn, follow and adapt Agile software development processes

·        Actively participate in Scrum Planning, decomposing Product Backlog Items into tasks and estimating effort

·        Select and complete appropriate tasks from the Scrum Wall, balancing existing skills with a willingness to learn

·        Share and gain knowledge through collaboration, pairing, or other methods

·        Continuously learn new skills to strengthen the team and to be able to operate as a Feature Team

·        Build Quality In through techniques such as Test-Driven Development, constant feedback, Test Automation, and Continuous Integration

·        Communicate often and effectively with other Team Members, the Scrum Master, and the Product Owner

·        Demonstrate completed work to team and to stakeholders at Sprint Review

·        Participate in regular team reviews, assessing each other’s performance and fostering continuous improvement

Qualifications

·        Must have: .NET (C#), some RDBMS (SQL Server or T-SQL preferred), JavaScript

·        Nice to have: jQuery, web services

·        A Strong foundation in Object-Oriented Design and Programming (Design Patterns, SOLID principles, etc.)

·        A Strong foundation in Object-Oriented Design and Programming (Design Patterns, SOLID principles, etc.)

·        A Software Craftsman who obsesses over writing smart, simple and clean code

·        Experience with Test-Driven Development, and the understanding that writing tests first produces the best code

·        Experience with refactoring, and able to produce “debt-free” code within each iteration

·        Comfortable with Collective Code Ownership and Pair Programming

·        Understand and able to balance the trade-offs between up-front and Emergent Design

·        Skilled with Automated Builds and Continuous Integration

·        Experience with ATDD/BDD

·        Proficient with effort estimation at a sprint task level

·        Comfortable demonstrating completed work

·        Experience with building SOA components leveraging an ESB

·        Skilled in Web based application development

·        Experience with data models and DB interface development and optimization

·        Skilled with Linux including scripting

·        Experience with SFDC APEX and Visualforce asset

·        Experience with BPMS and BRMS an asset

·        Experience with OCR, specifically ALPR, and asset

·        Bachelor’s degree in Computer Science, Computer Engineering or equivalent training and experience