Specialist Software Development


Offre publiée le 2024-03-27

Canadian National Railway Company

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 :


  • 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.


  • 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.


  • 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.


  • 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

  • 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.

Check here for answers to your CN hiring questions.

Applying for a Job at CN

Does CN offer entry-level positions?

Yes, we have many positions ranging from entry to senior levels, both in the field and in corporate and IT functions. All available positions are posted onto our Careers website.

Does CN hire students, interns, and new graduates?

Yes, Internship opportunities are posted onto our Careers website, when available.

What's the best way to apply for a position at CN?

Search and apply for a job on our Careers website. Once you’ve created a profile you’ll be able to apply for additional openings and view the status of your application(s).

We do not accept resumes by email, fax or mail.

Can I apply for more than one job at the same time?

Yes, feel free to apply to any jobs you're qualified for.

What is the rehire process for former CN employees?

The application process for a former CN employee is the same as for all other candidates.

Does CN accept foreign applicants?

CN requires that applicants be legally eligible to work in Canada or the US. This includes Citizens, Permanent Residents, or anyone in possession of a work permit with certain conditions.

At this time, CN does not provide immigration assistance to foreign applicants.

My Job Application

What is my application status?

To see your application status, go to our Careers website and login to your candidate profile. It may take some time before your status is updated, as we receive a high volume of applications on a daily basis.

If you are being considered for a job, you will be contacted by a member of our Recruitment Team.

Can I withdraw an application?

Yes, if you change your mind about a particular job, you may withdraw your application at any time. If you've already received a job offer, you can simply decline it.

I completed an Online Assessment, what are my next steps?

The Recruitment Team will notify you by email whether or not you will be moving on to the next step of the recruitment process, based on your online assessment results.

If successful, you will be invited to the next available recruitment session hosted in the location you have applied to.

Keep in mind that it can take several weeks before a session becomes available.

I was unsuccessful with the online assessment - how long must I wait before I can re-apply?

You will have to wait a period of 6 months before you are eligible to re-apply to a position that requires the same testing.

I am having technical difficulties with the online assessment.

For online assessment troubleshooting and support please contact [email protected] .

I was not selected for a job and would like feedback on my application.

Due to the high number of applications we receive, we cannot provide feedback as to why each candidate was not progressed.

Using our career site

How do I create a Careers profile?

Click the Create a Profile button in the upper right-hand corner of our Careers website and complete the form and captcha.

Can I edit a previously submitted cover letters, resumes, and / or documents?

No, once an application has been submitted, you cannot upload additional documents, revise questions, nor replace the existing resume or letters attached to that application.

I forgot my password.

If you forgot your password or need to create a new one, click on the Forgot Password link. Enter your User Name or User ID, and an email containing your password will be sent to you.

Be sure to check your inbox, spam, and junk folders for the password recovery email. If you do not receive the password recovery email within 24hrs, contact your Talent Acquisition Advisor directly or send an email to [email protected] .

For all other technical issues

If you are experiencing technical difficulties with our Careers website, send us an email at [email protected] describing the technical issue(s) in detail and provide us with screenshots so that we can better assist you.


6 hours ago