About

Hi! My name's Jacky and I'm a finance nerd turned software engineer. Some of the things I love: spending the whole day hiking the Sedona Red Rocks, cooking up a hot bowl of beef noodle soup on a chilly night, playing a few sets of tennis on the local hard courts, and breathing life into an imagination by building a full-stack web application using React, Redux, PostgreSQL, and Express / Flask. Let's solve some big problems together, or just talk hobbies!

Check out my resume here.

Contact me at jacky.hao18@gmail.com

Skills

  • JavaScript
  • Python
  • PostgreSQL
  • React
  • Redux
  • Express
  • Sequelize
  • Flask
  • SQLALchemy
  • Node.js
  • HTML / CSS
  • Docker
  • Git

Projects

Leverage is a Robinhood-inspired web application in which users can trade stocks alongside their friends.

  • Integrated an external financial data API, IEX Cloud, to fetch JSON-encoded responses for populating stock and company details in order to provide users with up to date asset and portfolio value information.
  • Designed a backtracking algorithm to backfill historical stock price data during periods of stock and market inactivity in order to render seamless time series data utilizing Recharts, a React charting library.
  • Established a self-referential many to many relationship in the SQLAlchemy object-relational mapper to create association tables for capturing the social features of the application, such as friends and friend requests.
Github
Live

Whereabouts is a choose-your-adventure web application in which users can explore and share about randomly generated locations.

  • Utilized the Google Maps API in conjunction with a geographical coordinate randomization algorithm to present users with maximum radius bound locations to visit and share with their followers.
  • Connected the Flask backend to AWS S3 for photo storage and organization to manage user image uploads, reduce server loads, and enhance scalability.
  • Normalized state shape in Redux and used slice reducers to organize the state tree to more intuitively dispatch thunks to render data on the frontend.
Github
Live

Court Reserve is an Airbnb-inspired web application for booking tennis courts to allow users to play when and where they want.

  • Implemented a search feature using Redux and database query operations in the Sequelize object-relational mapper to allow users to filter for tennis courts in their particular cities.
  • Secured user permissions through the use of JSON Web Token-based authentication and custom middleware functions to verify user identity.
Github
Live

Elements

Text

This is bold and this is strong. This is italic and this is emphasized. This is superscript text and this is subscript text. This is underlined and this is code: for (;;) { ... }. Finally, this is a link.


Heading Level 2

Heading Level 3

Heading Level 4

Heading Level 5
Heading Level 6

Blockquote

Fringilla nisl. Donec accumsan interdum nisi, quis tincidunt felis sagittis eget tempus euismod. Vestibulum ante ipsum primis in faucibus vestibulum. Blandit adipiscing eu felis iaculis volutpat ac adipiscing accumsan faucibus. Vestibulum ante ipsum primis in faucibus lorem ipsum dolor sit amet nullam adipiscing eu felis.

Preformatted

i = 0;

while (!deck.isInOrder()) {
    print 'Iteration ' + i;
    deck.shuffle();
    i++;
}

print 'It took ' + i + ' iterations to sort the deck.';

Lists

Unordered

  • Dolor pulvinar etiam.
  • Sagittis adipiscing.
  • Felis enim feugiat.

Alternate

  • Dolor pulvinar etiam.
  • Sagittis adipiscing.
  • Felis enim feugiat.

Ordered

  1. Dolor pulvinar etiam.
  2. Etiam vel felis viverra.
  3. Felis enim feugiat.
  4. Dolor pulvinar etiam.
  5. Etiam vel felis lorem.
  6. Felis enim et feugiat.

Icons

Actions

Table

Default

Name Description Price
Item One Ante turpis integer aliquet porttitor. 29.99
Item Two Vis ac commodo adipiscing arcu aliquet. 19.99
Item Three Morbi faucibus arcu accumsan lorem. 29.99
Item Four Vitae integer tempus condimentum. 19.99
Item Five Ante turpis integer aliquet porttitor. 29.99
100.00

Alternate

Name Description Price
Item One Ante turpis integer aliquet porttitor. 29.99
Item Two Vis ac commodo adipiscing arcu aliquet. 19.99
Item Three Morbi faucibus arcu accumsan lorem. 29.99
Item Four Vitae integer tempus condimentum. 19.99
Item Five Ante turpis integer aliquet porttitor. 29.99
100.00

Buttons

  • Disabled
  • Disabled

Form