Job Summary
The incumbent is responsible for assigned deliverables, aligning workload and focus on key tasks to deliver as per service commitment, as well as leveraging expertise and skill set to achieve delivery goals. The role contributes to the whole solution by analyzing functional specifications to identify the best technical design, and for the development, implementation and support of the application. The specialist leverages modern software tools, including AI-assisted development technologies, to optimize coding efficiency, unit testing, and solution quality. Depending on the assignment, the role may apply in either a project, enhancement, or support environment. The role may specialize in a particular technology domain, such as onboard systems, GIS, business portfolios or enterprise systems for example.
Main Responsibilities
Delivery
Write high-performing quality code to fulfill design specifications and pass code reviews with minimal number of defects, leveraging modern techniques and AI coding assistants where appropriate
Apply configuration on development environment when required
Participate in implementing full products in production
Support Developers in providing application versions and details for implementation plans
Technical Expertise
Interact with the Functional Designer to understand requirements for medium-complexity solutions
Highlight technical impacts of functional designs on existing applications based on a detailed analysis
Deliver technical design and database structure for medium to high application complexity
Maintain comprehensive technical documentations and promote basic AI tools (e.g. GenAI code assistance, automated unit testing tools) to streamline personal coding workflows
Architecture
Contribute to developing design and coding standards applied across the development practice
Document blueprint / software architecture based on requirements and functional designs
Participate to the CN Enterprise Architecture principles
Quality Controls
- Ensure Quality Key Performance Indicators (KPIs) are identified, measured, and produced in compliance with development standards.
- Ensure consistent, high-quality testing (e.g., Unit, Assembly, and automated regression testing) across assigned projects
Working Conditions
The role has standard working conditions in an office environment with a regular workweek from Monday to Friday and is eligible to participate in CN's hybrid work model. The role involves managing priorities and delivering work within established timelines, with support from the team to ensure sustainable and effective workload management. Occasional off-hour support may be required if assigned to application support duty within CN's 24/7 operational railway environment.
Experience
Software Development
- More than 5 years of experience as a Developer
- Practical experience with Linux internals, containers and shell scripting
- Practical experience with source code and binary repositories using git and Azure Development Operations (ADO)
- Practical experience designing coding distributed systems (e.g., asynchronous and synchronous)
- Experience designing and developing front-end (e.g., Angular) and back-end microservices
- Experience leading engineering project teams and working with cross functional partners to build technical solutions that achieve team and organizational goal
- Hands-on experience using modern development tools and basic AI-assisted coding tools (e.g. CoPilot, Gemini for developers) to optimize workflow.
- Candidates with an equivalent combination of education, training, and experience will be considered
Education/Certification/Designation
- Bachelor's Degree in Computer Science, Computer Engineering, or related field.
- Candidates with equivalent practical experience, education, or training will be considered
Competencies
- We Care About Each Other
- We Strive for Excellence
- We Succeed Together
- We Lead Responsibly
- Compliance
- Customer service
- AI Literacy and data orientation
- High
- Process optimization
Technical Skills/Knowledge
Proficiency in core programming language and frameworks: Java, Python, JavaScript and Typescript, Angular, Spring Boot.Knowledge of infrastructure as code(e.g.,Terraformand Ansible).Ability to draw architectural diagrams, guides and documentation to share across teams.Ability to automate continuous integration and continuous deployments pipelines (CI/CD) using Azure Development Operations.Familiarity with AI-assisted software engineering practices and prompt engineering for code development.
- Knowledge of Metrics Frameworks, Logging, Distributed Tracing, Profiling, Cloud-Native technologies, and Cloud-native Observability tools.