Specialist Software Development

March 12 2024
Industries Goods transportation, Warehousing
Categories Computer Engineering, Software Engineering,
Montreal, QC • Full time

At CN, we work together to move our company—and North America—forward. Be part of our Information & Technology (I&T) team, a critical piece of the engine that keeps us in motion. From enterprise architecture to operational technology, our teams use the agile methodology to automate and digitize our railroad ensuring our operations run optimally and safely and our employees can focus on value-added tasks. You will be able to develop your skills and career in our close-knit, safety-focused culture working together as ONE TEAM. The careers we offer are meaningful because the work we do matters. Join us!

Job Summary:

The Specialist Software Development plays a critical role in ensuring the successful and timely delivery of high-quality software products that are used to plan and safely operate CNs Transportation Business. The primary purpose of the Specialist Software Development is to facilitate the efficient and effective delivery of software solutions within an Agile framework.

They coordinate the efforts of the POD members, set priorities, ensure alignment with project objectives, and remove obstacles to progress. Additionally, they serve as a communication bridge between the POD and product/ project stakeholders, oversee the delivery process, and drive continuous improvement initiatives to optimize software delivery practices.

While fulfilling their POD leadership responsibilities, they also actively engage in software development tasks, contributing to coding, testing, and other technical activities. By combining leadership with hands-on involvement in development tasks, the Specialist Software Development ensures both the effective functioning of the team and the successful delivery of high-quality software products.

This is a Technical Leadership role, and successful candidates will have a broad range of skills and knowledge in IT service delivery, business analysis, project management, and software development.

Major Responsibilities:

List the job's key tasks and responsibilities in order of importance. Most jobs have three to five major responsibilities. Please specify the approximate amount of time (e.g. 50%) spent on each:

DEMAND MANAGEMENT

Collaborates with Delivery Managers, Product Managers, and Service Offering Managers Architects to identify delivery demands including new projects, product enhancements and Level 3 application support (problem investigation and corrective content for product defects).

Collaborates with Solution Designers, Business Analysts, and Solution Architects to define proposed solutions, estimate development efforts, and elaborate business requirements.

Documents Solution Delivery Plans that outline the approach, activities, timeline, and resources required to deliver solutions to meet specific delivery demands a particular set of requirements.

SCRUM MANAGEMENT

Coordinate the day-to-day activities of an Agile Development team, ensuring that work assignments are distributed and tracked appropriately, and that sprint goals are attained.

Support and guide the team by identifying and removing any obstacles or impediments that may hinder the progress of deliverables, in addition to technical development expertise as required.

Facilitates communication within the team and project/ product stakeholders. They ensure that everyone is aware of the status of deliverables, priorities, and changes to delivery timelines.

SOFTWARE DEVELOPMENT

Develop a deep domain expertise for the products and projects supported by the POD. This includes understanding how the systems impact CNs business and the personas of consumers.

Decompose requirements into user stories that are small, independent, and testable. Collaborate with product stakeholders to clearly define user story acceptance criteria.

Work closely with cross-functional teams to design, develop, and maintain high-quality software solutions (on time and budget). Ensure compliance to all quality, security, and code standards.

Support other developers within the POD by conducting code reviews, troubleshooting of problems/ defects, and by arbitrating any conflicting requirements or priorities.

RELEASE AND CHANGE MANAGEMENT

Safeguard CN production environments by ensuring that all solution requirements and integration failure points, or other dependencies have been thoroughly tested prior to release.

Document comprehensive production Implementation Plans and define the roles and responsibilities of all contributors to releases and schedule/ submit production Change Controls.

Collaborate with operational and support stakeholders to ensure the seamless implementation of delivered solutions into the production environment and transition to support personnel.

Skills / Functional Knowledge:

Proficient with the software development lifecycle and working in an agile environment.

Experience in business analysis, application design and business requirements gathering.

Strong negotiation, analytical, problem solving, and decision-making skills.

