<!--- {{{ 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 }}} -->

