Senior Software Developer
Senior Software Developer
Toronto, Ontario, Canada
This job allows you to work remotely
Our client is seeking a Senior Software Developer with great experience and passion for assisting in developing and integrating software components into their informatics platforms. This position is located in Toronto, Canada (open to remote as well).
The ideal candidate will be working with a multidisciplinary team of researchers and engineers who work in a dynamic and agile environment. You are prepared to bring your drive, your experience, and your passion to contribute at all levels. They build and manage complex health research infrastructure for collaborators and clients. They bring together prominent research organizations across the country and internationally. Together they have created large scale informatics platforms involving diverse and complex data modalities (e.g. imaging, genomics, clinical assessments) across multiple disease areas (e.g. neurodegeneration, depression, cancer).
You will have the opportunity to develop your skills in data handling, software implementation, and system integration. You will primarily help in designing, implementing, deploying, testing, and maintaining essential software components that will aid in growing their informatics platforms. You will work with a group of talented developers and technical staff to develop the pipelines that bring multidimensional data from a large variety of sources into the data platforms, and play an active role in evolving their products, processes, and data technology. As a Senior Software Developer, you will help contribute to the software development process, participate in code reviews, and shape system design as well as provide leadership and guidance in all team development efforts for successful project delivery and platform support.
In doing so, you will be responsible for helping create cutting edge yet realistic systems for use by surgeons in the midst of procedures, researchers accessing remote data across the globe, doctors trying to understand the genetics of their patient even at the bedside, and patients and the public seeking insight into their own maladies and conditions. Your creativity and innovation, combined with the multidisciplinary skills of the rest of their team, will help deal with security and privacy even while enabling fusion of high dimensional data across multiple medical modalities as diverse as MR imaging, molecular science, and psychological assessments. Your work will help address critical gaps and fulfill currently unmet and urgent needs in both clinical and research communities, handling data from distributed settings such as critical care units, clinical laboratories, and hospital imaging facilities. And you will be building the future of medical science!
You should have a track record of supporting the implementation of technical solutions and be recognized as a solid contributor with a good grasp of the breadth and depth of your team's code base.
•Professional Software development experience in a diverse set of technology disciplines.
•Python programming experience in an industry context, and a strong RESTful API development experience with either FastAPI or Flask.
•Experience implementing unit and integration tests, tracking code coverage, and familiarity with TDD or BDD.
•Strong working knowledge of microservice architecture and an understanding of domain driven design.
•Experience with event sourcing (Kafka), distributed transaction strategy, message queues (AMQP/RabbitMQ)
•Solid working experience with data handling processes, including data ingestion, ETL, data warehousing.
•Good knowledge of object storage, relational (PostgreSQL) and NoSQL (Elasticsearch, Neo4j) database systems.
•Experience with Big Data ecosystem and data lake concept, such as HDFS, Hive, Atlas, and Spark.
•Virtualization and containerization, experience with Kubernetes is highly desired.
•Knowledge of best practices and IT operations in a high-availability environment.
•Understanding CI/CD best practices and solutions
•Experience with workflow or dataflow frameworks is an asset.
•Strong written and oral communication skills
•Can deal with ambiguity and manage requests for change
•Performs well in a fast paced, deadline-oriented environment
•Willingness and ability to work on multiple projects at the same time
•Demonstrated ability to work within a collaborative team across multiple disciplines
•Willingness to research and learn new approaches and technologies
•Bachelor's degree in Computer Science or equivalent.