Effective communication skills with both a technical and nontechnical audience at all levels.

Experience with Service Management including planning, design, implementation, operation, and continuous improvement of service offerings.

Technical Skills

Front-end Web Development: Including HTML, CSS, and JavaScript. Knowledge of modern frameworks/libraries like Angular, typescript, native script, or Ionic.

Mobility Applications: Experience in Android Studio and Xcode for IOS development with Angular and Native Script, mobile architecture components, and Android and IOS frameworks.

Back-end Development: Proficiency with Microservices using MuleSoft, Tomcat, JBoss, and experience working with Kafka, Apigee, MQ, IIB, Node JS and Java.

Database Management: Understanding of database systems such as SQL Server, PostgreSQL, or others. Ability to design and interact with databases efficiently and perform query optimisation.

Back end as a Service (Baas): Proficiency in Kinvey and/or Firebase including collections, flex services, rapid services, collection hooks, custom endpoints, and authentication.

DevSecOps and Version Control: Experience working with Git and Azure Dev Ops for version control, and pipeline management.

APIs (Application Programming Interfaces): Understanding and ability to create RESTful APIs to facilitate communication between front-end and back-end components.

Server Management: Knowledge of server-side operations and deployment. Familiarity with cloud platforms like Azure and Google Cloud.

Command Line/Shell Scripting: Competency in using the command line interface for tasks like navigating file systems, executing scripts, and managing servers.

Security Basics: Understanding of basic security principles to develop secure applications. Identify any security issues that the application or any process may have and propose solutions.

Education / Certification / Experience:

Bachelor's degree in computer sciences, Software Engineering, or Information Technology

Minimum of 5-10 years of relevant experience in software development and scrum methodologies

Organizational Analysis:

The Specialist Software Development orchestrates the delivery of applications that are integral to the planning, operations, and safety of CNs Transportation business.

The Specialist Software Development is a subject matter expert of their business domain and bridges any gaps between product stakeholders and the SCRUM team (POD).

The impact of poor decision making in this role may lead to projects or other delivery delays, poor product quality impacting operations, or financial impacts (i.e. inflated delivery costs).

Decision Making:

The Specialist Software Development has the authority to make decisions or take action on:

Setting Priorities: The Specialist Software Development has the authority to prioritize tasks and activities within the team, based on project goals, timelines, and resource availability.

Task Assignment: The Specialist Software Development can assign tasks and responsibilities to team members, considering their skills, expertise, and availability.

Problem Solving: The Specialist Software Development is empowered to make decisions to address delivery challenges, technical obstacles, or conflicts that arise within the team.

Risk Management: The Specialist Software Development has the authority to assess risks, develop mitigation strategies, and implement contingency plans to minimize the impact on project delivery.

Communication and Stakeholder Engagement: The Specialist Software Development has the authority to represent the team in communications with stakeholders, provide updates on project progress, address stakeholder concerns, and manage expectations.

About CN

CN is a world-class transportation leader and trade-enabler. Essential to the economy, to the customers, and to the communities it serves, CN safely transports more than 300 million tons of natural resources, manufactured products, and finished goods throughout North America every year. As the only railroad connecting Canada's Eastern and Western coasts with the Southern tip of the U.S. through a 19,500 mile rail network, CN and its affiliates have been contributing to community prosperity and sustainable trade since 1919. CN is committed to programs supporting social responsibility and environmental stewardship. At CN, we work as ONE TEAM, focused on safety, sustainability and our customers, providing operational and supply chain excellence to deliver results.

For internal candidates, note that the grade level of the position will depend on the employee's experience.

CN is an employment equity employer and we encourage all qualified candidates to apply. We thank all applicants for their interest, however, only candidates under consideration will be contacted. Please monitor your email on a regular basis, as communication is primarily made through email.

Apply now!

Similar offers

Searching...
No similar offer found.
An error has occured, try again later.

Jobs.ca network