Senior Application Developer - Java - Calgary, AB
- Req ID: [[id]]
- Department: [[filter6]]
- Job Type: [[jobLevel]]
- Position Type: [[relocationPack]]
- Location: [[filter3]], [[filter2]]
- Country: [[filter1]]
- % of Travel: [[travel]]
- # of Positions: [[numberOpenings]]
- Job Grade: [[jobGrade]]
- Job Available to: [[jobAvailable]]
- Deadline to apply: [[closeDate]]
Canadian Pacific is a transcontinental railway in Canada and the United States with direct links to major ports on the west and east coasts, providing North American customers a competitive rail service with access to key markets in every corner of the globe. CP is growing with its customers, offering a suite of freight transportation services, logistics solutions and supply chain expertise. Visit cpr.ca to see the rail advantages of CP.
PURPOSE OF THE POSITION
- Conduct requirement gathering and analysis to understand the domain of the software problem and/or functionality, the interfaces between hardware and software, and the overall software characteristics.
- Work with Solution architects and technical lead to understand application, database and integration technologies, including solution and service-oriented architectures and their breakdown into solution designs.
- Work as part of a team contributing to designing and developing successful software and supporting software testing, deployment, maintenance, and evolution activities by correcting programming errors, responding to scope changes, and coding software enhancements
- Applying knowledge of software development best practices, including coding standards, code reviews, source control management, build processes, testing, and operations
- Provide technical support to business critical applications to ensure operational efficiency and safety is not compromised
- Work with users and clients to determine what their needs are and develop the software to meet the requirements.
- Create development plan and assign tasks to junior developers and other employees
- Work with architects and colleagues to produce system designs, test artifacts, and recommend upgrades to existing systems as required.
- Create integration plans, flow diagrams and models that show programmers how the code will work together for the software.
- Work with other computer specialists and collaborate within the company to develop software.
- Develop code for multiple categories including end-user applications and utility software either as stand-alone applications or enterprise systems to create optimum systems for the business
- Create documentation that detail how applications or systems work together to ensure they are maintained properly in the future and to help with any upgrades.
- Provide code and database administration in live and test environments.
- Provide 24*7 on-call support (on rotation) of software solutions/applications in compliance with CP’s incident and problem management processes; and determined Service Level Agreements (SLA)
- Write technical procedures and documentation for the applications including operations, user guide, etc.
- Participate in meetings with team to discuss progress and issues to be resolved, and report progress on a weekly basis to the Project Manager/Technical Lead.
- Understand secure software development best practices and able to guide junior developers
- Possess a creative mindset that can think outside the box and find alternative ways to develop computer applications.
- Focused and detail oriented to spot any inaccuracies or errors within requirements and code.
- University degree in Computer Science, Information Systems, Engineering or equivalent Application development experience
- 7+ years of experience as a Senior Java Developer or similar role
- Experience designing, building and testing Java enterprise applications
- In-depth knowledge of popular Java frameworks like JSF and Spring MVC
- Experience with Object-Oriented Design (OOD)
- Excellent knowledge of Relational Databases, SQL and ORM technologies (JPA2, Hibernate)
- Experience with complex data relationships and operating environments
- Good delegation and time management skills
- Problem-solving abilities
- Experience with MQ messaging or other messaging systems
- Experience working closely with the business to arrive at an optimal solution in terms of functionality, timelines, and implementation
- Experience with agile development methodologies
- Experience in the Spring Framework
- Experience with test-driven development
- Ability to adjust to changing priorities; managing and communicating interdepartmental and management expectations
- Relevant railway or PTC experience is an asset
- Prior experience in 24*7 on-call support is an asset
- Experience working with docker / kubernetes is an asset
- Experience with CI/CD pipeline is an asset
WHAT CP HAS TO OFFER:
- Flexible and competitive benefits package
- Competitive company pension plan
- Employee Share Purchase Plan
- Performance Incentive Program
- Annual Fitness Subsidy
As an employer with national presence, the possibility does exist that the location of your position may be changed based on organizational requirements.
The successful candidate will need to successfully complete the following clearances:
- Criminal history check
- Reference check
Management Conductor Program:
Becoming a qualified conductor or locomotive engineer is the single best way for a management employee to learn the business at CP. You may be required to obtain a certification or to maintain your current certification/qualification as a conductor or locomotive engineer.
CP is an equal opportunity employer committed to the principles of employment equity and inclusion. We welcome applications from all qualified individuals. All applicant information will be managed in accordance with the federal Personal Information Protection and Electronic Documents Act ("PIPEDA").