All work

A multi-tenant LIMS, with one technical lead

Architecture, backend, frontend and AWS for a lab information system used by research institutions in several countries.

Role
Senior Full-Stack Engineer & Technical Lead
Where
Quipnex
When
Sep 2023 – Oct 2025

Context

Quipnex builds a laboratory information system (LIMS) for chemical and biological research institutions in multiple countries. I was the sole technical lead and the technical decision-maker for the wider development team, covering architecture, backend, frontend, DevOps and AWS.

Problem

Each institution needs its own data kept strictly apart from every other’s, while the product still ships and upgrades as one platform. It also had to run reliably in production.

What I did

  • Chose PostgreSQL schema-per-tenant isolation (django-tenants), so tenant data is separated at the database level instead of by a filter in every query.
  • Built the Qxcore backend (Django 4.2, DRF) with an in-house OAuth 2.1 + PKCE authorization server, RS256/HS256 JWTs and RBAC across 10 Django apps.
  • Delivered 8 production services across backend, frontend and infrastructure.
  • Codified the infrastructure in AWS CDK (Python) and CloudFormation across environments (S3, RDS, EC2), and ran production on Docker with Nginx/TLS at 99.9%+ uptime.
  • Maintained the Angular 15/18 frontend (Angular Material, Plotly.js) and the Celery/Redis pipelines for scheduled jobs, Postmark notifications and document generation.

I still run the AWS infrastructure I built there.

Stack

Django 4.2DRFPostgreSQLdjango-tenantsCeleryRedisAngular 15/18AWS CDKDockerNginx