Shamiq.dev
← All projects

1 / 19

C-Link - Construction SaaS logo

C-Link - Construction SaaS

ReactAngularSlim FrameworkNode.jsAI AgentsAWSMicroservices

Problem

Client onboarding for a construction SaaS platform depended on manually turning contractor and quantity-surveyor documents into dynamic templates, slowing delivery for clients including McLaren.

Solution

Led engineering delivery end-to-end and, as a proof of concept directly assigned by the CTO, architected a multi-agent AI pipeline that automates the document-to-template workflow - cutting manual processing time by 40%. The platform itself is built on a custom PHP framework (Slim, with fat services) in a microservices architecture, with React and Angular frontends.

What I built

Platform Infrastructure & Integrations

AWS S3AWS SQSAWS SNSAWS Secrets ManagerAsiteWebSockets

Documents, async workflows, event notifications, and credentials needed a secure, event-driven backbone, alongside integration with Asite for construction document management.

Used AWS S3 for document storage, SQS for queuing and async behaviour, SNS for event-based email notifications, and Secrets Manager for credentials management. Integrated Asite for construction document management and implemented a third-party socket-powered real-time notifications system.

Engineering Practices & DevOps

DockerGitHub ActionsPHPUnitSonarQubeAWS ECSAWS EKS

The team needed consistent containerisation, testing, code quality, and deployment practices across services.

Active use of Docker and GitHub Actions CI/CD, PHPUnit test coverage, and SonarQube code quality gates, running on AWS ECS and EKS (EKS managed by the DevOps team).

Framework Error Handling Standardisation

Slim FrameworkPHP

The custom PHP framework lacked a consistent exception-handling system in core API communication - a debugging headache that had persisted for 7 years.

Standardised error handling across the custom framework by implementing a proper exception system for core API communication and adding structured logging, resolving the long-standing debugging problem.