# Tan Chin Siang > Tan Chin Siang is a Backend & Cloud Software Engineer in Malaysia with more than four years of experience designing, modernizing, and operating scalable backend services and cloud-native platforms across AWS and Microsoft Azure. Last reviewed: 2026-10-08 Website: https://chinsiang.dev/ Résumé: Available upon request via https://chinsiang.dev/#contact LinkedIn: https://www.linkedin.com/in/chinsiangtan/ GitHub: https://github.com/chinsiang99 Email: chinsiang99@gmail.com Location: Malaysia ## Entity Summary Tan Chin Siang is a software engineer specializing in backend systems, cloud platforms, microservices, event-driven architecture, infrastructure automation, performance engineering, observability, reliability, and cloud cost optimization. His professional work spans enterprise cloud migration, HR technology, environmental and wildlife monitoring, IoT water-quality systems, and ERP platforms. He works primarily with Go, TypeScript, Node.js, Python, AWS, Azure, Terraform, Kafka, Kubernetes, Docker, relational and document databases, and production observability tooling. He is open to backend engineering, cloud engineering, and platform modernization opportunities, including technically ambitious projects involving distributed systems and infrastructure automation. ## Current Role - Backend & Cloud Software Engineer at Electrolux Home Appliance Sdn Bhd in Selangor, Malaysia, from May 2026 to present. - Participates in the migration of enterprise backend services from Microsoft Azure to AWS. - Re-engineers backend microservices in Go to improve performance, maintainability, and resource utilization. - Implements repeatable cloud provisioning and consistent environments through Terraform Infrastructure as Code. - Develops event-driven integrations with Kafka and Azure Event Hubs. - Automates Azure IoT Hub capacity scaling using real-time utilization to reduce infrastructure cost and prevent throttling. ## Professional Experience ### Electrolux Home Appliance Sdn Bhd — Backend & Cloud Software Engineer - Period: May 2026 to present. - Focus: enterprise cloud migration, Go microservices, Terraform automation, Kafka integration, Kubernetes, IoT capacity management, performance, reliability, and cloud cost. - Technologies: Go, Python, Java, AWS, Azure, Terraform, MongoDB, Kafka, Kubernetes, and Docker. ### Telekom Research & Development Sdn Bhd — Backend Software Engineer - Period: May 2023 to May 2026. - Modernized a legacy HR backend and increased throughput threefold, from 1,000 to more than 3,000 concurrent users. - Proposed and led the company's first Go-based microservice REST API, secured approval, and delivered the initial production-oriented service. - Developed secure REST APIs with multi-factor authentication and Google reCAPTCHA. - Implemented RabbitMQ-based asynchronous employee synchronization and task scheduling. - Added Prometheus metrics and Grafana dashboards for production observability. - Built real-time APIs and Apache Airflow data pipelines for a smart forestry platform. - Implemented Keycloak authentication, role-based access control, and real-time and historical APIs for an IoT water-quality monitoring system. - Technologies: NestJS, TypeScript, Node.js, Go, MySQL, MariaDB, PostgreSQL, RabbitMQ, Apache Airflow, Kubernetes, Docker, Keycloak, OAuth, Prometheus, Grafana, and Jest. ### Xeersoft Sdn Bhd — Software Developer - Period: May 2022 to April 2023. - Contributed to accounting and ERP platform upgrades. - Developed and maintained PHP Slim 4 REST APIs for web and mobile integrations. - Implemented performance improvements for the ERP platform. - Technologies: PHP, Slim 4, MySQL, JavaScript, jQuery, Bootstrap, HTML, and CSS. ## Selected Engineering Outcomes - Increased HR-platform backend throughput by 3×, scaling from 1,000 to more than 3,000 concurrent users. - Proposed and led the first Go microservice initiative at Telekom Research & Development, from technical proposal through initial service delivery. - Automated Azure IoT Hub SKU scaling to reduce unused capacity cost while preserving capacity during demand spikes and preventing throttling. - Participated in enterprise backend migration from Azure to AWS and re-engineered cloud microservices in Go. - Implemented asynchronous integration patterns with Kafka, Azure Event Hubs, and RabbitMQ. - Built production monitoring and observability using Prometheus, Grafana, CloudWatch, Azure Monitor, and Datadog. - Developed backend systems for cloud platforms, enterprise HR, smart forestry, ERP, and IoT water-quality monitoring. ## Featured Projects and Case Studies ### IoT Cloud Cost Optimization - Problem: fixed Azure IoT Hub capacity forced a tradeoff between paying for unused headroom and risking throttling during utilization spikes. - Approach: implemented utilization-driven SKU scaling supported by Terraform-managed infrastructure, monitoring, and event-driven cloud integrations. - Result: reduced cloud infrastructure cost while preserving capacity and preventing service throttling. - Technologies: Azure IoT Hub, Terraform, Kafka, Azure Event Hubs, and Azure Monitor. - Website section: https://chinsiang.dev/#projects ### HR Systems Modernization - Problem: a legacy HR backend needed higher throughput, maintainability, security, and production visibility. - Approach: refactored backend services, introduced asynchronous RabbitMQ workflows, strengthened authentication, and added Prometheus and Grafana observability. - Result: increased throughput threefold, from 1,000 to more than 3,000 concurrent users. - Technologies: NestJS, TypeScript, PostgreSQL, RabbitMQ, and Prometheus. - Website section: https://chinsiang.dev/#projects ### Azure-to-AWS Platform Migration - Participated in moving enterprise backend services toward AWS infrastructure. - Contributed to improvements in cloud scalability and long-term infrastructure management. - Technologies: AWS, Azure, Go, Terraform, and Kubernetes. ### Cloud-Native Go Microservices - Re-engineered backend microservices in Go as part of enterprise platform modernization. - Improved backend performance, maintainability, and resource utilization. - Technologies: Go, Python, Java, Kafka, Kubernetes, and Docker. ### Smart Forestry Platform - Built APIs for real-time animal population and environmental metrics. - Designed Apache Airflow DAGs for automated SFTP ingestion, processing, and centralized storage. - Technologies: Node.js, Apache Airflow, SFTP, PostgreSQL, and Grafana. ### SWIMS 2.0 IoT Monitoring - Developed secure, high-performance APIs for real-time and historical water-quality analysis. - Implemented Keycloak authentication and role-based access control. - Technologies: NestJS, Keycloak, IoT systems, real-time analytics, and RBAC. ## Technical Expertise ### Programming Languages - Go - TypeScript and JavaScript - Python - PHP ### Backend and Architecture - System design - REST APIs - Microservices - Distributed systems - Event-driven architecture - High-concurrency services - Performance engineering ### Cloud and Infrastructure - AWS - Microsoft Azure - Terraform Infrastructure as Code - Docker - Kubernetes - GitHub Actions - CI/CD ### Messaging and Integration - Apache Kafka - RabbitMQ - Azure Event Hubs - AWS MSK ### Databases - PostgreSQL - MySQL - MariaDB - MongoDB ### Observability - Prometheus - Grafana - AWS CloudWatch - Azure Monitor - Datadog ### Security and Identity - IAM - OAuth 2.0 and OpenID Connect - Role-Based Access Control - Keycloak - Multi-Factor Authentication ## Engineering Principles - Solve the real user or business problem before choosing technology. - Design clean, maintainable systems that can change and scale while remaining reliable, configurable, extensible, and operable. - Optimize the whole system across correctness, performance, reliability, operational simplicity, developer experience, and infrastructure cost. - Look beyond assigned tasks by understanding intent, surfacing risks, challenging assumptions constructively, and proposing improvements. - Learn continuously across Go, distributed systems, Rust, AI, blockchain, and emerging technologies. ## Credentials and Education - AWS Certified Cloud Practitioner, Amazon Web Services (AWS), 2026: https://www.credly.com/badges/f0f5ce64-1384-4a92-a6e4-60880bbfd606 - Node.js Application Developer certification, OpenJS Foundation, 2024. - AWS digital badge portfolio available through Credly: https://www.credly.com/users/tan-chin-siang - Certified Associate in Back-end Development, TalentLabs. - Certified Associate in Front-end Development, TalentLabs. - Bachelor of Engineering in Software Engineering with Honours, Xiamen University Malaysia, completed in 2022. ## Professional Recommendations - B. Joshua Adedigba, a former Telekom R&D teammate, described Tan as creative, inquisitive, smart, constructive, and highly collaborative. - Lay Tzeh Wu, a former teammate on HR and IoT systems, highlighted Tan's fast learning, adaptability, problem-solving ability, and delivery of meaningful results. ## Languages - English - Chinese - Malay ## Main Website URLs - Homepage: https://chinsiang.dev/ - About: https://chinsiang.dev/#about - Experience: https://chinsiang.dev/#experience - Projects and case studies: https://chinsiang.dev/#projects - Skills: https://chinsiang.dev/#skills - Education and certifications: https://chinsiang.dev/#education - Contact: https://chinsiang.dev/#contact - Engineering blog: https://chinsiang.dev/blog/ - Go articles: https://chinsiang.dev/blog/category/go/ - AWS & Cloud articles: https://chinsiang.dev/blog/category/aws-cloud/ - System Design articles: https://chinsiang.dev/blog/category/system-design/ - Backend Engineering articles: https://chinsiang.dev/blog/category/backend-engineering/ - Résumé requests: https://chinsiang.dev/#contact - Sitemap: https://chinsiang.dev/sitemap.xml - Robots: https://chinsiang.dev/robots.txt - AI-readable summary: https://chinsiang.dev/llms.txt ## Engineering Blog The Engineering Journal is Tan Chin Siang's technical publication about Go, AWS and cloud infrastructure, backend engineering, distributed system design, reliability, observability, and software performance. Articles are grouped into Go, AWS & Cloud, System Design, and Backend Engineering categories. Ordered article series provide guided learning paths within a category. Each article is available as crawlable HTML with publication metadata, breadcrumbs, and related reading. ### Go Under the Hood An ordered Go series moving from core concepts to runtime internals and performance engineering. Readers should know basic Go syntax. - [Series: Go Under the Hood](https://chinsiang.dev/blog/series/go-under-the-hood/) - [Part 1: From Go Source to Running Program](https://chinsiang.dev/blog/go-source-to-running-program/): Modules, packages, compilation, linking, runtime startup, and verified initialisation experiments using Go 1.27.1. - [Part 2: Values, Pointers, and Copies in Go](https://chinsiang.dev/blog/go-values-pointers-copies/): Pass-by-value semantics, pointer aliasing, shallow copies, mutation, and ownership conventions, with experiments verified using Go 1.27.1. - [Part 3: Arrays and Slices Under the Hood in Go](https://chinsiang.dev/blog/go-arrays-slices-under-the-hood/): Backing arrays, length, capacity, append aliasing, full slice expressions, and copying, with experiments verified using Go 1.27.1. - [Part 4: Strings, Bytes, and Runes in Go](https://chinsiang.dev/blog/go-strings-bytes-runes/): Practical string, byte, and rune comparisons; UTF-8 validation, text boundaries, output-building choices, and conversion benchmarks verified using Go 1.27.1. - [Part 5: Go Maps: Semantics Before Internals](https://chinsiang.dev/blog/go-maps-semantics-before-internals/): Map use cases, comparable keys, missing versus zero values, cloning, sorted iteration, growth hints, and coordinated concurrent access, verified using Go 1.27.1. - [Part 6: Struct Layout and Memory Alignment in Go](https://chinsiang.dev/blog/go-struct-layout-memory-alignment/): Padding, field order, shallow size, architecture dependence, and binary encoding trade-offs, with examples verified using Go 1.27.1. - [Part 7: Methods, Interfaces, and Typed Nil in Go](https://chinsiang.dev/blog/go-methods-interfaces-typed-nil/): Receiver choices, method sets, interface implementation, typed nil errors, equality, and practical API contracts, verified using Go 1.27.1. - [Part 8: Closures, Defer, and Panic in Go](https://chinsiang.dev/blog/go-closures-defer-panic/): Closure capture, loop variables, deferred evaluation, resource lifetimes, and recovery boundaries, verified using Go 1.27.1. - [Part 9: What Is Memory Allocation in Go?](https://chinsiang.dev/blog/go-memory-allocation-basics/): Allocation versus assignment and initialisation, new and make, backing storage, and measured heap-allocation metrics using Go 1.27.1. ### Backend Engineering Guides - [Idempotency: Designing APIs That Survive Retries](https://chinsiang.dev/blog/idempotency-production-apis/): Operation keys, atomic PostgreSQL transactions, concurrent retries, external side effects, consumer deduplication, retention, and failure testing. ### AWS Cloud Practitioner Study Notes - [Part 1: Choosing an AWS Pricing Model by Workload Behaviour](https://chinsiang.dev/blog/aws-pricing-models/) - [Part 2: Six Advantages of Cloud Computing](https://chinsiang.dev/blog/six-advantages-of-cloud-computing/) - [Part 3: Cloud Computing Models and Deployment Strategies](https://chinsiang.dev/blog/cloud-computing-models-deployment-strategies/) - [Part 4: AWS Global Infrastructure: Regions, Zones, and Edge Locations](https://chinsiang.dev/blog/aws-global-infrastructure/) - [Part 5: Six Benefits of AWS Global Infrastructure](https://chinsiang.dev/blog/aws-global-infrastructure-benefits/) - [Part 6: AWS Shared Responsibility Model](https://chinsiang.dev/blog/aws-shared-responsibility-model/) - [Part 7: AWS Well-Architected Framework: The Six Pillars](https://chinsiang.dev/blog/aws-well-architected-framework/) - [Part 8: AWS Well-Architected Tool: Review Workloads and Track Risks](https://chinsiang.dev/blog/aws-well-architected-tool/) - [Part 9: AWS Cost and Billing: Pricing, Budgets, and Cost Management](https://chinsiang.dev/blog/aws-cost-and-billing/) - [Part 10: AWS Cloud9 and Amazon Q Developer: Cloud IDE vs AI Assistant](https://chinsiang.dev/blog/aws-cloud9-amazon-q-developer/) - [Part 11: Amazon S3 Storage: Objects, Buckets, and Storage Classes](https://chinsiang.dev/blog/amazon-s3-storage/) - [Part 12: Object vs Block vs File Storage in AWS](https://chinsiang.dev/blog/aws-object-block-file-storage/) - [Part 13: Amazon S3 Storage Classes: How to Choose the Right Tier](https://chinsiang.dev/blog/aws-s3-storage-classes/) - [Part 14: Moving Large Amounts of Data into Amazon S3](https://chinsiang.dev/blog/aws-moving-large-data-s3/) - [Part 15: Amazon EBS Volume Types: Choosing the Right SSD or HDD](https://chinsiang.dev/blog/aws-ebs-volume-types/) - [Part 16: Amazon EC2 Instance Families and Lifecycle States](https://chinsiang.dev/blog/aws-ec2-instance-families/) - [Part 17: Amazon EC2 Security Groups: Stateful Instance Firewalls](https://chinsiang.dev/blog/aws-ec2-security-groups/) - [Part 18: AWS Network Components: VPC, Subnets, Routing, and Security](https://chinsiang.dev/blog/aws-network-components/) - [Part 19: The OSI Model: A Practical Guide for Cloud Networking](https://chinsiang.dev/blog/aws-osi-model/) - [Part 20: Network Types: PAN, LAN, WLAN, CAN, MAN, and WAN](https://chinsiang.dev/blog/aws-network-types/) - [Part 21: IP Addressing in AWS: IPv4, IPv6, Public, Private, and CIDR](https://chinsiang.dev/blog/aws-ip-addressing/) - [Part 22: AWS CIDR Blocks: VPC and Subnet IP Ranges](https://chinsiang.dev/blog/aws-cidr-blocks/) - [Part 23: IPv4 Subnetting: Splitting AWS Network Ranges](https://chinsiang.dev/blog/aws-ipv4-subnetting/) - [Part 24: Amazon VPC: Building an Isolated AWS Network](https://chinsiang.dev/blog/aws-amazon-vpc/) - [Part 25: AWS Network Gateways: Internet, NAT, VPN, Transit, and IPv6](https://chinsiang.dev/blog/aws-network-gateways/) - [Part 26: AWS Security Groups and Network ACLs](https://chinsiang.dev/blog/aws-security-groups-network-acls/) - [Part 27: VPC Endpoints: Private Access to AWS Services](https://chinsiang.dev/blog/aws-vpc-endpoints/) - [Part 28: AWS Networking Services: The Cloud Practitioner Mind Map](https://chinsiang.dev/blog/aws-networking-services/) - [Part 29: AWS Database Deployments and Management: EC2, RDS, Aurora, and Replicas](https://chinsiang.dev/blog/aws-database-deployments-management/) - [Part 30: AWS Database Services: Categories and Use Cases](https://chinsiang.dev/blog/aws-database-services-categories-use-cases/) - [Part 31: AWS Database Backups: Automated Backups, Snapshots, and PITR](https://chinsiang.dev/blog/aws-database-backups/) - [Part 32: Amazon RDS Deployment Options: Single-AZ, Multi-AZ, and Read Replicas](https://chinsiang.dev/blog/aws-rds-deployment-options/) - [Part 33: EC2 Scaling: Vertical, Horizontal, and Auto Scaling Groups](https://chinsiang.dev/blog/aws-ec2-scaling/) - [Part 34: AWS Load Balancer Types: ALB, NLB, GWLB, and CLB](https://chinsiang.dev/blog/aws-load-balancer-types/) - [Part 35: AWS CloudFormation: Templates, Stacks, Rollbacks, and Change Safety](https://chinsiang.dev/blog/aws-cloudformation-details/) - [Part 36: AWS TCO and Cost Tools: Pricing Calculator and Migration Evaluator](https://chinsiang.dev/blog/aws-tco-tools/) - [Part 37: AWS Cloud Financial Management: Cost Explorer, Budgets, and Optimization](https://chinsiang.dev/blog/aws-cloud-financial-management/) - [Part 38: AWS Support Plans: Basic, Developer, Business, and Enterprise](https://chinsiang.dev/blog/aws-support-plans/) - [Part 39: AWS Support Plan Severity Levels and Response Times](https://chinsiang.dev/blog/aws-support-plan-severity-response-times/) - [Part 40: AWS Global, Regional, and Zonal Services Explained](https://chinsiang.dev/blog/aws-global-regional-zonal-services/) - [Part 41: AWS EC2 Instance Metadata Service and Important IP Addresses](https://chinsiang.dev/blog/aws-ec2-instance-metadata-service/) - [Part 42: Amazon EC2 Instance Lifecycle: Reboot, Stop, Hibernate, and Terminate](https://chinsiang.dev/blog/aws-ec2-instance-lifecycle/) - [Part 43: Complete Amazon EC2 Launch Timeline: From Pending to Application Ready](https://chinsiang.dev/blog/aws-ec2-launch-timeline/) - [Part 44: Amazon DynamoDB Attribute Types: Scalar, Document, and Set](https://chinsiang.dev/blog/aws-dynamodb-attribute-types/) - [Part 45: Interface and Gateway VPC Endpoints Explained](https://chinsiang.dev/blog/aws-interface-gateway-vpc-endpoints/) - [Part 46: AWS Tag Restrictions: Limits, Keys, Values, and Reserved Prefixes](https://chinsiang.dev/blog/aws-tag-restrictions/) - [Part 47: Amazon CloudWatch Hard and Soft Limits](https://chinsiang.dev/blog/aws-cloudwatch-hard-soft-limits/) - [Part 48: AWS ABAC: Attribute-Based Access Control with IAM Tags](https://chinsiang.dev/blog/aws-abac-attribute-based-access-control/) - [Part 49: AWS Health Dashboard: Public Events, Account Health, and Alerts](https://chinsiang.dev/blog/aws-health-dashboard/) - [Part 50: How Amazon CloudWatch Works with Other AWS Services](https://chinsiang.dev/blog/aws-cloudwatch-integrations/) - [Part 51: AWS Systems Manager (SSM): Session Manager, Run Command, and Automation](https://chinsiang.dev/blog/aws-systems-manager-ssm/) - [Part 52: AWS Config: Configuration History, Rules, and Compliance](https://chinsiang.dev/blog/aws-config-configuration-compliance/) - [Part 53: Amazon EventBridge: Events, Rules, Event Buses, and Targets](https://chinsiang.dev/blog/aws-eventbridge/) - [Part 54: AWS Organizations: Multi-Account Governance, OUs, and SCPs](https://chinsiang.dev/blog/aws-organizations/) - [Part 55: AWS IAM Policies: JSON Elements, Permissions, and Evaluation](https://chinsiang.dev/blog/aws-iam-policies/) - [Part 56: Amazon Cognito: User Pools, Identity Pools, and JWT Authentication](https://chinsiang.dev/blog/aws-cognito/) - [Part 57: AWS KMS: Encryption Keys, Envelope Encryption, and Key Policies](https://chinsiang.dev/blog/aws-kms/) - [Part 58: AWS Secrets Manager: Secure Storage, Retrieval, and Rotation](https://chinsiang.dev/blog/aws-secrets-manager/) - [Part 59: AWS Shield: Standard, Advanced, and DDoS Protection](https://chinsiang.dev/blog/aws-shield/) - [Part 60: Amazon Inspector: Continuous Vulnerability Scanning for AWS Workloads](https://chinsiang.dev/blog/aws-inspector/) - [Part 61: Amazon GuardDuty: Managed Threat Detection for AWS](https://chinsiang.dev/blog/aws-guardduty/) - [Part 62: AWS AI Services: Bedrock, SageMaker AI, and Pre-Trained APIs](https://chinsiang.dev/blog/aws-ai-services-overview/) - [Part 63: Amazon Bedrock vs Amazon Lex: Which Conversational AI Service?](https://chinsiang.dev/blog/aws-bedrock-vs-lex/) - [Part 64: AWS Network ACLs vs Security Groups: Scope, State, and Multi-AZ Design](https://chinsiang.dev/blog/aws-network-acls-vs-security-groups/) - [Part 65: AWS Cloud Migration Strategies: The 7 Rs Explained](https://chinsiang.dev/blog/aws-cloud-migration-strategies/) - [Part 66: AWS Disaster Recovery Strategies: RTO, RPO, and the Four Recovery Patterns](https://chinsiang.dev/blog/aws-disaster-recovery-strategies/) - [Part 67: AWS Cloud Adoption Framework (CAF): Perspectives, Capabilities, and Phases](https://chinsiang.dev/blog/aws-cloud-adoption-framework/) ## Website and Deployment - The portfolio is a static, server-rendered Astro website with crawlable HTML content. - It is deployed on Cloudflare Pages. - Infrastructure is managed with Terraform, and DNS is provided by Cloudflare. - The canonical production domain is https://chinsiang.dev/.