Phạm Gia Vỹ
Software Engineering

SKILL

BACKEND

NodeJs
NestJs
ExpressJs
MongoDB
Mongoose

FRONTEND

ReactJs
Angular
NextJs

PROFILE

NamePhạm Gia Vỹ
Birthday02 September 1997
NationalViệt Nam
LanguageVietnamese, English

ABOUT ME

My name is Vỹ, I have 5 years experience as Software Engineering. I can work well with my team to achieve a shared goal or outcome in an effective way. As for leadership skills, I am leading and mentoring a mini team with 3 members to help them grow better in the professional working environment. I can work as a Backend and Frontend Developer.

WORK EXPERIENCE

Senior Software Engineering
Terralogic
May 2022 - Present

Role:

  • Work as a Backend and Frontend Developer for HROS Project.
  • Lead 2 team member in backend team
  • Support devops team create CI/CD and deployment
  • Provide the solution
  • Review code of team member
  • Report to direct manager

Feature

HROS is a comprehensive HR management app designed to simplify your workforce management. Key features include:
  • Employee Management: Centralize employee data, onboarding/offboarding.
  • Time Tracking: Easy check-in/out, timesheet submission,time-off requests.
  • Project & Client Oversight: Manage projects and customer
  • Expense and assets management: Manage the expense and assets of employee
  • And more...

Platforms:

  • Employee Platform: Access by employees of the company
  • Admin Platform: Access by permission, which employee have permission could access this platform
  • Super Admin Platform: Access by Product Owner, Sales team, use to manage the subscription and config for each tenant
  • Mobile App: Mobile version of Employee Platform, run on Android and IOS

Architectures:

  • Integrate with some service of Google like Calendar, Meet, Firebase
  • Real-time system with Socket.IO
  • Microservices architecture
  • Micro frontend architecture
  • Multi-tenancy architecture
  • Dynamic Role & Permission system
  • 100% Codes using Typescript

Main Tech stack:

  • MongoDB:

    Why MongoDB but not any relational DB:
    • We are on development state so the data could change frequently, MongoDB have flexibility to change the data structure
    • The company will have a lot of reports everyday, with MongoDB we could generate the report separate with the main data easily
  • Redis

    What is Redis used for?
    • Caching: HROS use by many tenant, each tenant have different config for their company, when the service started, we store the config to Redis to increase performance
    • Role and permission caching: We have dynamic Role and Permission for each user/employee, example the user with Permission "HOME_PAGE_VIEW" they could access the Home page only, we want to prevent this user using Postman or any other tools to fetch the data, we cache the endpoints of the Permission, "HOME_PAGE_VIEW" will have endpoint GET /api/posts so the service could validate base on the endpoint and allow or denied access
  • NodeJs
  • NestJs

    Why NestJs but not any other framework?
    • Dependency Injection: With a little "magic" of decorator, we can easily write cleaner code without creating class instance with keyword "new"
    • Data transform object: With class validator and class transform we combine the code of validation and interface, cleaner code, easy maintain
  • NextJs

Achievement:

  • Snap award - Best employee in 2nd Quarter 2023
Middle Software Engineering
Fintech 4.0
October 2020 - May 2022

Role:

  • Frontend and Backend developer
  • Setup VPS and deploy services
  • Provide the solution

Project

  • King wallet: store the crypto currency
  • King investment: User can deposit the crypto currency, the system will pay profit everyday
  • King live: User can live streaming and receive donation via crypto currency

Tech stack

  • MongoDB
  • NodeJs
  • ReactJs
Junior Software Engineering
NPS Service
December 2019 - October 2020
Work as a Backend and Frontend Developer for outsource project in company.
Technical :
  • HTML
  • CSS
  • Javascript
  • NodeJs
  • MongoDB
Fullstack developer
Personal Project

Order Of Angel

Description

Order Of Angel is a mobile/web real-time strategy game, user can train their own army and conquer other player's castle. This game have many type of unit, each unit have their own ability. Choose the number of unit carefully.

Features:

  • Multi worlds (multi tenancy)
  • Sign up / sign in
  • Generate resource per seconds
  • Training Unit
  • Conquer other player castle or build new castle on empty square on the map
  • Enhance Unit
  • Steal resource
  • Spy other castle

Main Tech stack:

  • NestJS with multi tenancy architecture
  • MongoDB with multi tenancy architecture
  • E2E Unit test
  • Angular 17 with RxJS only
  • React Native to load webview on mobile
  • Socket.IO to push real-time data

Crops management

Description

Crop Management is a web app designed for home gardeners. Easily track what you've planted, when you planted it, and when it's ready to harvest. Never forget what's growing in your mini garden again

Features

  • Create block (Each block have multiple slot to plant crop)
  • Create type of crop (Each type of crop will have estimate time to harvest)
  • Place the crop to the slot of the block, when the crop placed, it start countdown to harvest day
  • Manually harvest soon
  • Switch place of crop

Main Tech stack:

  • NestJS
  • MongoDB
  • Angular 17 with RxJS only