Senior Developer - Java and Python
- Req ID: 100151
- Department: Information Services
- Job Type: Full-Time
- Position Type: Non-Union
- Location: Calgary, Alberta
- Country: Canada
- % of Travel: 0-10%
- # of Positions: 1
- Job Grade: 4
- Job Available to: Internal & External
Canadian Pacific is a transcontinental railway in Canada and the United States with direct links to major ports on the west and east coasts. CP provides 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. For more on our purpose, culture, and strategy, visit cpr.ca/en/about-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
POSITION ACCOUNTABILITIES
- 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.
POSITION REQUIREMENTS
- University degree in Computer Science, Information Systems, Engineering or equivalent Application development experience
- Strong Experience as a Senior Java and/or Python Developer
- 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
- 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 with test-driven development
- Experience with HTML, CSS and JavaScript frameworks such as UI5/OpenUI5, AngularJS or jQuery UI
NICE TO HAVE
- Ability to adjust to changing priorities, managing and communicating interdepartmental and management expectations
- Experience in 24*7 on-call support
- Experience working with docker / kubernetes
- Experience with CI/CD pipeline
- Experience with MQ messaging
WHAT CP HAS TO OFFER:
- Flexible and competitive benefits package
- Competitive company pension plan
- Employee Share Purchase Plan
- Performance Incentive Program
- Annual Fitness Subsidy
ADDITIONAL INFORMATION:
As an employer with national presence, the possibility does exist that the location of your position may be changed based on organizational requirements.
Background Investigation:
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").