Top 3 projects that showcases my learning:
- LZStock (This is the one you must check if you have to pick one)
- Data Pipeline
- Price Dashboard
Full-stack: LZStock
(Now is on Stage 1)
LZStock is a stock screener that saves you time to help you make decisions quickly.
๐๐ก๐๐ญ ๐ข๐ฌ ๐ญ๐ก๐ข๐ฌ?
- This is a self-initiated project built to demonstrate my comprehensive understanding of how to construct a fundamental, general-purpose, production-ready system.
- I chose an interesting topic: A US stock screener based on financial statements sourced from www.sec.gov.
- This project centers on developing a foundational framework, exploring best practices, and acquiring experience through genuine challenges.
๐๐จ๐ฐ ๐ข๐ฌ ๐ญ๐ก๐ข๐ฌ ๐ฉ๐ซ๐จ๐ฃ๐๐๐ญ ๐ฎ๐ง๐ข๐ช๐ฎ๐?
- Encompassed the entire development lifecycle, from initial design through to final deployment.
- Leveraged DDD (Domain-Driven Design) to design the Domain and Bounded Context based on business requirements.
- I personally owned this product and built it single-handedly within 100 days.
๐๐ซ๐จ๐๐ฎ๐๐ญ ๐๐๐๐ฌ๐ข๐ญ๐๐ฌ
- Visit the website and play: LZstock
๐๐๐๐ก ๐๐ฅ๐จ๐
- Visit LZStock tech blog:
- What and How I built? (This is the only page you have to check if you have no time)
- Why do these topics matter?(Working...)
๐๐ง๐ญ๐๐ซ๐๐ฌ๐ญ๐ข๐ง๐ ๐๐ข๐ง๐๐ข๐ง๐ ๐ฌ
- Golang's type alias mechanism is suitable for DDD, as it allows defining rich domain types without the performance or memory footprint of creating complex structs.
- The test strategy is enhanced by DDD because its domain objects are structured as self-contained units, facilitating straightforward unit testing without external dependencies.
๐ ๐ข๐ซ๐ฌ๐ญ ๐๐ญ๐๐ ๐ ๐ ๐๐๐ญ๐ฎ๐ซ๐๐ฌ
- Smart Watchlists for flexible grouping
- An autocomplete search with a ternary search tree from the ground up
- Real-Time Tracking (mocking source)
- Secure Authentication
- Mobile-ready application
๐๐ข๐ ๐ก-๐ฅ๐๐ฏ๐๐ฅ ๐๐๐๐ก๐ง๐ข๐๐๐ฅ ๐๐๐ฌ๐ข๐ ๐ง
- A monorepo codebase with 15 Golang-based microservices deployable on Kubernetes (K8S)
- High-level design is composed of application-level and infrastructure-level components.
- Explored and implemented critical application-level topics, including: API Design and Versioning, Use Cases and Controllers, Algorithm, Data Query, Concurrency, Error Handling, Testing Strategies, Database Optimization and Selection, and Security.
- Investigated and applied common infrastructure-level principles, such as: Fault Tolerance, High Availability and Scalability, Networking and Protocols, Cloud and DevOps, Monitoring and Observability
- For a detailed explanation of the 'what', please refer to the LZStock Tech Blog.
๐๐จ๐ฐ-๐ฅ๐๐ฏ๐๐ฅ ๐๐๐๐ก๐ง๐ข๐๐๐ฅ ๐๐๐ฌ๐ข๐ ๐ง
- Low-level design topics expand upon high-level concepts, focusing primarily on coding-related aspects, design patterns, and best practices.
- For a detailed explanation of the 'what' and 'how,' please refer to the LZStock Tech Blog.
๐๐๐๐ก ๐๐ญ๐๐๐ค
๐๐ณ๐ฐ๐ฏ๐ต ๐๐ฏ๐ฅ (react-based)
โข Custom Webpack+ Babel stack
โข React Hooks/TanStack Router/Jotai/React in Typescript
โข Static hosting on Vercel via CircleCI deployment.
๐๐ฆ๐ณ๐ท๐ฆ๐ณ ๐๐ช๐ฅ๐ฆ (golang-based microservices)
โข Golang gRPC Server
โข FastHttp as a Gateway
โข WebSocket service with gRPC server stream to push session-based stock price
โข NATs-JetStream for async-communication
โข PostgreSQL, Redis
๐๐ฆ๐ท-๐๐ฑ๐ด
โข CircleCI
โข Terraform manage infrastructure configuration
โข Helm Chart handle deployments for each service
โข Gitlab Container Registry
โข K8S on GCP
โข GKE + CloudFlare + Vercel
Data Pipeline: US Stock Financial Report Dumper
๐๐ก๐๐ญ ๐ข๐ฌ ๐ญ๐ก๐ข๐ฌ?
- A streamlined data pipeline that leverages an ETL process to screen companies using raw financial data from Morningstar Excel files, outputting a range of first-level and second-level indicators directly to Google Sheets.
๐ ๐๐๐ญ๐ฎ๐ซ๐
- Modular ETL Pipeline: A clean separation of concerns between Data Ingestion (Local/API), Transformation (Financial Indicator Calculation), and Loading (Google Sheets/Databases).
- Advanced Financial Analysis: Implements various valuation models and indicators, including DCF, Graham Number, DDM, and more.
๐๐๐๐ก ๐๐ฑ๐ฒ๐ฎ
- Robust Design Pattern Implementation: The project leverages a wide array of design patterns (Factory, Observer, Command, Strategy, Builder, Mediator), reflecting advanced proficiency in software architecture and code maintainability.
- Strict Separation of Concerns (SoC): Each architectural layerโfrom data sources and core calculations to the final deliveryโis clearly defined, ensuring modularity and easier debugging.
- Architected for Scalability: By prioritizing ABCs and Strategy patterns, the framework simplifies future enhancements, making it straightforward to add new financial indicators or complex valuation algorithms.
๐๐๐๐ก ๐๐ญ๐๐๐ค
๐๐ต๐ฐ๐ณ๐ข๐จ๐ฆ
โข 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: 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
๐๐ญ๐ฐ๐ถ๐ฅ
โข AWS: ECS
Skills: JavaScript ยท Docker ยท Redis ยท Travis CI ยท Mocha (JavaScript Framework) ยท Webpack ยท React.js ยท Mongoose ODM ยท Nginx ยท Bash ยท Node.js
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
