Quick learning
To me, building a new feature just like writing a new if statement with a new variable. So as long as the requirement is clear enough to know what is the condition of the if, the feature is doable.
I started with PHP first but now I'm mainly working on Django. I was able to start working with python after 4 days self-learning then become leader assistant after 1 month.
The most important things I learned from working with PHP is how the web works, what browser does, what server does and what can be done with the web.
Programming language, framework, template, etc... is just the things that expert build to solve the problem they met.
Full stack engineer
Working history
/ Technical Architect
django villas
Inspectorio was almost 2-years old when I join. Its product is very interesting and kind of leading in the market. What Inspectorio is a product with high quality in order to match with its idea and position.
I started with improving the test coverage, adding unittest, adding Sentry, and changing the git flow so that we can develop faster, easier and safer. We reduced the change of having unknown/randomly issue to 0 for new deployment.
We changed from Flask to Django, DynamoDB to Postgresql/MongoSQL, session-id to JWT... etc to give the product more extensibility, stability, scalability.
The microservice structure gives us the ability to scale up the product and team easily while adding more complexity to the developers' work. I'm trying to reduce the work complexity of developers while keeping same productivity.
/ Lead Engineer
django villas
The Luxe Nomad is a travel agency company.
I've rebuilt the whole website into Django + ReactJS within 2 months, including: booking, admin, channel manage, data migration from old system, payment, voucher. Also switched from MongoDB to Postgresql with data migration for better performance and r educe the complexity of code base.
We use checkout.com as a payment service, which allow customer to pay via many types of card.
At Luxe Nomad, I spend more time to optimize the AWS infrastructure to reduce the server cost, which was really high. The frontend script is built from local and added to git history for each deployment to reduce the EC2 usage from medium to small. We deployed admin, frontend, channel manager, worker and email worker into different server for better performance.
/ Team Leader
python django agile api
East Agile apply pair programming process here, which is really good for engineer especially for junior because the senior will teach them a lot when working in the pair. Pair programming also reduce the risk of changing team members because we always have at least 1 member understand the project.
I worked to build a general API for Home Depot which is used to build their web and mobile apps. We started with improving their test coverage from 30% to 90%. After that reduce the test running time from 10 mins to less than 120 secs. We have only 2 members on our side working night-shift with a client in the US for 9 months. The project ended when the client has enough member to handle this project in-house.
I started the job in East Agile with a project for Linqua. The client wants to re-build their ad-system with a good test suite. We built an ad-server application (Python), a reporting system (Python) and rewrite some important part of their main application (PHP).
I got chance to work with some Javascript frameworks like AngularJS, ReactJS.
/ Team Leader
php magento
I came to Vida to become their new team leader, the Magento team. The company gives me 1 month to research, learn, and practice with Magento while looking for team members. There's not much people in Vietnam work with Magento at that time.
The team has 4 members at the time the first Magento project arrived. We got more and more projects but the team size increase only 1 member to a 5 people size team, including me. Every 2 members handle 2 projects in the development phase, 2 of them also in charge of maintenance that project when it goes public. I was in charge of handle all most difficult part of those project including customizing Magento behavior, writing new modules, packages, payment methods, etc... while teaching the team to do so.
Our team is not the biggest team in the company at that time but we are the most friendly team or happy team in my point of view. We have enough time for 1 training class per week, my team members listen to me even all of them are older than me (I was about 24 at that time).
I learned and practiced Git in this company, and after 2 years I realized I did a really really bad git process there.
/ Software Engineer
Software Engineer
I was a PHP expert when I join this company, my best friend invites me to join with her so that we can work together. The company was formed 2 months after the interviewing. I only know they were looking for Python engineer on the first day of work. The company gives each of engineer (it seems nobody knows Python Django at that time in Ho Chi Minh city) 1 week to learn Python and Django. After 4 days of learning, I start with the first task of maintaining a project name "Legend Cards" game, the very famous web games in Japan at that time. After 1 month, I was given the lead assistant position.
We used Django to build web game application here. In 9 months, I worked with 4 game projects, fix a lot of bugs including 6 security bugs that I found and raised. 2 of 4 projects are the mobile web game.
The company tries to use 1 general solution to build the game application on both iOS and Android. I was given the task to research about all the technology can be used for that. Thus I touch iOS object-c, Android Java, PhoneGap, Appcelerator..., build a game application for each of them as a demo. At the end, the solution is developed 2 apps, 1 for Android and 1 or iOS for each game.
/ Tech Lead
php zend-framework joomla prestashop
I started my own business with my friends at Blueway. I was in charge of building the engineering team, bidding projects, and controlling the quality of outcome. We developed 3 products at the same time, a web service, a self-learning website, and a real learning tool for English.
The company was sold after 4 years.
This startup gave me a lot of experiences about managing a company, we have to care about the staff, the tax, the income, the company image, the people, the product, the vision...
/ Senior Developer
php wordpress modx joomla
The first time I work in a company office. I was a freelancer until I joined this company.
The company was forming at that time, we started with some small projects like build websites base on PHP CMS like Wordpress, MODx, and Joomla.
Build web Virtual Fitting Room allow the customer to try new clothes on the website.
I learned company manner here. Learned to use project management tools to manage the project. We used ClockingIT.
B.S Computer Science
/ B.S Computer Science
software-engineering computer-science
Thesis 9.0
GPA: 3.14
Started my first job at the university's Software Experiment Lab in my 2nd year.
Started working as a freelancer on 3rd year.
Joined and built a charity group name Care and Share. Help to build their website and join their activity.
Was member of organizer group of Challenge 2011
Top projects that I worked on
django
Villa booking service
A website connects to many villas and integrate with many channel API
Team size: 1
python django restapi
Steam service
A backend API used for ReactJS, Android and iOS
We rebuilt the whose MVP in just 5 weeks.
Team size: 6
python django
Single Sign-On system
A backend API used in front-end android library for authentication
This is a simple API but we need to handle 6.000.000 user with 15k requests/minute thus every small thing need to be perfect.
Team size: 4
python django reactjs
Chicago Police Misconduct website.
This website uses Django API backend and ReactJS front-end for data browsing and filtering.
Because of this website's purpose, we spend most of the time on UI and UX stuff:
Team size: 8
django rest api unit-testing
American E-Commerce API
Improved test coverage from 30% to 90%
Reduced test running time from 10 minutes to 120 seconds.
Built some new API.
Follow strictly PEP-8 coding standard.
Team size: 2
python google-app-engine angularjs
An expert network project.
We are mainly in charge of improving this project's unit testing, integration testing, the test coverage of its, built API for AngularJS's call.
Team size: 2
django tornado php api
Online marketing provider
Built new ad-server on Django and report system on Tornado.
Rewrote some features of PHP application.
Added unit-test and integration test.
Team size: 2
php magento
Developed and maintenance 6 Magento based websites.
Developed new Klarna checkout module for Magento which is mostly used in North Europ countries. Klarna provides a checkout API allow us to create/modify/manage order on their system. I integrated Klarna Checkout to Magento.
Developed Criteo integrated module for sales tracking on Magento.
Developed Magento Apptus module, allow Magento fetch data from Apptus server and display it on Magento itself. I designed and build this module so that Magento can treat Apptus as a database server for products and search collection.
Team size: 4
/ website is down
python django ios android
Mobile web game
I worked on the initial stage of this project, researched about the capability of mobile development frameworks (Android, iOS, PhoneGap, Titanium platform, ...). Because of the capability of PhoneGap, Titanium and other frameworks like them, at the end, the mobile apps were built on both Android and iOS instead of "write for one, run for all".
I also designed architecture for this project: request and response flow, class structure, folder structure. Designed and optimized database structure.
Wrote API core structure for connection from mobile app and website.
Write core structure and requirement for mobile notification from the website with apns.
Team size: 8
python django
Mobile web game
Improve performance, security.
I closed 6 serious security holes in this project, any of them can make the whole game shut down. Those bugs related to missing permission validation before doing actions.
Improved performance by using Redis/Memcache, refactoring source code, and convert source code to OOP style. Re-implement some function using background cronjob and shell execution to reduce the page load time.
Team size: 14
/ website is down
php magento zend
Question and answer website, a clone of StackOverflow.
Team size: 2
php javascript
Did more than 20 jobs about debugging. Most of the time, those bugs cannot be solved by their current engineering team. So it requires me to quickly understand their code and detect where the bug should be, after that I fix those bug using their coding style so that they can easily understand and change when needed.
Team size: 1
php python
Developed about 30 applications for collecting data in some special websites.
Most of those websites require logged in to get information. Some of them are webmails, which is required about 10 steps in right order to log in.
Some websites (.NET, Oracle, configurated Apache) cannot be scrawledusing cURL extension, so I must write a low-level code using fsockopen to request and take the response from those web server.
Some automation applications based on web crawling for vBullentin, cPanel.
Team size: 1