Open to Cloud Support Roles

Nguyễn Thanh Tâm
Portfolio

Transitioning from IT Helpdesk to Cloud Engineering - building production-ready projects with Docker, Python, Prometheus, and AI-powered tooling.

View Projects -> GitHub Profile

Tech Stack

Tools and technologies I use to build cloud-ready systems

Python
Docker
Prometheus
Grafana
Streamlit
Ollama LLM
PostgreSQL
SQLite
Nginx
GitHub Actions
PowerShell
Bash
scikit-learn
Plotly
MinIO / S3
IAM / RBAC

Portfolio Projects

7 projects spanning AI, monitoring, cloud infrastructure and DevOps automation

AI & Machine Learning for IT Operations
AI IT Support Assistant
RAG-powered helpdesk using Ollama LLM + SQLite knowledge base (1,213 tickets). Telegram Bot integration, Plotly analytics dashboard, offline-first design.
Python Streamlit Ollama SQLite RAG
CI
ML Log Anomaly Detector
Unsupervised Isolation Forest model that detects cyber attacks, DB lockups, and latency spikes from server logs. Discord/Telegram webhook alerts, interactive Plotly scatter dashboard.
Python scikit-learn Plotly Streamlit
CI
Monitoring & Infrastructure
Network & System Monitor
Real-time CPU/RAM/Disk monitoring with Plotly gauge charts, host ping checker, alert history timeline, and Telegram bot with remote commands (/status, /ping, /setthreshold).
Python psutil Plotly SQLite Telegram
CI
Cloud Monitoring Stack
Production monitoring pipeline: Prometheus scrapes metrics, Grafana visualizes dashboards, cAdvisor tracks container resources, Alertmanager fires Telegram alerts on threshold breach.
Docker Prometheus Grafana Alertmanager
CI
Cloud & DevOps
Cloud Storage & IAM Simulator
Simulates AWS S3 + IAM locally using MinIO + Docker. Three role levels (Admin/Developer/ReadOnly) enforced via boto3. Live policy JSON viewer mimics AWS Console.
Docker MinIO boto3 IAM Streamlit
CI
3-Tier Cloud Migration App
Production-ready Nginx->Flask->PostgreSQL architecture in Docker Compose. Includes one-command bash deploy script that auto-installs Docker, syncs code via rsync, and health-checks the live app.
Docker Flask PostgreSQL Nginx Bash
CI
SysAdmin Automation
OS Setup & Optimization Toolkit
Interactive CLI toolkit for IT post-install setup. Windows (PowerShell) and Linux (Bash) versions with system diagnostics, temp cleanup, firewall audit, DNS checks, and software inventory. Generates a timestamped report file.
PowerShell Bash Windows Linux

System Design & Architecture

Mapping system design principles from Alex Xu's studies directly to my practical projects

Scale from Zero to Millions of Users

Understanding how systems evolve from a single server to a highly available, distributed tier-based architecture.

Core Architecture Concepts

  • DNS Routing & CDN caching for static content
  • Load Balancers (Nginx/HAProxy) for horizontal scaling
  • Database replication (Master/Replica) and read/write splitting
  • Stateless web tier using external session storage (Redis)

Trade-offs & Challenges

Moving from vertical to horizontal scaling requires handling state-sharing, data consistency across replicas, and ensuring load balancer health checks are robust to avoid single points of failure (SPOF).

Implemented in my project:
3-Tier Cloud Migration App

Implemented horizontal stateless containers behind an Nginx load balancer reverse proxy, using PostgreSQL replication practices. Managed configurations via Docker Compose for easy deployment scaling.

View Repository

Design a Notification System

Building scalable and reliable messaging pipelines across notification channels (SMS, Email, Push, Webhooks, Telegram).

Core Architecture Concepts

  • Asynchronous message queues (RabbitMQ/Kafka) to decouple notification triggers from delivery
  • Rate limiting to prevent alert fatigue and network throttling
  • Retry mechanisms with exponential backoff for failed sends
  • Template engines for message personalization and separation of concerns

Trade-offs & Challenges

Guaranteeing "at-least-once" delivery versus preventing duplicate messages. Setting proper rate limits at the user level to protect channel reputation and enhance UX.

Implemented in my project:
Network & System Monitor

Built a custom notification gateway with Telegram bot integration, incorporating threshold-based rate limiting to prevent spamming notifications when a metric oscillates around limit thresholds.

View Repository

Metrics Monitoring & Alerting System

Designing infrastructure to collect, store, and query high-volume time-series data for system health tracking.

Core Architecture Concepts

  • Pull vs. Push collection: Pull (Prometheus scrapes endpoints) reduces server-side collection logic complexity
  • Time-Series Database (TSDB) storage optimization for write-heavy metric logging
  • Metrics aggregation, downsampling, and custom query languages (PromQL)
  • Alert routing, deduplication, and integration with incident response (PagerDuty, Slack)

Trade-offs & Challenges

Pull model requires service discovery but protects the server from push surges. TSDB requires efficient compression algorithms (like Gorilla) to handle billions of telemetry points daily.

Implemented in my project:
Cloud Monitoring Stack

Deployed a full observability stack using Docker Compose, integrating Prometheus pull-based scraping, Grafana dash representation, and Alertmanager routing alert webhooks to Telegram channels.

View Repository

Design S3-like Object Storage

Creating a scalable, highly durable, and cost-effective distributed file storage system for unstructured data.

Core Architecture Concepts

  • Separation of Metadata (SQLite/PostgreSQL) and Blobs (Data node storage)
  • REST API interface (GET, PUT, DELETE bucket/object operations)
  • IAM Policy engine checking bucket/object access permissions
  • Data durability via replication or erasure coding across failure domains

Trade-offs & Challenges

Strong consistency for metadata vs eventual consistency for object replication. Handling large files via multipart uploads to avoid memory overflow on API nodes.

Implemented in my project:
Cloud Storage & IAM Simulator

Simulated AWS S3 IAM structure locally using MinIO object storage. Wrote Python script validation using boto3 API to test access permissions for Admin, Developer, and ReadOnly roles.

View Repository

Design a Chat System

Supporting real-time, low-latency communication with message persistence and presence tracking.

Core Architecture Concepts

  • WebSockets for bi-directional, persistent real-time communication
  • Stateful connection managers to handle active user socket connections
  • Message synchronization across devices using sequence numbers
  • Read receipts and active presence heartbeat mechanisms

Trade-offs & Challenges

WebSockets are stateful, requiring sticky sessions or pub/sub message brokers (like Redis) to route messages to users connected to different chat servers. Scaling for group chats requires different fan-out patterns.

Implemented in my project:
AI IT Support Assistant

Integrated Telegram API for real-time ticket query submission and AI response retrieval. Managed session persistence locally in SQLite database and used RAG vector querying to resolve user prompts dynamically.

View Repository
Career Journey

Mapping IT Support skills to Cloud Engineering competencies

IT Support (Before)

Ticket management & triage
Network diagnostics
Log analysis & troubleshooting
OS administration (Win/Linux)
Hardware & software support

Cloud Support (Now)

AI-Assisted Helpdesk (RAG + LLM)
Real-time Monitoring (Prometheus/Grafana)
ML Anomaly Detection (Isolation Forest)
Automated Setup Toolkit (Cross-platform)
3-Tier Cloud Migration (Docker + Nginx)

Let's Connect

Open to Cloud Support, Cloud Operations, and DevOps roles.
Feel free to reach out or explore my GitHub.