
As an engineering team lead of a startup, I lead the team to build our SaaS product from 0 to 1 and is driven to keep the company growing by offering compelling new features and services to our customers.
I am an experienced Golang developer and built several production services in Golang, and a DevOps engineer with experience in AWS, Terraform, and Kubernetes. To boost the efficiency of the team, I standardized the process of CI/CD, deployment, monitoring, alerting of our services, and shaped the DevOps culture among members.
I love to participate in community activities and also share my knowledge with blogs and technical talks. Currently, I am the co-organizer of the Golang Taiwan community.
Work Experience
Engineering Team Lead
Umbo is an A.I. startup that leverages machine learning and cloud technology to build autonomous video security systems for businesses. As a founding engineer, I participated in the whole architecture design and product implementation from scratch. As an engineering team lead, I mentored, sponsored and supported my members by shaping Umbo engineering culture. As a cloud architect, I committed to optimize infrastructure and improve work flow.
- Team management
Led engineering team of 8 members
My responsibilities included OKR planning, regular 1-1 feedback, mentoring, sponsoring, and hiring. I committed to build a responsible, transparent and keep-learning engineering team.
Focused on team-wise productivity improvement
Standardized the development flow, introducing CI/CD and unit testing, adopting Infrastructure-as-code, and shaping DevOps culture in the team.
Cross-team collaboration
Frequently co-worked with different teams, such as Design, Product and Sales, to help them from different approaches, such as studying competitor, discussing product roadmap, joining customer concalls, etc.
- Architect and engineering
Low latency video streaming service (Golang)
Designed and developed Umbo’s video streaming service on a large scale across multiple regions. It was the core architecture of Umbo and served more than 7500 cameras with below 3 seconds latency.
IoT messaging service (Golang)
Developed and maintained the core messaging service that provided real-time communication across devices by WebSocket and served all Umbo’s cameras across 4 different regions.
Launch a new product - Event Filter (Golang)
Involved in the completed product lifecycle from market research, competitor studying, product design, development, and launching. Engineering-wise, I implemented 2 gateway services (SMTP and HTTP) and deployed to ECS Fargate with Terraform. As a result, it reduced 83% of false alarms for customers and boosted Umbo’s monthly recurring revenue (MRR) by 230%.
Firmware applications development (C/C++)
Involved in firmware architecture design and development. Designed a flexible cross-platform firmware architecture that helps us to deliver different camera models efficiently.
- Infrastructure and process optimization
Standardlized production service deployment
Standardlized a consistent service deployment by using AWS ECS Fargate and Terraform. Different services could use the same way for secret management, log collection, monitoring, etc. It drastically reduced the operation loading and speeded up the launch of new services by 300%.
Cross-services tracing solution
Led and supported the team to build a cross-services tracing by leveraging NewRelic tracing service. It gave us a clear view of end-to-end latency, and we built monitoring and alerting based on the metrics.
Optimize AWS infrastructure costs
Led and supported the team to continuously optimize AWS costs. I regularly reviewed AWS cost analysis and proposed different approaches, including EC2/Fargate Spot and ARM instance adoption, NAT and cross-zone traffic reduction, S3 lifecycle optimization. As a result, we reduced 54% AWS system cost under the same business scale.
Internal infrastructure administration
As an AWS architect of the team, I managed shared resources, such as IAM, VPC, purchasing RI/saving plan, building common AMI. I migrated internal services (e.g., Grafana, Sentry, ETL jobs) to EKS by using Terraform and Helm. I also optimized the performance of the log collection pipeline by fine-tuning Fluentd aggregator and ElasticSearch.
Senior Engineer
Joined the new industrial control system (ICS) solution team in the early stage, and experienced the whole product development cycle from planning, development, shipping, and maintenance.
- Trend Micro Safe Lock
- A standalone system lockdown software for fixed-function devices.
- Developed the backend REST API service.
- Trend Micro Portable Security
- A malware scanning and cleanup tool for standalone PC or closed system.
- Designed and developed this product from the fundamental core module to user interface.
Senior Engineer
I worked on video decoder and new features development for H.264, MPEG2, and VC1. The video decoder is the core module in the company and has been integrated into all products.
- Maintained the quality of video decoder module.
- Performance tuning with SSE/Intrinsic SIMD optimization.
- Developed hardware decoding for H.264, Motion JPEG decoding using hardware acceleration.
Technical Talks
Given technical talks in several meetups and conferences, such as COSCUP, Google I/O Extended Taipei, iThome Gopher Day, Golang Taiwan Meetup, and Taiwan Streaming Meetup, topics including golang, software testing, centralized logging, and video codec. Slides: https://speakerdeck.com/david74chou
- Fuzzy test in Go @ COSCUP 2021
- Let’s talk about testing in Go @ COSCUP 2020
- Centralized Logging Solution using FireLens and Fluent Bit for ECS @ AWS Workshop 2020
- How the Go runtime implement map efficiently @ Golang Taiwan Meetup 2018
- AV1: The next generation video codec @ Taiwan Streaming Meetup 2018
- Golang execution modes @ iThome Gopher Day 2017
- Building microservice with gRPC in Golang @ Google I/O Extended Taipei 2017
Open Source Projects
Ship your Lambda logs directly to any destination and bypass Cloudwatch Logs. This is my personal project that works like a sidecar of the Lambda function. It would listen to your Lambda function logs by Lambda Logs API, so you could ship the logs to a custom destination without CloudWatch Logs and save cost.
A well-known terraform plugin to provision AWS resources. I contributed the EKS taint support in the Managed Node Group resource.
A popular opensource metrics collection agent from influxdata. I contributed a performance optimization in its AWS Cloudwatch integration.
Skills
Development
- Languages: Golang, C/C++, Java, C#
- Databases: MySQL, MongoDB, Etcd
- Protocols: HTTP, Websocket, gRPC, SMTP
Operations
- AWS: S3, EC2, ECS, EKS, SQS, VPC, IAM, Lambda, EventBridge, Cloudfront, etc
- Container Orchestration: Kubernetes, ECS
- IaC: Terraform, Helm, Packer, Ansible, Serverless
- CI/CD: Jenkins, Github Action
- Monitoring & Logs: Telegraf, Prometheus, Grafana, Fluentd, Fluentbit, Elasticsearch, Kibana, New Relic
Multimedia
- Codecs: H.264
- Container: MP4, fMP4
- Streaming: RTSP, HLS, DASH
- Frameworks: FFMPEG, Live555, GStreamer
- Acceleration: DxVA, SIMD
Others
- Source Control: Git, SVN
- Build System: Make, CMake
- Project Management: JIRA, Confluence, Trello