Software Developer
Role details
Job location
Tech stack
Job description
Do you want to help us improve human health and understand life on Earth? Make your mark by shaping the future to enable or deliver life-changing science to solve some of humanity's greatest challenges. We are seeking to recruit a passionate Software Developer (Backend) to join our team in developing the best of modern websites and supporting our infrastructure. You will support the world's key cancer genomics resource, The role focuses on developing reliable, maintainable software using Python-based technologies and modern web frameworks, while supporting deployment, testing, security, monitoring, and ongoing system maintenance. The position also contributes to the design of cloud-ready architectures that ensure COSMIC platforms remain secure, scalable, and resilient, supporting both existing services and the development of new products. About You: You must be a skilled and passionate Software Developer(Backend). You will care about writing clean, high quality, readable and maintainable code to support our growing suite of products. You must be a good communicator and be able to understand the goals and aims of the collaborative COSMIC team and its customers of researchers, scientists, and clinicians, globally. You will hold a transformational role within COSMIC working closely with Software Developers (web and data), Product Management, and a Senior Developer who will provide technical direction and mentorship. You will help to co-design a completely new suite of bespoke enterprise-level systems to support COSMICs future innovation of products to promote commercial success. Additionally, you will be responsible for maintaining the existing legacy systems. You will co-design and implement high quality, readable and clean APIs and web services using Python, Django. Furthermore, you will assume responsibility for deployment, testing, security, monitoring, and maintenance of COSMICs products. You will have good technical experience with either GCP or AWS and Docker. You will understand the importance of automation, CICD pipelines and infrastructure as code. You will have technical experience on Web frameworks - Django, Django-Rest-Framework, FastAPI and/or NodeJS. Create and deliver designs for cloud-ready and cloud-agnostic, sustainable, enterprise-level business system architectures. This will include designing the underlying framework that facilitates: Globally resilient, portable, scalable, flexible, and secure multi-site website presence User authentication tools that accommodate both commercial purchases and a system of validating users for free access accounts Continued support for both novel and existing products as well as dependent infrastructure New Product Development life cycle and Agile delivery Interact with a multi-talented team working on an enterprise grade website that has a large user base and experiences a high volume of traffic. This role has great scope for expanding your skills, knowledge, and interests as a Senior web developer. You will join a multidisciplinary, committed, and supportive team with the opportunity to work on innovative products that make a real difference to patients around the world.
Requirements
Expertise in Python with familiarity of JavaScript Experience in web frameworks - Django, Django-Rest-Framework, FastAPI and/or NodeJS Experience in writing unit tests, integration tests and applying TDD Understanding clean code principles and thoughtful use of design patterns Proficiency with Docker - building images, managing containers, and maintaining compose-based or orchestrated deployments in production Knowledge of building RESTful APIs that depend on complex Database relationships Experience with CI/CD - authoring, maintaining, and evolving pipelines for automated build, test, and deployment workflows Essential Competencies and Behaviours: A demonstrable, enthusiastic, can-do, learn, proactive attitude Enthusiasm, commitment and attention to detail Ability to prioritise activities and manage the own workload independently Ability to explain technical issues effectively and understandably to non-technical users Ability to work collaboratively with a range of stakeholders at all levels Ability to understand scientific and technical challenges Excellent, broad-based and self-reliant problem-solving skills Shows curiosity and a willingness to learn new technologies, tools, and ways of working Adjusts to changing requirements, priorities, or technical approaches Welcomes feedback from peers and seniors Collaborates effectively with team members and contributes to shared goals