Job Posting Title: Programmer/Developer – Level 2
Location: Toronto, ON
Duration: 4 months to start
Our public sector client is looking for a Programmer/Developer – Level 2 for a Moose Program Modernization – Big Game Draws
To work with the project team to complete the Big Game Draw System. The developer must be able to :
- Develop Java applications based on the Java Spring Boot Framework and deployable with Maven Script.
- Reading input and writing output to ASCII files.
- Managing arrays/datasets with up to 200,000 elements.
- Develop and maintain a random draw algorithm library that reliably generates random identifiers that can be used for the draw process. Applicants success in the draw system should result in a uniform distribution.
- Using an Agile methodology contribute to business problem solving, offering alternative solutions and prototyping recommended solutions based on team suggestions.
- A series of one week sprints will be used to review project backlog, identify high risk high priority items, build, review and make last minute modifications prior to deployment. NOTE: This may result in non-consecutive days of work as not all weeks will have project backlog items.
The developer will provide all:
- source code, configuration files and executables.
- deployment plan including all files and step by step instructions for all components of the system (UI, services, database, environment)
- (updated) system documentation describing how the various components work (software design overview, class diagrams, activity diagrams, module descriptions, logical data model, error handling/error messages.
- appropriate documentation on how to update the application to create draws for other big game animals.
Work is required to:
- Make changes to the input and output CSV interchange files (applicant, quota ,control files and results files) for Moose, Elk, Antlerless Deer and Controlled Deer.
- Make changes to supporting draw files (validation error reports, draw summary and audit files).
- Hosting environment changes (moving from UAT to Production)
- Support for the cloud implementation of the software
- Implement No Change Request (NoCRQ) functionality – webhooks for automated change requests.
- Integrate authentication and authorization for internal OPS users with Azure Active Directory.
- (potentially) integrate RESTful webservices for future automated data exchange .
- (potential) remediation changes to the applications security model resulting from a Threat Risk Environment.
- Updates to a responsive user interface. User interface must be AODA compliant WCAG level AA.
- Demonstrated experience developing Java applications based on the Java Spring Boot Framework and deplorable with Maven Script.
- Demonstrated experience with Azure SQL database:
- developing database scripts
- database design
- maintain database using Azure Data Studio
- Database design using ERWIN
- Utilizing Angular Framework
- Utilizing Azure DevOps
- Implement and utilize a deployment strategy using Azure DevOps (git repository, pipeline, release, webhooks, etc). Create deployment and release templates for testing, staging and production environments.
- Adopt test driven strategy to create a comprehensive unit test suite that makes all application functions testable and easy to integrate with automated testing tools.
- Develop unit tests and reports that confirms requirements are met.
- demonstrate algorithms for draw allocation are random and results approach an uniform distribution.
- Ability to provide user and system documentation as required
- Ability to update/maintain existing documentation to reflect changes to requirements
- Knowledge of hunting and big game draws : quota's, allocation methods (random based, preference point based)
Experience and Skill Set Requirements
Programming and Development – 40%
5+ years of programming and development experience
Demonstrated experience in the design, coding, testing, debugging and documentation of applications with object oriented languages and/or third generation language development tools with emphasis on Java (Spring Boot Framework).
Experience working with random draws (lottery), preference point allocation methods, random sample selection, an asset.
Experience analyzing/reverse engineering legacy code, FORTRAN is an asset.
Data Analysis and Design – 25%
Experience in managing large sets of data (~150, 000 records) to:
Programmatically validate input and output
Search for key items to create record sub-sets
Search for associated records within the sub-sets of records
Experience manipulating data using files, arrays, hash tables, binary trees, dynamic arrays, etc as appropriate.
Create quality reports summarizing the outcomes (e.g. records input/output, results, audit trails)
Technical – 20%
Experience using Azure DevOPS
Experience using Angular Framework
Java Spring Boot Framework
No-CRQ – Webhooks
Azure data studio
Accessibility – 10%
Experience in developing and coding web UI components that are compliant with the Accessibility for Ontarians with Disability Act (WCAG 2.0 Level AA).
Software must be designed with ease of use in mind, intuitive and simple.
Public Sector Experience – 5%
Experience with fish and wildlife with an emphasis on hunting big game animals, hunting license and validation tags, working with big game draws and wildlife quotas using methods like random allocation to individuals and groups of individuals, preference point allocation methods, etc.