Compare commits
merge into: Kevin-Mok:master
Kevin-Mok:canonical-openStack
Kevin-Mok:cover-letter
Kevin-Mok:drafts
Kevin-Mok:latex-resume
Kevin-Mok:latex-resume-aws
Kevin-Mok:latex-resume-aws-web-dev
Kevin-Mok:latex-resume-c
Kevin-Mok:latex-resume-python
Kevin-Mok:latex-resume-python-aws
Kevin-Mok:latex-resume-python-selenium
Kevin-Mok:latex-resume-web-dev
Kevin-Mok:latex-resume-web-dev-aws
Kevin-Mok:latex-resume-web-dev-django
Kevin-Mok:master
Kevin-Mok:resume-pdf
Kevin-Mok:resume-pdf-2
Kevin-Mok:resume-pdf-3
Kevin-Mok:resume-pdf-4
Kevin-Mok:resume-test
Kevin-Mok:resume-web-dev
Kevin-Mok:resume-web-dev-sniper
Kevin-Mok:server
Kevin-Mok:server-canonical
Kevin-Mok:tr-letter
pull from: Kevin-Mok:resume-web-dev
Kevin-Mok:canonical-openStack
Kevin-Mok:cover-letter
Kevin-Mok:drafts
Kevin-Mok:latex-resume
Kevin-Mok:latex-resume-aws
Kevin-Mok:latex-resume-aws-web-dev
Kevin-Mok:latex-resume-c
Kevin-Mok:latex-resume-python
Kevin-Mok:latex-resume-python-aws
Kevin-Mok:latex-resume-python-selenium
Kevin-Mok:latex-resume-web-dev
Kevin-Mok:latex-resume-web-dev-aws
Kevin-Mok:latex-resume-web-dev-django
Kevin-Mok:master
Kevin-Mok:resume-pdf
Kevin-Mok:resume-pdf-2
Kevin-Mok:resume-pdf-3
Kevin-Mok:resume-pdf-4
Kevin-Mok:resume-test
Kevin-Mok:resume-web-dev
Kevin-Mok:resume-web-dev-sniper
Kevin-Mok:server
Kevin-Mok:server-canonical
Kevin-Mok:tr-letter
24 Commits
master
...
resume-web
15 changed files with 515 additions and 199 deletions
-
74assets/sass/main.scss
-
2content/letter
-
151content/resume/_index.md
-
39content/resume/notes.md
-
293content/resume/old.md
-
98content/resume/old.txt
-
23content/resume/points-plain-text.md
-
8content/resume/skills.md
-
1layouts/partials/base/footer.html
-
3layouts/partials/base/header.html
-
7layouts/partials/base/site-title.html
-
8layouts/partials/resume/contact-info.html
-
2layouts/shortcodes/resume/project.html
-
3layouts/shortcodes/resume/work-experience.html
-
2static/pdf
@ -1 +1 @@ |
|||
Subproject commit 654fe2678f10c18da2673e86aeaf1a9b55c54218 |
|||
Subproject commit f07869796d6289112a4d88373b7440bf62314ff9 |
@ -0,0 +1,39 @@ |
|||
# ME Sniper |
|||
write me a resume section similar to this (just a bit longer) for a web dev resume based on the points after with made up statistics |
|||
|
|||
## Old |
|||
- **Developed a full-stack web application** to generate rarity |
|||
rankings for NFT's integrated with leading NFT |
|||
marketplace's (OpenSea) API, |
|||
enabling users to **quickly identify rare NFT's** and check |
|||
their listing status, **improving market research efficiency by 80%**. |
|||
- **Architected a robust Django (Python) [backend](https://github.com/Kevin-Mok/rarity-surf)** to fetch and process |
|||
NFT metadata from IPFS, store rarity rankings in |
|||
**PostgreSQL**, and serve the data via GraphQL API, **ensuring low-latency access and scaling to handle 2,000+ concurrent requests**. |
|||
- **Developed a dynamic React (Javascript) |
|||
[frontend](https://github.com/Kevin-Mok/rarity-surf-frontend)** using hooks to load |
|||
rarity data in real-time, styled with Tailwind for |
|||
mobile responsiveness, **improving user experience |
|||
and reducing frontend load times by 70%**. |
|||
|
|||
## New |
|||
- Developed a full-stack web application to generate rarity rankings for NFT’s integrated with leading NFT marketplace’s (Magic |
|||
Eden) API, enabling users to quickly identify rare NFT’s and check their listing status, improving market research efficiency by 80%. |
|||
- fetch metadata from either IPFS or website in parallel processes to create rarity |
|||
rankings as soon as metadata revealed |
|||
- reverse engineered algorithm for rarity rankings for NFT's based on article from |
|||
marketplace about their in-house statistical rarity |
|||
ranking |
|||
- created Prisma schema for PostgreSQL for database to store NFT data |
|||
- Node.js backend with API endpoints to return NFT's based |
|||
on max rank/price along with rarest traits |
|||
- lowest prices for rarity percentile to see if good deal |
|||
- fetch all listings from leading marketplace (Magic Eden) to be |
|||
able to identify which rare NFT's are on sale and be able |
|||
to filter based on max price/filter |
|||
- store previous sales data to check whether a buy at rarity |
|||
percentile is a good deal |
|||
- React FE to dynamically load NFT's based on rarity |
|||
rank/price filter with ability to hide seen ones |
|||
- Discord bot to notify you when customizable profitable resale |
|||
opportunity comes up based on rarity level/price |
@ -0,0 +1,293 @@ |
|||
<!--- {{{ Red Hat --> |
|||
|
|||
- Reduced deployment time by **66%** by [implementing ability](https://github.com/apache/incubator-kie-kogito-operator/commit/175a6356c5474f2360ccb8ae835e0b9b2d653cf1) to |
|||
deploy locally-compiled binaries onto **Kubernetes**/**OpenShift** |
|||
using only command-line (**Kubernetes/GoLang** used for this and three below). |
|||
- Implemented ability for Kubernetes operator to fetch data |
|||
from a deployed service and update config with data to |
|||
deprecate reliance on startup script. |
|||
- Added startup probes to handle starting legacy application containers that require additional startup time. |
|||
- Refactored probes to [have default values](https://github.com/apache/incubator-kie-kogito-operator/commit/af4977af228ec8648be28779259d4552246b656f) assigned based on |
|||
deployed YAML while also fixing reconciliation issues. |
|||
- Rewrote the **Jenkins (Groovy)** [nightly pipeline](https://github.com/apache/incubator-kie-kogito-pipelines/commit/4c83f1aecdea2c1ba2796b79839a90d4083dce88) to run in a GitHub |
|||
PR using a trigger keyword to test all the team's submitted PR's |
|||
before merging to the main branch. |
|||
- Took on tasks and contributed ideas in **Agile sprint** planning meetings in a team of 12 people. |
|||
- Took initiative to write [file](https://github.com/apache/incubator-kie-kogito-pipelines/commit/4c83f1aecdea2c1ba2796b79839a90d4083dce88#diff-7d2c018dafbccec859077d19bf1ade53ec9c7649f235528ce89f5632b109f7e6) |
|||
to define the GitHub parameters for the above pipeline so that it |
|||
can be recreated easily. |
|||
- Took initiative to write [documentation](https://github.com/apache/incubator-kie-kogito-operator/blob/1534c03d1d26bec08a16608a775782bf8b305de9/docs/GUIDE_FOR_KOGITO_DEVS.md) on how to get started with the project to onboard new |
|||
developers and mentored the incoming intern. |
|||
|
|||
<!--- }}} Red Hat --> |
|||
|
|||
<!--- Rarity Surf {{{ --> |
|||
|
|||
{{% resume/project name="Rarity Surf" |
|||
languages="Python, JavaScript, React, Django" |
|||
date="Oct 2021" show="true" %}} |
|||
|
|||
- **Developed a full-stack web application** to generate rarity |
|||
rankings for NFT's integrated with OpenSea's API, |
|||
enabling users to **quickly identify rare NFT's** and check |
|||
their listing status, **improving market research efficiency by 80%**. |
|||
- **Reverse engineered a proprietary ranking algorithm** to |
|||
mirror the leading rarity ranking site’s results, |
|||
**achieving 99.75% accuracy** by |
|||
utilizing data scraping techniques [with Selenium](https://github.com/Kevin-Mok/rarity-surf/blob/django/rarity_check/project/scrape.py), |
|||
increasing the platform's trustworthiness among users. |
|||
- **Optimized purchasing strategy** by leveraging the app to |
|||
frontrun competitors in purchasing top 0.5% rarity NFTs, |
|||
**boosting acquisition success rate by 90%** and allowing |
|||
users to gain a competitive edge in the marketplace. |
|||
- **Architected a robust Django (Python) [backend](https://github.com/Kevin-Mok/rarity-surf)** to fetch and process |
|||
NFT metadata from IPFS, store rarity rankings in |
|||
**PostgreSQL**, and serve the data via GraphQL API, **ensuring low-latency access and scaling to handle 2,000+ concurrent requests**. |
|||
- **Developed a dynamic React [frontend](https://github.com/Kevin-Mok/rarity-surf-frontend)** using hooks to load |
|||
rarity data in real-time, styled with Tailwind for |
|||
mobile responsiveness, **improving user experience |
|||
and reducing frontend load times by 70%**. |
|||
|
|||
{{% /resume/project %}} |
|||
|
|||
<!--- Rarity Surf }}} --> |
|||
|
|||
<!--- Rarity Surf {{{ --> |
|||
|
|||
{{% resume/project name="Rarity Surf (2)" |
|||
languages="Typescript, Node.js, React" |
|||
date="" show="true" %}} |
|||
|
|||
- **Developed a full-stack web application** to generate |
|||
rarity rankings for NFT's, integrating with **leading |
|||
marketplace’s API** to enable users to quickly identify |
|||
rare NFT's and check their listing status, **improving |
|||
market research efficiency by 80%**. |
|||
- **Built a scalable Node.js backend** with REST API |
|||
endpoints to return NFTs based on customizable filters |
|||
such as max rank, price, and rarest traits. **Optimized |
|||
performance** to handle **3,000+ concurrent requests** by |
|||
implementing efficient data fetching and caching |
|||
mechanisms, ensuring low-latency access to NFT data. |
|||
- **Developed a dynamic React frontend** to load and display |
|||
NFT's in real-time based on user-defined filters to |
|||
streamline browsing. Styled the interface using **Tailwind |
|||
CSS** for a responsive and modern design, **reducing |
|||
frontend load times by 50%**. |
|||
- **Developed a Discord bot** to notify users of profitable |
|||
resale opportunities by leveraging historical sales data |
|||
to assess deal quality. This feature **increased user |
|||
engagement by 80%** and provided a seamless way for users |
|||
to stay updated on market opportunities. |
|||
- Designed and implemented a **PostgreSQL schema** for to |
|||
efficiently store NFT data, including metadata, rarity |
|||
scores, and historical sales data. |
|||
|
|||
{{% /resume/project %}} |
|||
|
|||
<!--- Rarity Surf }}} --> |
|||
|
|||
<!--- Astronofty {{{ --> |
|||
|
|||
{{% resume/project name="Astronofty" |
|||
url="https://github.com/Kevin-Mok/astronofty" languages="JavaScript, React, Solidity" date="Jan 2023" |
|||
show="true" %}} |
|||
|
|||
- Created for a 36 hour hackathon (UofTHacks X) where it [**came 2nd overall**](https://devpost.com/software/astronofty). |
|||
- Created and deployed a smart contract with **Solidity** on |
|||
the Ethereum blockchain to create/buy/sell NFT's. |
|||
- Wrote **React** [components](https://github.com/Kevin-Mok/astronofty/tree/main/src/components) to synchronously upload images and metadata to IPFS and fetch and show NFT's. |
|||
|
|||
{{% /resume/project %}} |
|||
|
|||
<!--- Astronofty }}} --> |
|||
|
|||
<!--- AWS {{{ --> |
|||
|
|||
{{% resume/project name="AWS Server" |
|||
url="https://kevin-mok.com/server/" languages="AWS, Kubernetes, Docker, Terraform" date="May 2024" show="true" %}} |
|||
|
|||
- Deployed [various web apps](https://kevin-mok.com/server/) using **Docker** (Compose) on an |
|||
**AWS EC2** Debian/**Linux** server. |
|||
- Created **Kubernetes** [manifest files](https://github.com/Kevin-Mok/aws-minicube) to quickly recreate my server setup |
|||
with persistent storage/restarts and open ports. |
|||
- Created **Terraform** [files](https://github.com/Kevin-Mok/terraform-deploys/tree/main) |
|||
to deploy an AWS EC2 instance and Docker containers. |
|||
- Used Amazon Route 53's DNS and **NGINX** to route |
|||
subdomains to each web application. |
|||
- Wrote a **JavaScript** [server script] and [systemd service][systemd service]/[timer] |
|||
to display the uptime of my pages every hour. |
|||
|
|||
[server script]: https://git.kevin-mok.com/Kevin-Mok/server-pages/src/branch/master/server-status.js |
|||
[systemd service]: https://git.kevin-mok.com/Kevin-Mok/server-pages/src/branch/master/server-pages.service |
|||
[timer]: https://git.kevin-mok.com/Kevin-Mok/server-pages/src/branch/master/server-pages.timer |
|||
|
|||
{{% /resume/project %}} |
|||
|
|||
<!--- AWS }}} --> |
|||
|
|||
<!--- AWS 2 {{{ --> |
|||
|
|||
{{% resume/project name="AWS Server" |
|||
url="https://kevin-mok.com/server/" languages="AWS, Kubernetes, Docker, Terraform" date="May 2024" show="true" %}} |
|||
|
|||
- **Deployed and maintained multiple web applications** |
|||
using **Docker Compose** on **AWS EC2 Debian/Linux servers**, |
|||
ensuring consistent environments for applications handling |
|||
**over 2,000+ monthly requests**. |
|||
- **Streamlined infrastructure management** by creating |
|||
Kubernetes manifest files to easily recreate server setups |
|||
with persistent storage, automatic restarts, and open |
|||
ports, **reducing the need for manual configuration**. |
|||
- **Automated AWS infrastructure provisioning** by writing |
|||
**Terraform** files to deploy **EC2** instances and Docker |
|||
containers, **accelerating deployment times by 80%** and |
|||
providing an easily reproducible infrastructure setup for |
|||
future projects. |
|||
- Improved web application accessibility and scalability by |
|||
configuring Amazon Route 53’s DNS and NGINX to route |
|||
subdomains to individual web apps, enabling seamless |
|||
navigation between apps and reducing DNS resolution times |
|||
by 25%. |
|||
- Built a robust uptime monitoring system by writing a |
|||
JavaScript server script and setting up a systemd |
|||
service/timer to check and display page uptime every hour, |
|||
ensuring near real-time monitoring and reducing downtime |
|||
detection time by 85%. |
|||
|
|||
{{% /resume/project %}} |
|||
|
|||
<!--- AWS 2 }}} --> |
|||
|
|||
<!--- AWS 3 {{{ --> |
|||
|
|||
{{% resume/project name="AWS Server" |
|||
url="https://kevin-mok.com/server/" languages="AWS, Kubernetes, Docker, Terraform" date="May 2024" show="true" %}} |
|||
|
|||
- **Deployed and maintained multiple web applications** |
|||
using **Docker Compose** on **AWS EC2 Debian/Linux servers**, |
|||
ensuring consistent environments for applications handling |
|||
**over 2,000+ monthly requests**. |
|||
- **Automated AWS infrastructure provisioning** by writing |
|||
**Terraform** files to deploy AWS EC2 instances and Docker |
|||
containers, **accelerating deployment times by 80%** and |
|||
providing an easily reproducible infrastructure setup. |
|||
|
|||
{{% /resume/project %}} |
|||
|
|||
<!--- AWS 3 }}} --> |
|||
|
|||
<!--- Astronofty (extended) {{{ --> |
|||
|
|||
{{% resume/project name="Astronofty" |
|||
url="https://github.com/Kevin-Mok/astronofty" languages="JavaScript, React, Solidity" date="Jan 2023" |
|||
show="true" %}} |
|||
|
|||
- **Secured [2nd place](https://devpost.com/software/astronofty) overall out of 150+ teams** at UofTHacks |
|||
X, a 36-hour hackathon, for developing a blockchain-based |
|||
NFT marketplace app. |
|||
- **Built and optimized React (JavaScript) [components](https://github.com/Kevin-Mok/astronofty/tree/main/src/components)** to synchronously |
|||
upload images and metadata to IPFS, **enhancing user engagement by 40%** during the demo, |
|||
and ensuring real-time NFT data retrieval, achieving a **75% improvement in loading times**. |
|||
|
|||
{{% /resume/project %}} |
|||
|
|||
<!--- Astronofty }}} --> |
|||
|
|||
<!--- {{{ Spotify Graphs --> |
|||
|
|||
{{% resume/project name="Spotify Graphs" |
|||
url="https://github.com/Kevin-Mok/spotify-lib-vis" date="June 2020 " |
|||
languages="Python, Django, PostgreSQL" |
|||
show="true" %}} |
|||
|
|||
- Web app to visualize user's library and listening |
|||
history from Spotify. |
|||
- [Fetched and organized](https://github.com/Kevin-Mok/spotify-lib-vis/blob/master/api/utils.py) user data from Spotify API into PostgreSQL database with **Django (Python)** backend. |
|||
- Created and tested various relational database schemas to maximize |
|||
efficiency for use cases. |
|||
- Generated various charts to visualize the artists and genres |
|||
of tracks in library. |
|||
|
|||
{{% /resume/project %}} |
|||
|
|||
<!--- Spotify Graphs }}} --> |
|||
|
|||
<!--- Grocery Finder {{{ --> |
|||
|
|||
{{% resume/project name="Grocery Finder" |
|||
url="https://github.com/Kevin-Mok/grocery-finder" date="Feb. 2019 — Apr. 2019" |
|||
show="true" %}} |
|||
|
|||
- Proof of concept for web app that finds the ideal supermarket based on your cart. |
|||
- Designed responsive front-end layout using **Bootstrap**. |
|||
- Implemented REST API functionality on backend using **Node.js** and |
|||
**MongoDB**. |
|||
- Setup deployment on [**Heroku**][Grocery Finder Heroku]. |
|||
- Led team of 4 as project leader to prioritize and delegate tasks while |
|||
also implementing a majority of the core features. |
|||
- Performed code review for team members' pull requests. |
|||
|
|||
[Grocery Finder Heroku]: http://www.grocery-finder.ml |
|||
|
|||
{{% /resume/project %}} |
|||
|
|||
<!--- Grocery Finder }}} --> |
|||
|
|||
<!--- CSC369 {{{ --> |
|||
|
|||
{{% resume/project name="Custom Kernel Module" |
|||
url="https://kevin-mok.com/server/" date="Jan. 2022" show="true" %}} |
|||
|
|||
- Wrote and installed a [custom Linux kernel module](https://github.com/Kevin-Mok/interceptor-kernel/blob/master/a1/interceptor.c) in **C**. |
|||
- Intercepted pre-existing system calls using |
|||
custom kernel module by sending commands to |
|||
userspace. |
|||
- Monitored specific process ID's in my system |
|||
call to intercept their system calls. |
|||
|
|||
{{% /resume/project %}} |
|||
|
|||
<!--- CSC369 }}} --> |
|||
|
|||
<!--- ParsaFood {{{ --> |
|||
|
|||
{{% resume/project name="ParsaFood" |
|||
url="https://github.com/Kevin-Mok/ParsaFood" date="Feb. 2018" |
|||
show="true" %}} |
|||
|
|||
- **Android** app that reads ingredient labels and detects any dietary |
|||
restrictions/allergies. |
|||
- Designed user interface and linked various functionality together. |
|||
- Made during a 24-hour [food-themed hackathon][Platterz Hackathon event] |
|||
in a group with two other members. Came in 2<sup>nd</sup> place and won |
|||
an [Oculus Rift][Oculus Rift Amazon]. |
|||
|
|||
[Parsafood repo]: https://github.com/Kevin-Mok/ParsaFood |
|||
[Platterz Hackathon event]: |
|||
https://www.eventbrite.com/e/platterz-hackathon-tickets-42682237722 |
|||
[Oculus Rift Amazon]: https://www.amazon.ca/Oculus-Rift-Windows-VR-Headset/dp/B00VF0IXEY/ref=sr_1_1_sspa?ie=UTF8&qid=1520422949&sr=8-1-spons&keywords=oculus+rift&psc=1 |
|||
|
|||
{{% /resume/project %}} |
|||
|
|||
<!--- ParsaFood }}} --> |
|||
|
|||
<!--- DigitalOcean {{{ --> |
|||
|
|||
{{% resume/project name="Personal Server" |
|||
url="https://kevin-mok.com/server/" date="Aug. 2019 — present" %}} |
|||
|
|||
- Deployed various web apps with backends such as Node, PHP and Python using |
|||
**NGINX** on a **Debian** server. |
|||
- Monitor system resources and perform system maintenance using tmux. |
|||
- Wrote [**Node.js** script][server script] and [**systemd** service][systemd service]/[timer] |
|||
to check and display the uptime of my pages every hour. |
|||
|
|||
[server script]: https://git.kevin-mok.com/Kevin-Mok/server-pages/src/branch/master/server-status.js |
|||
[systemd service]: https://git.kevin-mok.com/Kevin-Mok/server-pages/src/branch/master/server-pages.service |
|||
[timer]: https://git.kevin-mok.com/Kevin-Mok/server-pages/src/branch/master/server-pages.timer |
|||
|
|||
{{% /resume/project %}} |
|||
|
|||
<!--- DigitalOcean Droplet }}} --> |
|||
|
@ -1,98 +0,0 @@ |
|||
<!--- CSC369 {{{ --> |
|||
|
|||
{{% resume/project name="Custom Kernel Module" |
|||
url="https://kevin-mok.com/server/" date="Jan. 2022" show="true" %}} |
|||
|
|||
- Wrote and installed a [custom Linux kernel module](https://github.com/Kevin-Mok/interceptor-kernel/blob/master/a1/interceptor.c) in **C**. |
|||
- Intercepted pre-existing system calls using |
|||
custom kernel module by sending commands to |
|||
userspace. |
|||
- Monitored specific process ID's in my system |
|||
call to intercept their system calls. |
|||
|
|||
{{% /resume/project %}} |
|||
|
|||
<!--- CSC369 }}} --> |
|||
|
|||
<!--- Spotify Graphs {{{ --> |
|||
|
|||
{{% resume/project name="Spotify Graphs" |
|||
url="https://github.com/Kevin-Mok/spotify-lib-vis" date="June 2018 — July 2018" |
|||
show="true" %}} |
|||
|
|||
- Implemented base functionality of scanning tracks and listening |
|||
history from user's library using Spotify API and organized data |
|||
into **PostgreSQL** database with **Django** backend. |
|||
- Created and tested various relational database schemas to maximize |
|||
efficiency for use cases. |
|||
- Produced bubble chart and (stacked) bar chart using [**d3**] |
|||
[d3 graph examples] to visualize the artists, genres and features of |
|||
tracks in library. |
|||
|
|||
[d3 graph examples]: https://github.com/d3/d3/wiki/Gallery |
|||
|
|||
{{% /resume/project %}} |
|||
|
|||
<!--- Spotify Graphs }}} --> |
|||
|
|||
<!--- Grocery Finder {{{ --> |
|||
|
|||
{{% resume/project name="Grocery Finder" |
|||
url="https://github.com/Kevin-Mok/grocery-finder" date="Feb. 2019 — Apr. 2019" |
|||
show="true" %}} |
|||
|
|||
- Proof of concept for web app that finds the ideal supermarket based on your cart. |
|||
- Designed responsive front-end layout using **Bootstrap**. |
|||
- Implemented REST API functionality on backend using **Node.js** and |
|||
**MongoDB**. |
|||
- Setup deployment on [**Heroku**][Grocery Finder Heroku]. |
|||
- Led team of 4 as project leader to prioritize and delegate tasks while |
|||
also implementing a majority of the core features. |
|||
- Performed code review for team members' pull requests. |
|||
|
|||
[Grocery Finder Heroku]: http://www.grocery-finder.ml |
|||
|
|||
{{% /resume/project %}} |
|||
|
|||
<!--- Grocery Finder }}} --> |
|||
|
|||
<!--- DigitalOcean {{{ --> |
|||
|
|||
{{% resume/project name="Personal Server" |
|||
url="https://kevin-mok.com/server/" date="Aug. 2019 — present" %}} |
|||
|
|||
- Deployed various web apps with backends such as Node, PHP and Python using |
|||
**NGINX** on a **Debian** server. |
|||
- Monitor system resources and perform system maintenance using tmux. |
|||
- Wrote [**Node.js** script][server script] and [**systemd** service][systemd service]/[timer] |
|||
to check and display the uptime of my pages every hour. |
|||
|
|||
[server script]: https://git.kevin-mok.com/Kevin-Mok/server-pages/src/branch/master/server-status.js |
|||
[systemd service]: https://git.kevin-mok.com/Kevin-Mok/server-pages/src/branch/master/server-pages.service |
|||
[timer]: https://git.kevin-mok.com/Kevin-Mok/server-pages/src/branch/master/server-pages.timer |
|||
|
|||
{{% /resume/project %}} |
|||
|
|||
<!--- DigitalOcean Droplet }}} --> |
|||
|
|||
<!--- ParsaFood {{{ --> |
|||
|
|||
{{% resume/project name="ParsaFood" |
|||
url="https://github.com/Kevin-Mok/ParsaFood" date="Feb. 2018" |
|||
show="true" %}} |
|||
|
|||
- **Android** app that reads ingredient labels and detects any dietary |
|||
restrictions/allergies. |
|||
- Designed user interface and linked various functionality together. |
|||
- Made during a 24-hour [food-themed hackathon][Platterz Hackathon event] |
|||
in a group with two other members. Came in 2<sup>nd</sup> place and won |
|||
an [Oculus Rift][Oculus Rift Amazon]. |
|||
|
|||
[Parsafood repo]: https://github.com/Kevin-Mok/ParsaFood |
|||
[Platterz Hackathon event]: |
|||
https://www.eventbrite.com/e/platterz-hackathon-tickets-42682237722 |
|||
[Oculus Rift Amazon]: https://www.amazon.ca/Oculus-Rift-Windows-VR-Headset/dp/B00VF0IXEY/ref=sr_1_1_sspa?ie=UTF8&qid=1520422949&sr=8-1-spons&keywords=oculus+rift&psc=1 |
|||
|
|||
{{% /resume/project %}} |
|||
|
|||
<!--- ParsaFood }}} --> |
@ -0,0 +1,23 @@ |
|||
# Red Hat |
|||
1. Reduced deployment time by 66% by implementing ability to deploy locally-compiled binaries onto Kubernetes/OpenShift using only command-line (Kubernetes/GoLang used for this and three below). |
|||
2. Implemented ability for Kubernetes operator to fetch data from a deployed service and update config with data to deprecate reliance on startup script. |
|||
3. Added startup probes to handle starting legacy application containers that require additional startup time. |
|||
4. Refactored probes to have default values assigned based on deployed YAML while also fixing reconciliation issues. |
|||
5. Rewrote the Jenkins (Groovy) nightly pipeline to run in a GitHub PR using a trigger keyword to test all the team’s submitted PR’s before merging to the main branch. |
|||
6. Took on tasks and contributed ideas in Agile sprint planning meetings in a team of 12 people. |
|||
7. Took initiative to write file to define the GitHub parameters for the above pipeline so that it can be recreated easily. |
|||
8. Took initiative to write documentation on how to get started with the project to onboard new developers and mentored the incoming intern. |
|||
|
|||
# Rarity Surf |
|||
1. Web app to give rarity rankings to NFT’s and check which are listed on the OpenSea marketplace using their API. |
|||
2. Reverse engineered the ranking algorithm to match the leading rarity ranking site’s rankings (scraped using Selenium) with a discrepancy of <0.25%. |
|||
3. Used app to frontrun purchases of top 0.5% rarity NFT’s against competing buyers. |
|||
4. Wrote Django (Python) backend to fetch metadata from IPFS, store rarity rankings in PostgreSQL and serve rarity data using GraphQL. |
|||
5. Wrote React frontend with hooks to dynamically load rarity data. Styled with Tailwind. |
|||
|
|||
# AWS |
|||
1. Deployed various web apps using Docker (Compose) on an AWS EC2 Debian/Linux server. |
|||
2. Created Kubernetes manifest files to quickly recreate my server setup with persistent storage/restarts and open ports. |
|||
3. Created Terraform files to deploy an AWS EC2 instance and Docker containers. |
|||
4. Used Amazon Route 53’s DNS and NGINX to route subdomains to each web application. |
|||
5. Wrote a JavaScript server script and systemd service/timer to display the uptime of my pages every hour. |
@ -0,0 +1,8 @@ |
|||
# DevOps |
|||
AWS, Kubernetes, Terraform, Docker (Compose), Jenkins, Groovy, Go(Lang), Bash, **Linux**, **JavaScript**, **React**, **Python**, **Django**, Node.js, PostgreSQL, MongoDB, Solidity, C, **Git**, **Command Line** |
|||
|
|||
# Web Dev |
|||
**JavaScript**, **React**, **Python**, **Django**, Node.js, PostgreSQL, MongoDB, Bash, **Git**, **Linux**, **Command Line**, Go(Lang), AWS, Kubernetes, Terraform, Docker (Compose), Jenkins, Groovy, Solidity, C |
|||
|
|||
# Python |
|||
**Python**, **Django**, **Linux**, **Git**, AWS, Kubernetes, Docker (Compose), Ansible, Jenkins, Selenium, Terraform, Go(Lang), PostgreSQL, **Command Line**, Groovy, Bash, **JavaScript**, **React**, Node.js, MongoDB, Solidity, C |
@ -1,7 +1,4 @@ |
|||
<h1 class="site-title"> |
|||
<span class="surrounding">[</span><a href="{{ .Site.BaseURL }}"><span class="base08">K</span><span |
|||
class="base0f">e</span><span class="base09">v</span><span |
|||
class="base0a">i</span><span class="base0b">n </span><span |
|||
class="base0c">M</span><span class="base0d">o</span><span |
|||
class="base0e">k</span></a><span class="surrounding">] # _</span> |
|||
<span class="surrounding"></span><a href="{{ .Site.BaseURL }}"> |
|||
<span>Kevin Mok</span> |
|||
</h1> |
@ -1 +1 @@ |
|||
Subproject commit f96e4a7485601fe51a4171a83063f28e79a5a06a |
|||
Subproject commit b86b7df80e0470fd5b64fa6f88207af62c1406c8 |
Write
Preview
Loading…
Cancel
Save
Reference in new issue