SKILL
BACKEND
FRONTEND
PROFILE
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
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
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
Technical :
- HTML
- CSS
- Javascript
- NodeJs
- MongoDB
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