Software Engineer · Full Stack · Backend
Production software, documented architecture, live deployment.
I am Li Hong. NovaDesk is my engineering portfolio — a monorepo with microservices, shared packages, CI/CD, and four live applications behind a single API gateway. It demonstrates how I design, build, and operate production-ready systems.
Reviewer path: About → Engineering → Case Studies → Live demo — under three clicks.
Repository metrics
Quantified scope of the monorepo — useful for reviewers evaluating system complexity and engineering investment.
5
Applications
6
Backend services
8
Shared packages
1,262
TypeScript files
22
Bounded-context modules
24
Core technologies
21
Engineering docs
7
Architecture decisions
NovaDesk modules
Five applications and six backend services sharing authentication, observability, and a unified design system — routed through Nginx and an API gateway. Open any module to inspect a live, deployable component.
HelpDesk SaaS
appMulti-tenant ticket management with SLA policies, agent workflows, and real-time collaboration.
Analytics Dashboard
appBusiness intelligence views with KPI tracking, exportable reports, and role-based dashboards.
Admin Portal
appCentral control plane for users, tenants, service health, and platform-wide configuration.
Realtime Chat
appWebSocket-powered messaging integrated with HelpDesk for agent and customer conversations.
Auth Service
serviceJWT authentication with RS256, refresh token rotation, multi-tenant RBAC, and JWKS.
API Gateway
serviceUnified entry point with JWT validation, rate limiting, circuit breaking, and service proxying.
Notification Service
serviceTransactional email delivery, in-app notifications, and template-driven messaging.
Analytics API
serviceMetrics aggregation, KPI queries, and export endpoints for the analytics dashboard.
Realtime Chat Service
serviceWebSocket messaging with Redis pub/sub for agent and customer conversations.
Engineering highlights
Patterns and practices applied across the platform — not marketing labels, but concrete implementation choices visible in the codebase and infrastructure.
Production Ready
OperationsLive deployment with Docker, Nginx reverse proxy, and CapRover per-service builds.
Docker
OperationsContainerized services with compose-based local stack and captain-definition per component.
CI/CD
OperationsGitHub Actions pipeline with lint, typecheck, test, and path-scoped builds.
Monorepo
Architecturepnpm workspaces with Turborepo caching and explicit package boundaries.
Shared Packages
ArchitectureCross-cutting concerns centralized in auth, config, logger, SDK, UI, and shared types.
Microservices Ready
ArchitectureDomain-oriented services behind an API gateway with independent deploy units.
OpenAPI
QualitySwagger documentation exposed on each NestJS service for contract visibility.
Type Safety
QualityEnd-to-end TypeScript with Prisma, Zod, and shared contracts across clients and APIs.
RBAC
QualityRole-based access control with multi-tenant isolation at workspace scope.
DDD
ArchitectureBounded contexts with domain, application, infrastructure, and presentation layers.
SOLID
ArchitecturePorts-and-adapters pattern with dependency injection and interface segregation.
Clean Architecture
ArchitectureFramework-agnostic domain logic with explicit use cases and repository ports.
Engineering decisions
Technology choices with explicit rationale. Each decision is documented as an ADR in docs/adr.
Turborepo
Monorepo orchestration with remote-aware build caching and task pipelines.
Five applications and six services share types and tooling. Turborepo parallelizes builds and avoids redundant work across CI and local development.
Read ADR →NestJS
Backend framework for all microservices with modular DI and OpenAPI integration.
Consistent module structure, guards, interceptors, and testing patterns across services. NestJS enforces boundaries that map directly to domain modules.
Read ADR →Next.js
App Router for all frontends and the public website with SSR/SSG where appropriate.
Unified React stack, server components for performance, and API routes only at integration boundaries (e.g. contact form proxy).
Read ADR →PostgreSQL
Primary relational store with Prisma ORM and per-service database ownership.
ACID guarantees, mature ecosystem, JSON support when needed, and schema migrations as living documentation.
Read ADR →Docker
Container-first deployment with compose for local dev and CapRover for production.
Reproducible environments, isolated service deploys, and infrastructure-as-code alignment with production topology.
Read ADR →Shared Packages
Eight workspace packages for cross-cutting concerns instead of copy-paste utilities.
Single source of truth for auth guards, env validation, logging format, UI primitives, and API contracts reduces drift between apps.
Read ADR →Monorepo
Single repository with pnpm workspaces spanning packages, services, apps, and website.
Atomic changes across frontend and backend, shared CI, and visible architecture for reviewers evaluating engineering maturity.
Read ADR →Case studies
Production systems delivered before NovaDesk — each documented with architecture, trade-offs, security, and lessons learned. Source code for these projects is not in this repository; documentation is based on direct engineering involvement.
Spell
In production at spelltalk.com.br
Multi-tenant SaaS for WhatsApp and Instagram customer service with RAG-grounded AI, human handoff, visual flows, and billing.
Broom
20+ franchise brands on one platform
White-label ride-hailing platform powering regional mobility brands with passenger/driver apps, admin panel, and WhatsApp booking.
Teste de Perfil
3 assessment flows in production
Behavioral profile assessment platform for Paulo Odorico — online courses, corporate training events, and investor profiling.
Get in touch
Have a project in mind? Send a message and I'll get back to you.