Mobile-responsive personal website, generated using Hugo. https://kevin-mok.com/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

223 lines
10 KiB

  1. <!--- {{{ Red Hat -->
  2. - Reduced deployment time by **66%** by [implementing ability](https://github.com/apache/incubator-kie-kogito-operator/commit/175a6356c5474f2360ccb8ae835e0b9b2d653cf1) to
  3. deploy locally-compiled binaries onto **Kubernetes**/**OpenShift**
  4. using only command-line (**Kubernetes/GoLang** used for this and three below).
  5. - Implemented ability for Kubernetes operator to fetch data
  6. from a deployed service and update config with data to
  7. deprecate reliance on startup script.
  8. - Added startup probes to handle starting legacy application containers that require additional startup time.
  9. - Refactored probes to [have default values](https://github.com/apache/incubator-kie-kogito-operator/commit/af4977af228ec8648be28779259d4552246b656f) assigned based on
  10. deployed YAML while also fixing reconciliation issues.
  11. - Rewrote the **Jenkins (Groovy)** [nightly pipeline](https://github.com/apache/incubator-kie-kogito-pipelines/commit/4c83f1aecdea2c1ba2796b79839a90d4083dce88) to run in a GitHub
  12. PR using a trigger keyword to test all the team's submitted PR's
  13. before merging to the main branch.
  14. - Took on tasks and contributed ideas in **Agile sprint** planning meetings in a team of 12 people.
  15. - Took initiative to write [file](https://github.com/apache/incubator-kie-kogito-pipelines/commit/4c83f1aecdea2c1ba2796b79839a90d4083dce88#diff-7d2c018dafbccec859077d19bf1ade53ec9c7649f235528ce89f5632b109f7e6)
  16. to define the GitHub parameters for the above pipeline so that it
  17. can be recreated easily.
  18. - 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
  19. developers and mentored the incoming intern.
  20. <!--- }}} Red Hat -->
  21. <!--- Rarity Surf {{{ -->
  22. {{% resume/project name="Rarity Surf"
  23. languages="Python, JavaScript, React, Django"
  24. date="Oct 2021" show="true" %}}
  25. - **Developed a full-stack web application** to generate rarity
  26. rankings for NFT's integrated with OpenSea's API,
  27. enabling users to **quickly identify rare NFT's** and check
  28. their listing status, **improving market research efficiency by 80%**.
  29. - **Reverse engineered a proprietary ranking algorithm** to
  30. mirror the leading rarity ranking site’s results,
  31. **achieving 99.75% accuracy** by
  32. utilizing data scraping techniques [with Selenium](https://github.com/Kevin-Mok/rarity-surf/blob/django/rarity_check/project/scrape.py),
  33. increasing the platform's trustworthiness among users.
  34. - **Optimized purchasing strategy** by leveraging the app to
  35. frontrun competitors in purchasing top 0.5% rarity NFTs,
  36. **boosting acquisition success rate by 90%** and allowing
  37. users to gain a competitive edge in the marketplace.
  38. - **Architected a robust Django (Python) [backend](https://github.com/Kevin-Mok/rarity-surf)** to fetch and process
  39. NFT metadata from IPFS, store rarity rankings in
  40. **PostgreSQL**, and serve the data via GraphQL API, **ensuring low-latency access and scaling to handle 2,000+ concurrent requests**.
  41. - **Developed a dynamic React [frontend](https://github.com/Kevin-Mok/rarity-surf-frontend)** using hooks to load
  42. rarity data in real-time, styled with Tailwind for
  43. mobile responsiveness, **improving user experience
  44. and reducing frontend load times by 70%**.
  45. {{% /resume/project %}}
  46. <!--- Rarity Surf }}} -->
  47. <!--- Astronofty {{{ -->
  48. {{% resume/project name="Astronofty"
  49. url="https://github.com/Kevin-Mok/astronofty" languages="JavaScript, React, Solidity" date="Jan 2023"
  50. show="true" %}}
  51. - Created for a 36 hour hackathon (UofTHacks X) where it [**came 2nd overall**](https://devpost.com/software/astronofty).
  52. - Created and deployed a smart contract with **Solidity** on
  53. the Ethereum blockchain to create/buy/sell NFT's.
  54. - 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.
  55. {{% /resume/project %}}
  56. <!--- Astronofty }}} -->
  57. <!--- AWS {{{ -->
  58. {{% resume/project name="AWS Server"
  59. url="https://kevin-mok.com/server/" languages="AWS, Kubernetes, Docker, Terraform" date="May 2024" show="true" %}}
  60. - Deployed [various web apps](https://kevin-mok.com/server/) using **Docker** (Compose) on an
  61. **AWS EC2** Debian/**Linux** server.
  62. - Created **Kubernetes** [manifest files](https://github.com/Kevin-Mok/aws-minicube) to quickly recreate my server setup
  63. with persistent storage/restarts and open ports.
  64. - Created **Terraform** [files](https://github.com/Kevin-Mok/terraform-deploys/tree/main)
  65. to deploy an AWS EC2 instance and Docker containers.
  66. - Used Amazon Route 53's DNS and **NGINX** to route
  67. subdomains to each web application.
  68. - Wrote a **JavaScript** [server script] and [systemd service][systemd service]/[timer]
  69. to display the uptime of my pages every hour.
  70. [server script]: https://git.kevin-mok.com/Kevin-Mok/server-pages/src/branch/master/server-status.js
  71. [systemd service]: https://git.kevin-mok.com/Kevin-Mok/server-pages/src/branch/master/server-pages.service
  72. [timer]: https://git.kevin-mok.com/Kevin-Mok/server-pages/src/branch/master/server-pages.timer
  73. {{% /resume/project %}}
  74. <!--- AWS }}} -->
  75. <!--- AWS 2 {{{ -->
  76. {{% resume/project name="AWS Server"
  77. url="https://kevin-mok.com/server/" languages="AWS, Kubernetes, Docker, Terraform" date="May 2024" show="true" %}}
  78. - **Deployed and maintained multiple web applications**
  79. using **Docker Compose** on **AWS EC2 Debian/Linux servers**,
  80. ensuring consistent environments for applications handling
  81. **over 2,000+ monthly requests**.
  82. - **Streamlined infrastructure management** by creating
  83. Kubernetes manifest files to easily recreate server setups
  84. with persistent storage, automatic restarts, and open
  85. ports, **reducing the need for manual configuration**.
  86. - **Automated AWS infrastructure provisioning** by writing
  87. **Terraform** files to deploy **EC2** instances and Docker
  88. containers, **accelerating deployment times by 80%** and
  89. providing an easily reproducible infrastructure setup for
  90. future projects.
  91. - Improved web application accessibility and scalability by
  92. configuring Amazon Route 53’s DNS and NGINX to route
  93. subdomains to individual web apps, enabling seamless
  94. navigation between apps and reducing DNS resolution times
  95. by 25%.
  96. - Built a robust uptime monitoring system by writing a
  97. JavaScript server script and setting up a systemd
  98. service/timer to check and display page uptime every hour,
  99. ensuring near real-time monitoring and reducing downtime
  100. detection time by 85%.
  101. {{% /resume/project %}}
  102. <!--- AWS 2 }}} -->
  103. <!--- {{{ Spotify Graphs -->
  104. {{% resume/project name="Spotify Graphs"
  105. url="https://github.com/Kevin-Mok/spotify-lib-vis" date="June 2020 "
  106. languages="Python, Django, PostgreSQL"
  107. show="true" %}}
  108. - Web app to visualize user's library and listening
  109. history from Spotify.
  110. - [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.
  111. - Created and tested various relational database schemas to maximize
  112. efficiency for use cases.
  113. - Generated various charts to visualize the artists and genres
  114. of tracks in library.
  115. {{% /resume/project %}}
  116. <!--- Spotify Graphs }}} -->
  117. <!--- Grocery Finder {{{ -->
  118. {{% resume/project name="Grocery Finder"
  119. url="https://github.com/Kevin-Mok/grocery-finder" date="Feb. 2019 — Apr. 2019"
  120. show="true" %}}
  121. - Proof of concept for web app that finds the ideal supermarket based on your cart.
  122. - Designed responsive front-end layout using **Bootstrap**.
  123. - Implemented REST API functionality on backend using **Node.js** and
  124. **MongoDB**.
  125. - Setup deployment on [**Heroku**][Grocery Finder Heroku].
  126. - Led team of 4 as project leader to prioritize and delegate tasks while
  127. also implementing a majority of the core features.
  128. - Performed code review for team members' pull requests.
  129. [Grocery Finder Heroku]: http://www.grocery-finder.ml
  130. {{% /resume/project %}}
  131. <!--- Grocery Finder }}} -->
  132. <!--- CSC369 {{{ -->
  133. {{% resume/project name="Custom Kernel Module"
  134. url="https://kevin-mok.com/server/" date="Jan. 2022" show="true" %}}
  135. - Wrote and installed a [custom Linux kernel module](https://github.com/Kevin-Mok/interceptor-kernel/blob/master/a1/interceptor.c) in **C**.
  136. - Intercepted pre-existing system calls using
  137. custom kernel module by sending commands to
  138. userspace.
  139. - Monitored specific process ID's in my system
  140. call to intercept their system calls.
  141. {{% /resume/project %}}
  142. <!--- CSC369 }}} -->
  143. <!--- ParsaFood {{{ -->
  144. {{% resume/project name="ParsaFood"
  145. url="https://github.com/Kevin-Mok/ParsaFood" date="Feb. 2018"
  146. show="true" %}}
  147. - **Android** app that reads ingredient labels and detects any dietary
  148. restrictions/allergies.
  149. - Designed user interface and linked various functionality together.
  150. - Made during a 24-hour [food-themed hackathon][Platterz Hackathon event]
  151. in a group with two other members. Came in 2<sup>nd</sup> place and won
  152. an [Oculus Rift][Oculus Rift Amazon].
  153. [Parsafood repo]: https://github.com/Kevin-Mok/ParsaFood
  154. [Platterz Hackathon event]:
  155. https://www.eventbrite.com/e/platterz-hackathon-tickets-42682237722
  156. [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
  157. {{% /resume/project %}}
  158. <!--- ParsaFood }}} -->
  159. <!--- DigitalOcean {{{ -->
  160. {{% resume/project name="Personal Server"
  161. url="https://kevin-mok.com/server/" date="Aug. 2019 — present" %}}
  162. - Deployed various web apps with backends such as Node, PHP and Python using
  163. **NGINX** on a **Debian** server.
  164. - Monitor system resources and perform system maintenance using tmux.
  165. - Wrote [**Node.js** script][server script] and [**systemd** service][systemd service]/[timer]
  166. to check and display the uptime of my pages every hour.
  167. [server script]: https://git.kevin-mok.com/Kevin-Mok/server-pages/src/branch/master/server-status.js
  168. [systemd service]: https://git.kevin-mok.com/Kevin-Mok/server-pages/src/branch/master/server-pages.service
  169. [timer]: https://git.kevin-mok.com/Kevin-Mok/server-pages/src/branch/master/server-pages.timer
  170. {{% /resume/project %}}
  171. <!--- DigitalOcean Droplet }}} -->