Senior Software Developer – Java & Microsoft Azure
Summary
A ~11-month full-time onsite contract (via Upstaff) for the Government of Ontario: a hands-on senior Java developer who designs, builds, tests, and deploys enterprise and public-facing applications as Azure cloud microservices, while leading the development team, running code reviews, and overseeing CI/CD, security, and quality.
- Design, develop, configure, test, deploy, and maintain complex enterprise and public-facing applications using Java.
- Translate technical specifications, user stories, business requirements, and acceptance criteria into functional, reliable, and maintainable software.
- Develop and maintain application components, including user interfaces, APIs, business logic, integration services, data-access layers, and database components.
- Apply object-oriented programming principles, structured development practices, and Agile methodologies throughout the software development lifecycle.
- Participate in solution design, technical planning, architecture discussions, and development estimation.
- Ensure that application components comply with approved technical designs, architecture, coding conventions, documentation requirements, and security standards.
- Develop, configure, and deploy cloud-based microservices and application components within the Microsoft Azure environment.
- Design, develop, and maintain APIs, service interfaces, integration services, and enterprise application integrations.
- Apply appropriate API design and integration patterns to support secure, reliable, and maintainable communication between application components and external systems.
- Support continuous integration and continuous deployment (CI/CD) pipelines, automated deployment processes, and configuration management.
- Contribute to application configuration, environment management, monitoring, and operational readiness.
- Troubleshoot integration failures and resolve issues affecting application performance, availability, reliability, and interoperability.
- Support deployment planning, production-readiness assessments, implementation activities, and post-deployment stabilization.
- Develop, implement, and maintain automated unit, integration, API, database, and user-interface tests.
- Validate application functionality, integration points, data processing, and system behaviour against technical specifications and acceptance criteria.
- Apply secure coding practices and address identified software vulnerabilities and security concerns.
- Conduct code reviews to identify defects, security weaknesses, maintainability concerns, and deviations from development standards.
- Diagnose and resolve complex defects, performance bottlenecks, reliability issues, and integration problems.
- Improve application quality, test coverage, performance, scalability, and long-term maintainability.
- Collaborate with quality assurance teams and support system testing, user acceptance testing, defect resolution, and release readiness.
- Provide demonstrated team and solution leadership across software development activities.
- Lead and manage development teams, coordinate development work, and help ensure delivery commitments are achieved.
- Guide technical direction and ensure that implementation decisions remain aligned with approved architecture, technical designs, and project objectives.
- Mentor developers and provide hands-on technical guidance within multidisciplinary teams.
- Conduct code reviews and provide actionable feedback to improve code quality, consistency, security, and maintainability.
- Coordinate development activities, identify technical dependencies, manage development risks, and resolve technical challenges.
- Support sprint planning, release planning, effort estimation, work prioritization, and technical decision-making.
- Promote development best practices, collaborative problem-solving, knowledge sharing, and continuous improvement.
- Prepare and maintain technical documentation, including design notes, API documentation, configuration details, deployment procedures, and support documentation.
- Communicate technical issues, root causes, risks, dependencies, and recommended solutions clearly to technical and non-technical stakeholders.
- Support deployment coordination, implementation planning, production-readiness activities, and post-implementation stabilization.
- Collaborate with business analysts, architects, testers, project managers, operations teams, and other technical specialists.
- Identify opportunities to improve development processes, automation, software reliability, application performance, and delivery efficiency.
Requirements
- Experience developing and maintaining complex enterprise applications using Java.
- Experience developing complex enterprise or public-facing applications.
- Experience translating technical specifications, user stories, and acceptance criteria into working software.
- Experience implementing user interfaces, APIs, services, integrations, business logic, data-access layers, and database components.
- Experience applying object-oriented programming, structured development practices, and Agile development methodologies.
- Experience developing and deploying cloud-based applications, including microservices in Microsoft Azure.
- Experience designing, developing, and maintaining APIs, integration services, and application interfaces.
- Experience with enterprise integration patterns, automated deployment pipelines, continuous integration and deployment, and configuration management.
- Experience supporting application monitoring, operational readiness, deployment activities, and post-implementation stabilization.
- Experience developing automated tests for user interfaces, APIs, and databases.
- Experience developing and maintaining unit, integration, and API tests.
- Experience reviewing code and enforcing development, security, documentation, and testing standards.
- Experience implementing secure coding practices and addressing identified vulnerabilities.
- Experience troubleshooting complex defects and resolving performance, reliability, and integration issues.
- Experience improving application quality, performance, and maintainability.
- Demonstrated experience leading teams and managing software development teams.
- Demonstrated experience providing team and solution leadership, including guiding technical direction, coordinating development activities, and ensuring alignment with approved architecture and delivery objectives.
- Experience mentoring developers and providing technical guidance within multidisciplinary teams.
- Experience conducting code reviews and providing practical feedback to development team members.
- Experience coordinating development work, supporting technical planning, estimating effort, and contributing to sprint and release planning.
- Strong analytical, problem-solving, communication, and technical documentation skills.
- Ability to communicate technical issues, risks, dependencies, and recommendations clearly to stakeholders.
Evaluation Category | Weight |
|---|---|
Software Development Experience | 40% |
Cloud, Integration, and Deployment | 25% |
Testing, Security, and Quality | 20% |
Communication and Technical Leadership | 15% |
Total | 100% |
- Development of complex enterprise or public-facing applications.
- Implementation of user interfaces, APIs, services, integrations, and database components.
- Application of object-oriented, structured, and Agile development methodologies.
- Development and deployment of applications in cloud-based environments, particularly Microsoft Azure.
- APIs, integration patterns, automated deployment, and configuration management.
- Application monitoring and operational readiness.
- Automated testing for user interfaces, APIs, and databases.
- Secure coding, code reviews, and software quality practices.
- Troubleshooting defects and improving application performance and maintainability.
- Technical guidance, code reviews, and development team leadership.
- Strong analytical, documentation, and problem-solving capabilities.
- Clear communication of technical issues and recommendations.
- Previous experience working with the Ontario Public Service (OPS), Government of Ontario, or other public-sector organizations.
- Experience delivering enterprise applications in government environments with established architecture, security, governance, and software delivery standards.