PURPOSE
The Senior Developer role is highly proficient in all aspects of software design, development and delivery. This individual works on all phases of the Software Development Life Cycle (SDLC) and provides functional and strategic end user support to the Calgary Board of Education (CBE) application ecosystem and environments.
This role requires extensive current technical knowledge and the software development expertise necessary to create and maintain leading-edge applications and systems using the latest Microsoft and other CBE approved technologies. This role delivers high quality software solutions that comprise well designed components including, but not limited to databases, web services, reports, web, desktop and mobile applications along with system interfaces and integrations.
The Senior Developer is required to build and maintain strong, relationships with business users, stakeholders, vendors and peers by delivering solutions that solve complex business and technical problems. This role is responsible for ensuring that all applications are developed to produce optimal performance, reliability, data integrity and data security while meeting business requirements.
ACCOUNTABILITY
This job is accountable for:
- Continuous delivery of application solutions using the CBE’s standardized technology stack.
- Gathering requirements, analyzing, developing, testing and implementing new systems or enhancements to existing systems promptly, in a fast-paced demanding and collaborative environment.
- Design, development, implementation and maintenance of interfaces between systems that may include proprietary software using various integration techniques and technologies.
- Mentoring to other software developers and technical support staff.
- Responding to technology outages and issues, either independently or leading a troubleshooting team to ensure timely resolution by conducting root cause analysis.
- Providing support to the CBE’s business user community and other stakeholders.
- Providing strategic guidance and planning for existing and future application ecosystem development, maintenance, standards, tools, and upgrades for area of focus.
- Optimizing and enhancing existing solutions as necessary.
- Working with the Senior Enterprise Planner and Solutions Architects on software and related technical architectures.
- Keeping current with software design, delivery and coding trends, and advances.
MAJOR RESPONSIBILITIES
Conducts all aspects of design, development and implementation related to new software solutions as well as the modification of existing systems and solutions
- Architects software and technical solutions that satisfy complex enterprise requirements.
- Develops software that satisfies complex enterprise requirements.
- Leads, initiates, plans, executes, and monitors all development and implementation tasks necessary for creating medium to large scale enterprise systems or solutions.
- Conducts activities and tasks related to the Software Development Life Cycle (SDLC) including but not limited to, requirements gathering, analyzing and translating requirements into technological specifications (use cases, coding requirements, and testing requirements)
- Designs and develops database schemas, tables, indexes, relationships, keys, and security specifications.
- Codes complete and accurate solutions consistent with business requirements.
- Formulates task estimates and timelines as part of project planning and project management.
- Applies best practices and processes for code and database development and source code management.
- Develops technical specifications, test cases/scenarios, scripts, automated test cases, ETL processes.
- Analyses test cases/scenarios, test results to ensure completeness and effectiveness.
- Documents processes and leads or works on cross functional teams to resolve system problems.
- Troubleshoots and remediates software ‘bugs’ and other coding or design deficiencies.
- Prepares Change Requests and stewards solutions through Change Management processes.
- Assists business and technical users with designing, creating and maintaining customized user reports.
- Supports business users with existing applications, new application ideas, new technologies and/or Technology Governance.
- Takes ownership and completes design, development and implementation tasks efficiently.
- Utilizes automation to efficiently perform repeatable user testing or other tasks.
- Conducts code reviews, solution reviews and provides feedback
- Mentors junior systems development staff on all aspects of software design, development and implementation.
Designs, builds, documents, implements and supports interfaces, automations, and the reengineering of processes related to applications or systems
- Works with business users to determine the technical as well as process elements required to integrate systems.
- Designs solutions and processes for integrating systems including but not limited to utilizing, automated data file transfers, SQL Server Integration Services (SSIS) packages, and Web Service integrations.
- Designs, develops, tests and implements new interfaces between systems.
- Analyses data files, tables and reports for errors and inconsistencies.
- Develops and implements strategies to mitigate and remediate data quality, performance or data integrity issues.
- Updates and maintains up to date documentation of interfaces between systems.
- Enhances and supports existing interfaces between systems.
Ensures systems perform reliably and consistent with end users expectations
- Maintains file structures, system variables, permissions, and other configurations for Test, Quality Assurance (QA), Training and Production environments required for software and solution development.
- Monitors system performance and performs system administration tasks and functions.
- Supports, enhances and upgrades legacy systems to ensure these systems continue to perform optimally.
- Analyses and maintains data mappings, integrations or interfaces related to legacy systems.
- Provides expert advice and recommendations based on knowledge and experiences with business systems and users.
Develops strategies and implements plans for keeping applications and systems current
- Understands evolving business needs and proposes enhancements, upgrades or replacement solutions in conjunction with Business Units and Supervisor input.
- Modifies legacy application code to support the changing needs of the business.
- Understands legacy application software and their associated code base.
- Troubleshoots data quality, performance, and data integrity issues.
- Applies CBE standards, methodologies, processes, and IT best practices to applications and systems to ensure they are appropriately maintained, enhanced, upgraded and eventually decommissioned.
Provides other IT support
- Performs other related responsibilities as assigned to meet the purpose and accountabilities of the role.
- Coordinates work and provides advice to medium to large project teams on technology initiatives.
- Identifies and reports on the risks to IT governance bodies (e.g. Change Advisory Board – CAB, Emergency Change Advisory Board – ECAB, Technology Council).
- Develops and documents standards, procedures and guidelines related to technical and application environments.
- Liaises with vendors and external agencies as required.
- Prepares and delivers presentations.
- May be required to participate in a 7x24 on-call rotation based on a predetermined schedule.