← Back to projects

TLSContact Enterprise Platform

TLScontact visa application services (e.g. Portugal: visas-pt.tlscontact.com): online appointment booking, application flows, and operational tooling for government and consular visa programmes.

LaravelVue.jsPostgreSQLRedisDockerGitLab CI/CD
TLSContact Enterprise Platform

Overview

  • Migrated legacy monolith to microservices, cutting release cycles from weeks to days.
  • Improved system performance by ~90% through caching and database optimization.

Challenge

The core platform had grown into a monolith with risky, long-running deployments and tight coupling. Release cycles were in weeks, and performance issues were affecting user-facing visa flows for applicants and consular staff.

Approach

We used the strangler pattern: new features were built as services from day one, while we gradually extracted high-change domains from the monolith behind a stable API gateway. We measured first (latency, DB load) then targeted caching and query optimization.

Solution

Introduced microservices for critical domains, Redis caching for read-heavy endpoints, and proper PostgreSQL indexes. Refactored N+1 queries and added cache invalidation rules. CI/CD pipeline reduced deploy time significantly.

Results

  • Release cycles reduced from weeks to days.
  • ~90% improvement in application performance (caching + DB optimization).
  • ~80% improvement in database performance via optimized queries and indexing.

Business impact

  • Faster time-to-market for new visa centres and features.
  • Lower infrastructure cost per request due to reduced DB and compute load.

Scale

TLScontact operates visa application centres in many countries; public web flows and back-office workloads see high traffic during peak application windows.

Lessons

  • Incremental migration kept the business shipping while we modernized; a big-bang rewrite would have been riskier.
  • Measuring before and after (latency, slow query logs) made it easy to justify and prioritize the next optimization.

Other projects

Work with me