Software engineer by formal training, software developer by passion and now by career, solo traveler and landscape photographer by hobby. Currently working as independent contractor.
C#
.NET Core
.NET 5+
LINQ
Entity Framework Core
REST
RESTful API
ASP.NET MVC
Redux
Redux Saga
OOP
SOLID
Design Patterns
Dependency Injection
SaaS
This website is built by me using .NET for server-side rendering and backend logic.
HTML
HTML5
CSS
CSS3
JSON
TypeScript
JavaScript
ES6+
ES2015+
ECMAScript
ReactJS
React Native
git
GitHub
Gitflow
CI/CD
Agile/Scrum
Jira
This website is built by me using React Native and TypeScript.
Docker
Kubernetes
React SSR
NuGet
Yarn
Npm
Webpack
NodeJS
Jest
Shell Scripting
SQL
MySQL
SQLite
GitHub Actions
Let's Encrypt
Cloudflare
This website is being operated by me using Kubernetes and GitHub Actions.
Personal website I develop for myself using Orchard Core CMS and Antimatter. This resume page you are viewing right now is part of it.
React Native UI component library for faster and simpler web and native app development. Support iOS, Android and Web.
Free, Open Source, Apache licensed, Multi-Threaded website crawler which uses Chromium web browser to fully render website.
I joined Stack Overflow to help and get help from other software developers around the world.
Reputation: 5600+
Personal Project
I use my software engineering skills to design, implement and operate a software system that helps me solve problems in life. The software currently includes a Content Management System, a personal website, an iOS app, a VPN server, a React Native component library and a backend API. Some parts of the software are open source and can be found below.
- React components I built:
Showcase: miniskylab.com/storybook
Source code: github.com/miniskylab/Antimatter
- Backend API I developed: miniskylab.com/open-api
- My personal website: You are looking at it!
Technologies: React Native .NET 5+ TypeScript C# MySQL Redux Redux Saga Storybook Webpack Kubernetes GitHub Actions Let's Encrypt Cloudflare DigitalOcean OpenVPN SaaS
United States • Remote • Contractor
Technologies: React Native React.js TypeScript JavaScript SaaS
US, EU, APAC • Remote • Contractor
I’ve been working as a freelance software developer for various clients and with different technologies. My responsibilities vary depending on the project and client I work for. Below are the most notable ones:
Process: Agile/Scrum
Responsibilities:
- Organize a team of 4 – 6 people using Agile/Scrum process and Jira, Actionable Agile tools.
- Communicate with clients, CTO, marketing departments, cross-functional teams, etc. to collect, clarify and understand requirements.
- Refine vague requirements from clients into Jira tasks with detailed acceptance criteria and scope then put them into product backlog.
- Schedule and organize backlog refinement meetings in which all team members cast their votes to assign story points to each task based on its scope and acceptance criteria.
- Utilize Monte Carlo: How Many tool to decide how many tasks to bring into new sprints in sprint planning meetings.
- Utilize Aging Work In Progress tool to track the progress of each task in daily standup meetings.
- Utilize the OpenAPI Generator tool to automatically generate client libraries and documentation from existing APIs which cuts down development time by 20%.
- Setup CI/CD build system including linter, unit test runner and build scripts.
- Get nearly 100 Jira tasks done across projects.
Technologies: React Native React.js TypeScript JavaScript Node.js Webpack Jest .NET C# MySQL Docker Kubernetes Next.js NestJS Express.js AWS SaaS
Adludio • United Kingdom • Remote • Contractor
I worked with their European team to develop a web-based tool that helps manage advertising campaigns of Adludio's clients.
Process: Agile/Scrum
Responsibilities:
- Advise the team to switch from walking the table to walking the board format for daily standup meetings by driving 3 meetings using the new format as examples. My advice received positive feedback from the team and was adopted shortly after.
- Advise the team to use Conventional Commits specification for writing commit messages which received positive feedback from the tech lead.
- Communicate with tech lead and cross-functional teams to collect, clarify and understand requirements.
- Refine vague requirements collected from tech lead and cross-functional teams into Jira tasks with detailed acceptance criteria and scope then put them into product backlog.
- Get more than 12 Jira tasks done for the team.
Technologies: React.js TypeScript Node.js MySQL SaaS
Legal & General • United Kingdom • Remote • Contractor
I worked with their core team to develop various web-based tools for their business unit.
Process: Agile/Scrum
Responsibilities:
- Successfully delivered 7 projects to the business unit.
- Collaborate with cross-functional teams (frontend developers, testers, business analysts, graphical designers, etc.) through a series of Three Amigos meetings to understand business requirements and translate them into Jira tasks with detailed acceptance criteria and scope.
- Collaborate with frontend developers and testers through a series of Three Amigos meetings to design solutions for each Jira task.
- Communicate with business analysts and stakeholders to explain and suggest alternatives to business requirements that are impossible to implement.
- Get nearly 100 Jira tasks done for the team.
Technologies: .NET 5+ C# ASP.NET Optimizely CMS SaaS
Optimizely • Vietnam • On-site
I joined the Expert Services team to directly provide technical support for clients of Optimizely.
Responsibilities:
- Aid in the project bidding process by refining vague requirements from clients into a detailed work breakdown structure and providing rough estimates for each work item in it.
- Review, assess and suggest improvements for codebases submitted by Mazda’s subsidiaries around the world.
Technologies: .NET Core C# Selenium Electron.js SaaS
MCB • Vietnam • On-site
I worked with their Research & Development team to rebuild their e-commerce platform using new technologies.
Process: Agile/Scrum
Responsibilities:
- Optimize performance of API endpoints by moving data extraction and transformation logics from codebase to stored procedures in database which results in a decrease in response time by 80% from 5 seconds to less than 1 second.
Technologies: React.js ASP.NET C# Microsoft SQL Server SaaS
FPT Software • Vietnam • On-site
My team and I worked for a Czech Republic client and our job was to rebuild their document management platform with new elegant UI and better UX. They also wanted to add a couple of new features to their newly developed platform.
Process: Agile/Scrum
Team size: 30 people
Technologies: React.js .NET Framework
FPT University • Vietnam
I graduated from FPT University after 4 year studying with a Bachelor of Science degree in Software Engineering.
Major: Software Engineering
Minor: Embedded System
GPA: 8.01 / 10
Rank: Very Good