James Smaldon
Staff Software Engineer at Congenica- Claim this Profile
Click to upgrade to our gold package
for the full feature experience.
Topline Score
Bio
Experience
-
Congenica
-
United Kingdom
-
Biotechnology Research
-
1 - 100 Employee
-
Staff Software Engineer
-
Jan 2023 - Present
After moving back into a more technical hands on role, I continue to work on the Congenica Oncology product, working with the team to see new features through from design to delivery as well as taking responsibility for verification, validation and release of the product.
-
-
Development Team Lead
-
Mar 2020 - Jan 2023
Leading the team developing the Congenica Precision Oncology platform, which provides clinicians with automated therapy recommendations based on genetic analysis of over 500 genes. After development of a successful initial prototype of the bioinformatics pipeline, I moved into a team lead role where I built and led a cross functional team of 8 developers to integrate the pipeline and web application into the wider Congenica platform, whilst still remaining hands on and keeping technical oversight. The oncology product was successfully CE marked and is now open to early access customers with full launch planned for June. As well as product development, my other responsibilities include: • Working directly with the head of engineering and other team leads to improve cross-team development processes and practices. • Contributing to the oncology pipeline codebase. • Acting as scrum master within the team (CSM, ACSM certified). • Leading architectural and design discussions within the team. • Line management of software engineers (currently 3, max 6). • Participating in hiring for python developers within the team and wider organisation, including development of interview processes and technical tests. • Preparing key technical documents for regulatory filing (IVDD, CE Marking). • Acting as technical point of contact for external integrations when integrating against third party APIs. • Introduced fortnightly developer talks, a venue for anyone in the development organisation to present on topics of wider interest. These are typically attended by 30-40 developers and are an excellent way to transfer knowledge and best practice throughout the organisation. Show less
-
-
Senior Software Developer
-
Mar 2018 - Mar 2020
Designed, implemented REST APIs based on the JSONAPI specification using Python, Flask, flask-rest-jsonapi and SQLAlchemy interfacing with an existing database schema in Postgres. These APIs are part of the wider Congenica platform, deployed as docker images hosted in Kubernetes. They provide interfaces for customer integration and Congenica’s web frontend. Designed and implemented an integration service that provided an interface for our largest customer (Genomics England) to integrate their systems into ours. Designed and implemented a mechanism for customers to upload very large genetic data files (10-100Gb) into the system, based on SFTP and paramiko. Led a project to bring disparate git repositories together into a monorepo, improving build process and developer efficiency.Authored various high and low level design documents. Worked to improve overall standard of the codebase by introducing and spreading adoption of type annotations and implementing pre-commit hooks to automatically run black code formatting, linting, mypy on commit and in CI. Show less
-
-
-
VividQ
-
Cambridge
-
Senior Software Engineer
-
Dec 2017 - Feb 2018
VividQ is an early stage startup developing software and algorithms to drive 3D holographic displays. In my role, my responsibilities included: • Benchmarking and optimising existing software and algorithms in C++/CUDA. • Adding unit and integration tests for existing software. VividQ is an early stage startup developing software and algorithms to drive 3D holographic displays. In my role, my responsibilities included: • Benchmarking and optimising existing software and algorithms in C++/CUDA. • Adding unit and integration tests for existing software.
-
-
-
CCDC - The Cambridge Crystallographic Data Centre
-
United Kingdom
-
Research Services
-
1 - 100 Employee
-
Senior Scientific Software Engineer
-
Jul 2013 - Dec 2017
Working with a small agile team on all aspects of the design, implementation, deployment and maintenance of the new WebCSD web application, which allows scientists to search and query the live CSD database and visualise results in the browser. The new implementation is written in C#/.NET Core, interfacing with our existing scientific tool-kit C++ code and CRM systems. Working on the WebCSD database schema (MySQL), the data source for the new WebCSD application. This involves the application of evolutionary database design techniques and hand optimising complicated database search queries for performance. Developing the continuous deployment pipeline for the WebCSD database and web servers, including Vagrant, Ansible, Teamcity and Octopus Deploy configuration. Using the ELK stack to develop dashboards to allow stakeholders to monitor WebCSD usage. Contributing to the development and optimisation of the core cheminformatics toolkit code in cross platform C++ (Windows, Linux, Mac). Added support for proteins and computational docking via the GOLD docker to the CSD python API, a python binding of our core C++ scientific toolkit codebase using SWIG. Worked as part of a small team to develop a REST API in python using pyramid and sqlalchemy to expose services for querying and analysing the CSD database. Show less
-
-
-
Real-Status
-
Cambridge, United Kingdom
-
Software developer
-
Jul 2010 - Jul 2013
I worked as a software developer on Hyperglance, a network management tool that provides a comprehensive 3D view of the network, employing visualisation techniques to simplify problem identification and root cause analysis. I work as part of a team developing the Hyperglance client which constructs and displays the 3D interactive map of the network from server data. My responsibilities in this role include the following: Design, implementation and maintenance of the 3D renderer for Hyperglance using OpenGL and Qt. Writing GLSL shaders for the different aspects of the rendered scene. Deriving use cases and requirements for new features from requests and discussions with the CTO and the sales team. Maintenance and development of user interface code in Qt. Helping to maintain the development environment. I am involved in system administration of Linux servers, SVN, Jira, Confluence and Teamcity. Architecting the communication between modules in the client and implementing a broadcast messaging system based around Qt’s event handling. Optimising C++ build to reduce compile times. Analysis and investigation of technologies for implementing a web client version of Hyperglance, including the creation of a small prototype of a Hyperglance web client implemented in Google GWT. Performing iteration and full scale releases. Maintaining the client and installer build scripts. Helping junior developers to work on the code base. Investigating and debugging issues reported in the bug tracking system. Created a test server in Python to generate artificial network topologies for testing. Ported the client code to Linux to allow use of the Valgrind memory checker during development. Show less
-
-
-
University of Nottingham
-
United Kingdom
-
Research Services
-
700 & Above Employee
-
PhD Student
-
Jul 2006 - Jul 2010
Thesis Title: Modeling Tools and Methodologies for Rapid Protocell Prototyping. Proposal and investigation of a new kind of biocomputation, vesicle computing, using simulation and modeling techniques. Area of Study: Simulation and Modeling, Unconventional Computing, Systems and Synthetic Biology. Developed high performance parallel implementations of Dissipative Particle Dynamics a fluid dynamics simulation technique, using MPI (running on a distributed memory cluster) and NVIDIA’s GPU compute unified device architecture (CUDA) in C, C++ and Python. Show less
-
-
-
Barron McCann Limited
-
United Kingdom
-
IT Services and IT Consulting
-
100 - 200 Employee
-
Trainee software developer
-
Jul 2004 - Sep 2005
During my industrial placement year, I worked in a small team as a Java developer on Bacsess-IP, a BACS payment and transfer systems for medium to large scale organisations. My responsibilities in this role included the following: Maintenance and bug fixing. Developed a bespoke implementation of the Microsoft NTLMv2 authentication protocol. Designed and Implemented a framework for the implementation of “wizards” within the software user interface. Maintenance of front-panel software to interface with a PIC micro controlled front panel via a serial interface, written in C. Show less
-
-
Education
-
University of Nottingham
PhD, Computer science -
University of Kent
BSc (Hons), Computer Science