I am a quick learner, able to grasp new concepts efficiently and effectively. In 2016, after obtaining a masterโs degree in science, I decided to shift my career path and became a Software Engineer. After two years as a front-end developer and three years as a full-stack developer, I realized my foundational knowledge needed strengthening. In 2023, alongside starting my own project, I returned to school to study the fundamentals of computer science, which included problem decomposition, C++, database design, system design, algorithms, and data structures, among other topics.
My goal is to become a certified senior engineer, to think on a broader scale, and to lead my team with empathy. I aim to practice perspective-taking and make strategic trade-offs when working with limited resources. On the product side, I seek to translate abstract guiding principles into concrete, actionable steps and deliverables through constant communication and collaboration. Regarding my technical learning journey, I remain open-minded, with the ultimate goal of researching and selecting the most suitable solutions within the constraints of available resources.
Languages:
โข Javascript (expert)
โข Golang (proficient)
โข C++(prior exper.)
โข Python (prior exper.)
System Design
โข System Design Pattern: DDD/Clean Architecture
โข Software Development Life Cycle (SDLC)
Front End
โข React Ecosystem: Hooks, Router, Redux, SSR, dynamic import, Typescript
โข Tools: Webpack, Babel
โข API Client: Axio
โข Style: CSS, SCSS, Style Component, Materical UI
Server
โข Golang Ecosystem: Fasthttp, Gorm, MongoDriver
โข Node.js Ecosystem: Express, Typescript, Chi+Mocha, Sequelize, Mongoose
โข Python Ecosystem: Pandas, Mongoengine, SQLalchemy
โข Microservice Ecosystem: gRPC
โข DB/Cache: PostgreSQL, MongoDB, Redis
Dev-Ops
โข Gitlab-CI
โข Container: Docker, Docker-Compose
โข Reverse-Proxy: Traefik
โข Kubernete
Cloud
โข GCP: Cloud Storage, VM, GKE
โข AWS: S3, EC2
Full-stack: Lazy-stock-screener-demo
๐๐ก๐๐ญ ๐ข๐ฌ ๐ญ๐ก๐ข๐ฌ?
- A US stock screener based on the financial statement from www.sec.gov.
๐ช๐ต๐ฎ๐ ๐บ๐ฎ๐ธ๐ฒ ๐๐ต๐ถ๐ ๐ฝ๐ฟ๐ผ๐ท๐ฒ๐ฐ๐ ๐ฑ๐ถ๐ณ๐ณ๐ฒ๐ฟ๐ฒ๐ป๐ ๐ณ๐ฟ๐ผ๐บ ๐ผ๐๐ต๐ฒ๐ฟ ๐ฝ๐ฒ๐ผ๐ฝ๐น๐ฒ'๐ ๐๐ถ๐ฑ๐ฒ ๐ฝ๐ฟ๐ผ๐ท๐ฒ๐ฐ๐?
- I started from use-case/user story and went all the way to CI/CD.
๐ ๐๐๐ญ๐ฎ๐ซ๐
- build autocomplete search with ternary search tree from ground up
- TODO
๐๐๐๐ก ๐๐ฑ๐ฒ๐ฎ (/design-doc)
- The overall goal is to give freedom to apply different tech stack and avoid unnecessary interference between services or teams. All these features make it highly maintainable.
- Highly decoupled components, event-driven design, and SOLID principles, using Clean Architecture and DDD best practices with GoLang in the back-end
๐ง๐ฒ๐ฐ๐ต ๐ฆ๐๐ฎ๐ฐ๐ธ
๐๐ณ๐ฐ๐ฏ๐ต ๐๐ฏ๐ฅ (/customer-web)
โข Custom Webpack+ Babel stack
โข React Hooks/React Router/Redux/React SSR/dynamic import/React in Typescript
โข Style Component/Materical UI
๐๐ฆ๐ณ๐ท๐ฆ๐ณ ๐๐ช๐ฅ๐ฆ (/stock-server)
โข Golang Server
โข DDD/Clean Architecture
โข PostgreSQL, MongoDB
๐๐ข๐ต๐ข ๐๐ช๐ฑ๐ฆ๐ญ๐ช๐ฏ๐ฆ (/data-pipeline)
โข Follow standard ETL process
๐๐ฆ๐ท-๐๐ฑ๐ด
โข Gitlab-CI
โข Container: Docker
โข Kubernete
๐๐ญ๐ฐ๐ถ๐ฅ
โข GCP: GKE
๐๐จ๐ญ๐:
- The main project is private and on gitlab, therefore, only part of this project are demonstrated on github organization.
๐๐ค๐ข๐ฅ๐ฅ๐ฌ: JavaScript ยท Docker ยท React.js ยท Kubernetes ยท Python ยท Golang ยท Bash
Full-stack: Price Dashboard
๐๐ก๐๐ญ ๐ข๐ฌ ๐ญ๐ก๐ข๐ฌ?
- An internal SPA for the purpose of setting and reading prices in terms of each product in the online shop.
๐ช๐ต๐ฎ๐ ๐บ๐ฎ๐ธ๐ฒ ๐๐ต๐ถ๐ ๐ฝ๐ฟ๐ผ๐ท๐ฒ๐ฐ๐ ๐ฑ๐ถ๐ณ๐ณ๐ฒ๐ฟ๐ฒ๐ป๐ ๐ณ๐ฟ๐ผ๐บ ๐ผ๐๐ต๐ฒ๐ฟ ๐ฝ๐ฒ๐ผ๐ฝ๐น๐ฒ'๐ ๐๐ถ๐ฑ๐ฒ ๐ฝ๐ฟ๐ผ๐ท๐ฒ๐ฐ๐?
- A complete full stack project
๐ ๐๐๐ญ๐ฎ๐ซ๐
- Implemented 3-party API of Googleโs spreadsheet API with OAuth2/API keys authorization to my personal website.
๐๐๐๐ก ๐๐ฑ๐ฒ๐ฎ
- Developed and built up Price Dashboard from a front-end project with SPA feature to a full-stack project with microservice architecture and fully CRUD operations.
๐ง๐ฒ๐ฐ๐ต ๐ฆ๐๐ฎ๐ฐ๐ธ
๐๐ณ๐ฐ๐ฏ๐ต ๐๐ฏ๐ฅ
โข Custom Webpack+ Babel stack
โข React Hooks, React Router, Redux, React SSR, dynamic import
๐๐ฆ๐ณ๐ท๐ฆ๐ณ ๐๐ช๐ฅ๐ฆ
โข Node.js Ecosystem: Express, Typescript, Chi+Mocha, Sequelize, Mongoose
โข DB/Cache: MongoDB, Redis
Dev-Ops
โข Travis CI
โข Container: Docker, Docker-Compose
โข Reverse-Proxy: Nginx
โข Terraform
โข Kubernete
๐๐ญ๐ฐ๐ถ๐ฅ
โข AWS: ECS
Skills: JavaScript ยท Docker ยท Redis ยท Travis CI ยท Mocha (JavaScript Framework) ยท Webpack ยท React.js ยท Kubernetes ยท Mongoose ODM ยท Nginx ยท Bash ยท Node.js
Data Pipeline: US Stock Financial Report Dumper
๐๐ก๐๐ญ ๐ข๐ฌ ๐ญ๐ก๐ข๐ฌ?
- A pipeline to transform raw SEC financial reports into a customized version.
๐๐จ๐ฐ ๐ข๐ฌ ๐ญ๐ก๐ข๐ฌ ๐ฉ๐ซ๐จ๐ฃ๐๐๐ญ ๐ฎ๐ง๐ข๐ช๐ฎ๐?
- A pipeline that is independent of existing financial APIs.
๐ ๐๐๐ญ๐ฎ๐ซ๐
- Use Python to build a SEC financial report data pipeline.
- Input is a raw financial report, while output is custom report on Google Excel.
๐๐๐๐ก ๐๐ฑ๐ฒ๐ฎ
- Leverage Pandas and various design patterns.
๐๐๐๐ก ๐๐ญ๐๐๐ค
๐๐ต๐ฐ๐ณ๐ข๐จ๐ฆ
โข Google Sheet
๐๐ข๐ต๐ข ๐๐ช๐ฑ๐ฆ๐ญ๐ช๐ฏ๐ฆ
โข Leverage design patterns such as Factory, Strategy, Mediator, Observer, Chain of Responsibility, and Builder.
๐๐จ๐ญ๐:
- A complete version resides in the secFinancialReportScraper folder.
Skills: Python ยท Google Sheet API
Full-stack: Email Sender Upgraded
๐๐ก๐๐ญ ๐ข๐ฌ ๐ญ๐ก๐ข๐ฌ?
- Upgraded version of a email promotion and monitor system based on Stephergrinder's email sender. Solely to practice the cutting edge tech stack.
๐๐จ๐ฐ ๐ข๐ฌ ๐ญ๐ก๐ข๐ฌ ๐ฉ๐ซ๐จ๐ฃ๐๐๐ญ ๐ฎ๐ง๐ข๐ช๐ฎ๐?
- Learning to build a full-stack proejct
๐๐๐๐ก ๐๐ฑ๐ฒ๐ฎ
- Use Webpack-dev-server to proxy all api services and websocket connection.
- Use express as static file server in production and handle websocket connection.
- A express project in company with graphql+socket.io
- A express project in company with apollo-server+socket.io
- Update api service file structure from technical role to self-contained components.
- Refractor api service from common.js to ES6 import syntax
๐๐๐๐ก ๐๐ญ๐๐๐ค
๐๐ณ๐ฐ๐ฏ๐ต ๐๐ฏ๐ฅ
โข Custom Webpack+ Babel stack
โข React Hooks, React Router, Redux, dynamic import
โข WebSocket by Socket
โข Husky+Lint-stage
๐๐ฆ๐ณ๐ท๐ฆ๐ณ ๐๐ช๐ฅ๐ฆ
โข Node.js Ecosystem: Express, Chi+Mocha, Mongoose
โข WebSocket by Socket.io
โข GraphQL by express-graphql or apollo-server
โข DB/Cache: MongoDB
๐๐ค๐ข๐ฅ๐ฅ๐ฌ: JavaScript ยท Websocket ยท Nginx ยท Docker ยท Travis CI
Front-End: Mix Dan Studio
๐๐ก๐๐ญ ๐ข๐ฌ ๐ญ๐ก๐ข๐ฌ?
- Refactored version of my very first website with OAuth 2.0 and Google Sheet API integrated.
๐๐จ๐ฐ ๐ข๐ฌ ๐ญ๐ก๐ข๐ฌ ๐ฉ๐ซ๐จ๐ฃ๐๐๐ญ ๐ฎ๐ง๐ข๐ช๐ฎ๐?
- The first task involved transforming a static website into a server-hosted one with third-party API integration.
๐๐๐๐ก ๐๐ฑ๐ฒ๐ฎ
- Multi-entry webpack
- Write a replace image path webpack plugin
- Implement OAuth 2.0 and API keys to authorize user.
- Implement Google Sheet API
๐๐๐๐ก ๐๐ญ๐๐๐ค
๐๐ณ๐ฐ๐ฏ๐ต ๐๐ฏ๐ฅ
โข Webpack
โข Pug template
โข WebSocket by Socket
โข Husky+Lint-stage
๐๐ฆ๐ณ๐ท๐ฆ๐ณ ๐๐ช๐ฅ๐ฆ
โข Express
โข Google Sheet API
Skills: JavaScript ยท Google Sheet API ยท Node.js