Vincent Zhang

Software Engineer

Portfolio

Django REST Framework, WebSockets, and Celery Proof of Concept

User is able to start a long running background task and get immediate notification when job has started and completed without a browser refresh. This was achieved using Django REST Framework API server and Django Channels which uses WebSockets on the back end for duplex communication. Upon receiving a job start API request, a Celery task is started to simulate a long running process. React JavaScript library was used to build frontend interface, make AJAX calls to API server, and works with long polling along with WebSockets for real time updates. The technology stack used was React frontend, Python, Django REST framework, Django Channels, WebSockets, PostgreSQL database, Redis, and Celery task queue.

CheckRobot.com

A check printing web application for small businesses in which users are able to save bank account details and regular payees to simplify new check creation. Users are able to perform CRUD (Create, Read, Update, Delete) operations on database models. Written in Python, Flask web framework, PostgreSQL database, Twitter Bootstrap for user interface, ReportLab for PDF generation, and SSL/HTTPS on Nginx.

StellarRobot

A web application for the Stellar digital currency that can send and receive payments on the Stellar network. A WebSockets client listens for incoming transactions affecting interested accounts and starts a corresponding Celery task to handle each message. Return payments are structured in a way to protect against network failure and retries without sending multiple payments.

The technology stack used was Python, Flask web framework, PostgreSQL database, WebSockets to listen for incoming transactions, Celery task management, RabbitMQ messaging layer, Redis to handle task locking, and Nginx as a reverse proxy in front of Gunicorn web server hosted on Digital Ocean.

RentMath.io

A simple rental property income calculator. Calculates monthly mortgage payments, cash flow, capitalization rate, and other metrics. Written in Python, Flask web framework and Twitter Bootstrap.

Areacodely.com

A location lookup tool using the first six digits (area code and prefix) of a United States phone number. Data is gathered from the North American Numbering Plan Administration (NANPA). Written in Python, Flask web framework and PostgreSQL database. Note that unfortunately the NANPA database is incomplete but it works better for landline numbers over mobile numbers.

Google Adwords Domain Name Checker

A Windows desktop GUI application to scrape keywords from the Google Adwords Keyword Tool and check for the exact match domain using a combination of WHOIS data and Google’s public DNS server. Data was saved to a SQLite database and included IP proxy support.