Qywdfxlmdswiupixuz3x

陳威澄 Wei-Cheng Chen

Back-end Engineer 

      


Experienced with general back-end development, familiar with a variety of web technologies, always has passion for learning new skills.

Education

National Chung Cheng University, 2014 - 2018

Computer Science and Information Engineering

Skills


Programming Languages

  • PHP(7), CodeIgniter, Laravel
  • Javascript(ES8), Node.js, jQuery
  • Go, Python3
  • Shell script


Databases

  • MySQL, MariaDB
  • MongoDB
  • Neo4j
  • Redis


Google Cloud Platform

  • Kubernetes, Compute Engine
  • App Engine, Cloud Functions
  • Cloud Storage, Cloud Build
  • Cloud Tasks, Scheduler, PubSub
  • BigQuery, Dataflow


CI / CD

  • Linter for code quality
  • Tests writing
  • Git for version control
  • Docker, Webhook, and Kubernetes for automatic building, deploying, scaling, and recovering


Miscellaneous

  • REST and GraphQL API design
  • Web crawling using headless browser
  • Scrum for project development and collaboration
  • Various Linux distros usage


Work experiences

awoo Inc. Back-end Engineer Jul 2018 -

Redis Stream Queue - A lightweight reliable message queue written in PHP based on Redis Stream
  • Using blocking mechanism, the consumer can receive new messages immediately without polling, which reduces the number of requests to the queue by a significant amount
  • Supports key-value based message structure instead of plain strings
  • No race condition among multiple consumers
  • Each consumer maintain its own implicit pending queue which makes them recoverable if crashed and guaranteed no messages would be lost

SERP crawler - A crawler designed for simulating search engine usage and parse the search results
  • Crawl with extremely high performance with no blocking, a cluster of crawlers can fetch more than 1000 pages per minute
  • Refactor the code base from PhantomJS to puppeteer, which cuts the failure rate in half with enhanced error handling, readability, and the ease of maintenance.
  • Polymorphically crawls different search engines, regions, and devices

Auto voting system - A tag recommendation system based on SERP and AI
  • Interconnects various APIs provided by other teams and aggregates their responses
  • Achieve the architecture of multiple workers consume the same queue in parallel reliably with no race condition by integrating Redis Stream Queue
  • Automatic build, test, and deployment by triggering Git webhook
  • Scalable, recoverable, easy to monitor with Kubernetes workload

Data warehouse and ETL - A data pipeline from BigQuery to application databases using Apache Beam SDK
  • Implement data caching and layering for designing high performance APIs that responses within 50ms
  • Great reliability for processing tera bytes of dataset composed of hundreds of millions of crawled results and google analytics records
  • Deploy and monitor each step of the data processing with ease by Dataflow runner
  • Reduce the costs of BigQuery by at least 30% from examining number of bytes each query actually reads

GraphQL API Server with ORM - An API server for application-level database with high flexibility
  • Integrating GraphQL to Laravel and its ORM implementation, Eloquent
  • Automatically resolves any fields by directly mapping Models to GraphQL schemas.
  • Containerized, portable to any environment with Docker
  • Loosely coupled development for front-end and back-end

Postfix after-queue content filter - A MIME mail parser invoked after the mail has reached into Postfix queue
  • Refactor the code base from PHP to Go which improves the mail throughput by 300%
  • Designed with minimum CPU/RAM footprint and multithreading in mind, handles more than 4000 mails per minute
  • No mails would be lost if the filter process crashed, recoverable

awoo Inc. Intern Apr 2017 - Jun 2018

RUP - A crawler designed for retrieving info needed for SEO from the given website
  • Massive Promise.all() usages to ensure extracting, formatting, and storing page elements in parallel, which boosts the overall speed of crawling process by 200% - 400%
  • Automatic deployment started by Git tag, followed by Cloud Respositories, Cloud Build by Dockerfile, Cloud Registry, and finally applied to Kubernetes workload
  • Scalable, consuming jobs in parallel with no race condition and recoverable

Gaia - A HR and project manage system written with CodeIgniter and jQuery
  • Collaborate with a group of interns
  • Learned about concepts of MVC and front/back-end development flow.

Powered by CakeResumePowered by CakeResume