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 role of Specialist Software Development is to contribute to the whole solution by analyzing functional specifications to identify the best technical design (blueprint) and coding of applications. The Specialist takes full responsibility of assigned deliverables, aligns own workload, and focuses on key tasks to deliver as per service commitment, leveraging own expertise and skillset to achieve delivery goals. Depending on the assignment, the role may apply in either a Project, Enhancement or Support environment.
Main Responsibilities
Works with managers, product management, system designers, and other members of the team to implement the software requirements committed by the team.
Software Design
· Interact with system designers, product management and architecture to understand requirements of a project.
· Highlight the technical impacts of the functional design on existing applications based on a detailed analysis.
· Define software detailed requirements based on the system functional and non-functional requirements.
· Create and maintain technical software documentation.
· Contribute to the preparation, compliance, and improvement of coding standards in place for the Onboard Network & Communication team.
· Analyze sub-system component issues and/or business requirements to design effective, high-availability, business-critical solutions.
· Work with project managers during the project to identify software design and build deliverables with associated estimates including technical risks.
Delivery
· Create or modify software applications to fulfill design requirements.
· Perform code reviews with other team members.
· Define, implement, and maintain of software and configuration.
· Work with system designers to apply or modify system configuration of embedded systems hosting software applications.
Expertise in Software Development concepts and tools
o Repository management tools (i.e. GIT, SVN)
o CI/CD & Pipeline solutions (Azure DevOps, Jenkins)
E e Expertise in embedded software development with the following skills:
o C++ programming language (including GCC, makefile or cmake)
o Python programming language
o Bash scripting language
o Experience with the Linux command line (preferably on Linux RedHat OS)
o Rest API server implementation and queries
o Basic understanding of database configuration and maintenance
· Familiarity with end-user (Front End) Interface development
o Angular
o JavaScript/Web development
·
· Basic understanding of computer networking concept
o DNS, SNMP, SSH, SSL
· Understanding cloud-based infrastructure (Google, Azure, AWS) solutions
o Cloud orchestration
o Cloud data integration
o Hybrid Integration
o Integration Platform as a Service
· Follow change and release management processes.
· Support Q&A from engineers from a technical subsystem product owner perspective
· Participate in implementing full product in production.
· Provide software delivery mechanisms and implementation plan for internal stakeholders.
· Support debugging and issue investigation in production and provide root cause analysis reports.
· Provide necessary documentation, training, and presentation material to operationalize developed solutions.
Quality Controls
· Ensure quality KPIs are identified, measured, and produced in line with team development standards.
· Ensure right level of testing (unit & assembly) is consistent across all projects.
· Perform unit testing of the software and configuration including writing and executing scripts for automated testing.
· Establish pilot test plan, execute pilot testing and test report for newly defined solution
· Requirements
Education/Certification/Designation
· Bachelor's degree in computer science or equivalent degree or work experience
Skills/Knowledge
· Detail oriented analytical skills.
· Strong algorithmic thinking and design skills.
· Expertise in debugging and problem investigation skills.
Experience
· Minimum 7-10 years overall work experience.
· 5 years experience as a developer.
· 2 years experience as writing automated unit testing scripts.
Assets
· Experience in working with Agile and DevOps development organizations.
· Knowledge of cloud-based infrastructure (Google, Azure, AWS) solutions.
· Knowledge of application development for cloud-based solutions.
· Managing life cycle of delivery of complex software solution.
· Scrum Master.
Working Conditions
· In office presence required 3 days a week.
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.
At CN, we are dedicated to building North America's safest, most inclusive and sustainable railroad, which includes reflecting the communities in which we operate. Research shows that candidates from underrepresented groups often don't apply unless they feel they fit the job posting at 100%. Even if you don't see yourself in every job requirement listed in a posting, we still encourage you to apply. If you require an accommodation for the recruitment process (including alternate formats of materials, accessible meeting rooms or other accommodations), please reach out to our team at cnrecruitment@cn.ca.
As an equal employment opportunity employer, all qualified applicants will receive consideration for employment without regard to race, color, religion, sex, sexual orientation, gender identity, national origin, disability, protected veteran status, and other protected status as required by applicable law. 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.