Service registry for dynamic registration and on-demand discovery of APIs - ON-111
Preferred Disciplines and Level: Software engineer (Masters, PhD or PDF)
Project Length: 8-12 months (2 units)
Desired start date: ASAP
Location: Toronto, Ontario
No. of Positions: 1
Preferences: Language: English
About the Company:
DNAstack is a Toronto-based software company developing a cutting-edge cloud-based platform for genomics analysis, interpretation and sharing. We are a small team of passionate software engineers, bioinformaticians, geneticists and entrepreneurs, helping to define the standards that will drive the field of genomics into the future.
We are looking for talented interns to join our team and assist in the design and development of various aspects of the backend of our platform, and open source projects. We are agile and move quickly. You can expect to tackle tough problems, design and implement features for a robust, secure and scalable cloud-based platform. You will also have the opportunity to be involved in the development of standards defining the future of genomics.
We are in an era of abundant genomic information fueled by steadily decreasing sequencing and processing costs and service platforms that ease analysis. These critical resources are spread throughout the world and are increasingly challenging to aggregate for a multitude of reasons, including scale, regulatory differences, and data harmonization across information arising from diverse origins. We believe a solution to this challenge is to facilitate the discovery and utilization of these varied data sources and services via standard APIs and context-aware user interfaces. The Discovery Work Stream at the Global Alliance for Genomics and Health (GA4GH) and DNAstack aim to create a unified data discovery platform to make it easier to find and use data, tools, and infrastructure for genomics and clinical analysis.
Organizations such as the Matchmaker Exchange, the Beacon project, BRCA Exchange, and many others approach fragmented and diverse data sources by locally aggregating, harmonizing, and redistributing processed data through web-based user interfaces and standardized APIs. Unfortunately, each has its own data sharing formats and sharing nuances. These cause difficulties and inefficiencies to the consumer in gaining synergistic value by cross referencing and utilizing these invaluable resources. Further, diverse datasets arising from different sequencing and processing technologies as well as overlapping samples add to interpretation challenges.
The goal of this project is to create a unified interface that acts as a facade to a varied dynamic collection or registry of data sources and services, forming an interconnected 'Internet of Genomics Data and Services'. The network’s data sources and services can be crawled and indexed, exposing a single standardized API endpoint that a unified web interface can aggregate and present in a context-aware, meaningful manner.
This project is composed of the following tasks:
- A registry schema and reference implementation with POST, GET, PUT, DELETE options
- A reference implementation of Beacon Network using the Service Registry as its registry
- A reference implementation of the Service Registry with mixed service types, e.g. Beacons and Matchmakers
- A reference implementation of an indexer that recursively crawls connected Service Registries to compile a list of services in the Internet of Genomics
- A reference implementation of a cross-service query engine, e.g. Beacons
- To be determined
Expertise and Skills Needed:
- Extensive experience with Java, particularly with Java EE or Spring
- Experience with backend web development, design and implementation of RESTful web services
- Hands-on experience with SQL and NoSQL databases and building systems on top of them
- Strong understanding of professional software development and design practices
- Familiarity with cloud computing and building distributed systems with microservice architecture
- Motivation and ability to work independently and as part of an agile, global team
For more info or to apply to this applied research position, please