Compare commits

...

27 Commits

Author SHA1 Message Date
58a3eeab3b Update resume 2024-10-09 10:55:12 -04:00
c6f9ad9ad1 Add Terraform/K8s links to server 2024-07-19 16:47:07 -04:00
56aa499c6a Update resume 2024-07-15 16:15:43 -04:00
87c293ce13 Bold Golang 2024-06-14 11:34:51 -04:00
9be9043b6c Rearrage socials 2024-06-13 11:18:09 -04:00
26d63d2e6a Increase socials size 2024-06-13 11:14:30 -04:00
b1f3cfdf57 Home: update education/looking for work 2024-06-13 10:58:32 -04:00
461eb2aeb6 Update Linux config 2024-06-12 10:45:19 -04:00
a7fa6b9f3e Fix config desktop screenshot, update server date
- rm card
2024-06-10 12:41:01 -04:00
d21758675c Server: AWS EC2 link 2024-06-10 12:32:22 -04:00
14c6827b79 Resume: fix Jenkins 2024-06-10 12:07:08 -04:00
052f98860d Resume: increase readability 2024-06-03 18:08:00 -04:00
7c08682c66 Resume: Terraform 2024-06-03 17:50:09 -04:00
179b3f7c7e Resume: Terraform 2024-06-01 15:45:18 -04:00
2abc9de891 Add link to site 2024-05-29 13:52:37 -04:00
16bff441df Minor changes 2024-05-29 13:50:09 -04:00
6b2a29b078 Kogito PR links 2024-05-24 10:08:12 -04:00
1881fd9778 Resume spacing/font sizes 2024-05-24 09:43:39 -04:00
24f58db4f9 Work exp colors 2024-05-24 09:28:07 -04:00
61dc603da2 Add Astronofty to resume 2024-05-23 19:27:01 -04:00
c9e307dd70 AWS server to resume 2024-05-23 19:17:27 -04:00
4d29261b3c Merge remote 'canonical-openStack' into server 2024-04-02 10:53:20 -04:00
b7a493c8c9 Server 2024-04-02 10:44:54 -04:00
20a120e33e Resume: add ref section 2023-09-16 10:00:59 -04:00
30e8771472 Update me equation 2023-09-02 17:33:36 -04:00
a06054f737 Update about 2023-09-02 17:30:36 -04:00
4a55c02468 Updated resume 2023-09-02 17:24:28 -04:00
20 changed files with 235 additions and 119 deletions

1
README.md Normal file
View File

@@ -0,0 +1 @@
https://kevin-mok.com/

View File

@@ -103,7 +103,8 @@ body {
margin: 0; margin: 0;
background-color: $background-color; background-color: $background-color;
color: $color; color: $color;
line-height: 1.5; // line-height: 1.5;
line-height: 1.57;
// font-size: 100%; // font-size: 100%;
font-size: 15px; font-size: 15px;
// font-size: 20px; // font-size: 20px;
@@ -171,7 +172,8 @@ footer {
margin-top: 2rem; margin-top: 2rem;
$vertical-margin: .2em; $vertical-margin: .2em;
text-align: center; text-align: center;
font-size: 0.8em; // font-size: 0.8em;
font-size: .85em;
color: #747369; color: #747369;
// bottom: 0; // bottom: 0;
// position: absolute; // position: absolute;
@@ -211,7 +213,8 @@ footer {
// padding-right: .9em; // padding-right: .9em;
img { img {
height: 1.5em; // height: 1.5em;
height: 3em;
@include vert-margin-rem(.2); @include vert-margin-rem(.2);
padding-left: .5em; padding-left: .5em;
opacity: .6; opacity: .6;
@@ -369,7 +372,7 @@ header {// {{{
display: inline; display: inline;
&#gnu { &#gnu {
background-color: $base04; // background-color: $base04;
// background-color: $base05; // background-color: $base05;
} }
} }
@@ -529,6 +532,7 @@ header {// {{{
} }
.url-info { .url-info {
font-size: 1em;
margin-left: 5px; margin-left: 5px;
// position: relative; // position: relative;
// left: -8px; // left: -8px;
@@ -544,6 +548,9 @@ header {// {{{
#resume {// {{{ #resume {// {{{
a {// {{{ a {// {{{
// text-decoration: none; // text-decoration: none;
// color: $base-blue;
color: #4287cd;
// color: blue;
text-decoration: underline; text-decoration: underline;
&:hover { &:hover {
text-decoration: underline; text-decoration: underline;
@@ -554,7 +561,8 @@ header {// {{{
color: $base-orange; color: $base-orange;
// margin-top: 1.3rem; // margin-top: 1.3rem;
margin-top: 1rem; margin-top: 1rem;
font-size: 1.2em; // font-size: 1.2em;
font-size: 1.3em;
// @media (max-width: $phone-width) { // @media (max-width: $phone-width) {
// margin-top: .75rem; // margin-top: .75rem;
@@ -590,10 +598,19 @@ header {// {{{
// } // }
}// }}} }// }}}
.section-header {
margin-top: 1em;
margin-bottom: 0.4em;
}
ul { ul {
margin-bottom: 5px; margin-bottom: 5px;
} }
.work-experience {
margin-bottom: 5px;
}
#projects {// {{{ #projects {// {{{
// // h1 { // // h1 {
// // margin-bottom: 3px; // // margin-bottom: 3px;
@@ -605,6 +622,7 @@ header {// {{{
h2 { h2 {
color: $base-sky-blue; color: $base-sky-blue;
display: inline; display: inline;
font-size: 1.1em;
} }
img { img {
@@ -613,7 +631,12 @@ header {// {{{
.project-header { .project-header {
// margin-bottom: .6em; // margin-bottom: .6em;
margin-bottom: .1em; // margin-bottom: .1em;
margin-bottom: 5px;
}
.project-title {
color: $base-blue;
} }
.project-link { .project-link {
@@ -653,8 +676,28 @@ header {// {{{
} }
}// }}} }// }}}
.company {
color: #fe4646;
font-weight: bold;
font-size: 1.2em;
margin-bottom: 5px;
}
.position {
// color: black;
// color: $base-sky-blue;
color: $base-blue;
font-weight: bold;
// font-style: italic;
font-size: 1.1em;
// margin-bottom: 5px;
margin-bottom: 15px;
}
.institution { .institution {
color: $base-yellow; // color: $base-yellow;
// color: $base-dark-orange;
color: $base-blue;
font-weight: bold; font-weight: bold;
font-size: 1.1em; font-size: 1.1em;
margin-bottom: 5px; margin-bottom: 5px;

View File

@@ -1,5 +1,5 @@
baseURL: http://localhost:1313/ # baseURL: http://localhost:1313/
# baseURL: https://kevin-mok.com/ baseURL: https://kevin-mok.com/
# baseURL: /home/kevin/coding/mf-site/public # baseURL: /home/kevin/coding/mf-site/public
languageCode: en-us languageCode: en-us
# title: Kevin Mok's Website # title: Kevin Mok's Website
@@ -26,9 +26,9 @@ menu:
- name: config - name: config
url: /config url: /config
weight: 10 weight: 10
- name: card # - name: card
url: /card # url: /card
weight: 15 # weight: 15
# - name: letter # - name: letter
# url: /letter # url: /letter
# weight: 17 # weight: 17

View File

@@ -6,7 +6,7 @@ layout: single
--- ---
<!--- Intro {{{ --> <!--- Intro {{{ -->
![desktop-screenshot](https://img.khkm.tk/uploads/big/b2bd45e8f436d389ecb787b5c61c951a.png) ![desktop-screenshot](/img/config/desktop-screenshot.png)
*Screenshot from my dual-monitor setup.* *Screenshot from my dual-monitor setup.*
This [repository][lc-repo] contains the dotfiles to increase my workflow This [repository][lc-repo] contains the dotfiles to increase my workflow
@@ -18,17 +18,17 @@ efficiency. They are also for my Linux [rice][ricing_explanation].
<!--- Main Programs {{{ --> <!--- Main Programs {{{ -->
## Main Programs ## Main Programs
* **OS**: [Arch Linux](https://www.archlinux.org/) ([packages](txt/nzxt-pkgs.txt)) * **OS**: [Arch Linux](https://www.archlinux.org/) ([packages](https://git.kevin-mok.com/Kevin-Mok/linux-config/src/branch/master/txt/arch-2-pkgs.txt))
``` ```
$ systemd-analyze $ systemd-analyze
Startup finished in 2.341s (kernel) + 1.085s (userspace) = 3.426s Startup finished in 2.341s (kernel) + 1.085s (userspace) = 3.426s
graphical.target reached after 1.085s in userspace graphical.target reached after 1.085s in userspace
``` ```
* **Terminal**: [rxvt-unicode-pixbuf](https://www.wikiwand.com/en/Rxvt) * **Terminal**: [kitty](https://sw.kovidgoyal.net/kitty/)
* **Shell**: [Zsh](http://zsh.sourceforge.net/) + [oh-my-zsh](https://github.com/robbyrussell/oh-my-zsh) * **Shell**: [fish](https://fishshell.com/)
* **Window Manager**: [i3-gaps](https://github.com/Airblader/i3) * **Window Manager**: [i3-gaps](https://i3wm.org/)
* **Editor**: [Neovim](https://github.com/neovim/neovim) ([plugins](dotfiles/.vimrc#L51)) * **Editor**: [neovim](https://neovim.io/) ([plugins](https://git.kevin-mok.com/Kevin-Mok/linux-config/src/branch/master/dot_vimrc.tmpl#L147-L359))
* **File Manager**: [ranger](https://ranger.github.io/) * **File Manager**: [ranger](https://github.com/ranger/ranger?tab=readme-ov-file#ranger-193)/[PCManFM](https://en.wikipedia.org/wiki/PCMan_File_Manager)
<!--- }}} Basic Info --> <!--- }}} Basic Info -->
<!--- Setup {{{ --> <!--- Setup {{{ -->

View File

@@ -5,74 +5,76 @@ draft: false
--- ---
{{% resume/section "Work Experience" %}}<!--- {{{ --> {{% resume/section "Work Experience" %}}<!--- {{{ -->
{{% resume/education name="Red Hat" {{% resume/work-experience name="Red Hat"
title="Cloud/Software Engineer Intern" date="May 2020 — Aug 2021" %}} title="Cloud/Software Engineer Intern" languages="Kubernetes, GoLang, Jenkins" date="May 2020 — Aug 2021" %}}
- Reduced deployment time by **66%** by implementing ability to
deploy locally-compiled binaries onto **Kubernetes**/**OpenShift** - **Reduced deployment time by 66%** by implementing a
using only command-line. [solution](https://github.com/apache/incubator-kie-kogito-operator/commit/175a6356c5474f2360ccb8ae835e0b9b2d653cf1) for deploying locally-compiled binaries onto
- Implemented ability for Kubernetes operator to fetch data Kubernetes/OpenShift via command-line, **cutting average
from a deployed service and update config with data. deployment times from 45 minutes to 15 minutes**.
- Added startup probes to handle starting legacy application containers that require additional startup time. (**Kubernetes/GoLang** used for this and three below).
- Refactored probes to have default values assigned based on - **Eliminated 80% of manual configuration errors** by enabling
deployed YAML while also fixing reconciliation issues. the Kubernetes operator to automatically fetch data from
- Automated the promotion and release process deployed services and update configurations, **deprecating
as part of the **Jenkins** release pipeline. legacy startup scripts and reducing overall startup time
- Wrote documentation on how to get started with the project to onboard new by 40%**.
developers and mentored the incoming intern. - **Improved application stability** by introducing startup
probes for legacy applications with longer boot times,
**resulting in a 50% reduction in startup-related failures
and downtime during production launches**.
- **Enhanced system reliability** by refactoring probes to
[assign default values](https://github.com/apache/incubator-kie-kogito-operator/commit/af4977af228ec8648be28779259d4552246b656f) dynamically based on deployed YAML
files and fixing reconciliation issues, **increasing probe
accuracy by 30%** and preventing misconfigurations.
- **Increased CI pipeline efficiency** by rewriting the
**Jenkins (Groovy)** [nightly pipeline](https://github.com/apache/incubator-kie-kogito-pipelines/commit/4c83f1aecdea2c1ba2796b79839a90d4083dce88) to run in a GitHub PR
environment, allowing for automated testing of all
team-submitted PRs prior to merging, **reducing manual
intervention by 60%**.
- **Demonstrated leadership and collaboration** by actively
contributing to **Agile** sprint planning in a 12-member team,
driving improvement in sprint velocity through
optimized task delegation and idea generation.
- **Increased project reproducibility** by taking initiative to
write a [reusable GitHub parameters file](https://github.com/apache/incubator-kie-kogito-pipelines/commit/4c83f1aecdea2c1ba2796b79839a90d4083dce88#diff-7d2c018dafbccec859077d19bf1ade53ec9c7649f235528ce89f5632b109f7e6) for the pipeline,
**enabling 100% reusability** and ensuring consistent pipeline
setups across different environments.
- **Streamlined developer onboarding** by authoring
comprehensive [project documentation](https://github.com/apache/incubator-kie-kogito-operator/blob/1534c03d1d26bec08a16608a775782bf8b305de9/docs/GUIDE_FOR_KOGITO_DEVS.md) and mentoring an
incoming intern, **reducing onboarding time by 50%** and
enhancing new team members' productivity within their
first sprint.
{{% /resume/section %}}<!--- }}} --> {{% /resume/section %}}<!--- }}} -->
{{% resume/section projects %}}<!--- {{{ --> {{% resume/section projects %}}<!--- {{{ -->
<!--- 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 }}} -->
<!--- DigitalOcean {{{ -->
{{% resume/project name="Personal Server"
url="https://kevin-mok.com/server/" date="Aug. 2019 — present" show="true" %}}
- Deployed [various web apps] with backends using NGINX on a Debian/**Linux** server.
- Wrote a [**JavaScript** script][server script] and [systemd service][systemd service]/[timer]
to display the uptime of my pages every hour.
- Monitored system resources and performed system maintenance using tmux.
[various web apps]: https://kevin-mok.com/server/
[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 }}} -->
<!--- Rarity Surf {{{ --> <!--- Rarity Surf {{{ -->
{{% resume/project name="Rarity Surf" {{% resume/project name="Rarity Surf"
languages="Python, JavaScript, React, Django"
date="Oct 2021" show="true" %}} date="Oct 2021" show="true" %}}
- Web app to give rarity rankings to NFT's within minutes of their metadata being revealed and check which are listed (based on rarity and price filters) on the OpenSea marketplace using their API. - **Developed a full-stack web application** to generate rarity
- Reverse engineered the ranking algorithm to match the rankings for NFT's integrated with OpenSea's API,
leading rarity ranking site's rankings (scraped using enabling users to **quickly identify rare NFT's** and check
Selenium) with a **discrepancy of <0.25%**. their listing status, **improving market research efficiency by 80%**.
- Used app to frontrun purchases of **top 5%** rarity NFT's - **Reverse engineered a proprietary ranking algorithm** to
against competing buyers. mirror the leading rarity ranking sites results,
- Wrote **Django (Python)** backend to fetch metadata from IPFS, store rarity rankings in PostgreSQL and serve rarity data using GraphQL. **achieving 99.75% accuracy** by
- Wrote **React** frontend with hooks to dynamically load rarity data. Styled with Tailwind. 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 %}} {{% /resume/project %}}
@@ -82,14 +84,14 @@ date="Oct 2021" show="true" %}}
{{% resume/section skills %}}<!--- {{{ --> {{% resume/section skills %}}<!--- {{{ -->
Kubernetes, **JavaScript**, **React**, **Python**, Go, Bash, Solidity, C, **Django**, Node.js, Jenkins, PostgreSQL, **Linux**, **Git**, **Command Line** **JavaScript**, **React**, **Python**, **Django**, Node.js, PostgreSQL, MongoDB, Bash, **Git**, **Linux**, **Command Line**, Go(Lang), AWS, Kubernetes, Terraform, Docker (Compose), Jenkins, Groovy, Solidity, C
{{% /resume/section %}}<!--- }}} --> {{% /resume/section %}}<!--- }}} -->
{{% resume/section education %}}<!--- {{{ --> {{% resume/section education %}}<!--- {{{ -->
{{% resume/education name="University of Toronto" {{% resume/education name="University of Toronto"
title="Computer Science Specialist — 3.84 GPA (CS). Graduated with High Distinction." date="2018 — 2023" %}} title="Computer Science Specialist — 3.84 GPA (CS). Graduated with High Distinction." date="2019 — 2024" %}}
{{% /resume/section %}}<!--- }}} --> {{% /resume/section %}}<!--- }}} -->

View File

@@ -1,3 +1,19 @@
<!--- 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 {{{ --> <!--- Spotify Graphs {{{ -->
{{% resume/project name="Spotify Graphs" {{% resume/project name="Spotify Graphs"

View File

@@ -1,16 +1,20 @@
--- ---
title: "Server Apps" title: "Server Apps"
date: 2019-09-22 date: 2024-06-10
draft: false draft: false
layout: single layout: single
js: ["server-table"] js: ["server-table"]
--- ---
Here is a list of apps that I am running on my [DigitalOcean Here is a list of apps that I am running on my [AWS EC2][AWS EC2 info]
droplet][do-droplet]. Their [statuses] are updated every hour using a Debian instance/[DigitalOcean
droplet][do-droplet] using Docker (Compose) and my [Terraform
files](https://github.com/Kevin-Mok/terraform-deploys/tree/main).
I also have [Kubernetes manifest files](https://github.com/Kevin-Mok/aws-minicube)
that can recreate this server setup. Their statuses are updated every hour using a
[Node.js script][update-script] and a [systemd service]/[timer]. [Node.js script][update-script] and a [systemd service]/[timer].
[AWS EC2 info]: https://aws.amazon.com/pm/ec2/?gclid=CjwKCAjwyJqzBhBaEiwAWDRJVA8xkzlFBVRieWU_oiTxnHHfRgTnfN9WlnYON3UptS4aTtjaYRbVJRoCju8QAvD_BwE&trk=8c0f4d22-7932-45ae-9a50-7ec3d0775c47&sc_channel=ps&ef_id=CjwKCAjwyJqzBhBaEiwAWDRJVA8xkzlFBVRieWU_oiTxnHHfRgTnfN9WlnYON3UptS4aTtjaYRbVJRoCju8QAvD_BwE:G:s&s_kwcid=AL!4422!3!472464674288!e!!g!!aws%20ec2!11346198414!112250790958
[do-droplet]: https://www.digitalocean.com/products/droplets/ [do-droplet]: https://www.digitalocean.com/products/droplets/
[statuses]: https://kevin-mok.com/server-apps.json
[systemd service]: https://git.kevin-mok.com/Kevin-Mok/server-pages/src/branch/master/server-pages.service [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 [timer]: https://git.kevin-mok.com/Kevin-Mok/server-pages/src/branch/master/server-pages.timer
[update-script]: https://git.kevin-mok.com/Kevin-Mok/server-pages/src/branch/master/server-status.js [update-script]: https://git.kevin-mok.com/Kevin-Mok/server-pages/src/branch/master/server-status.js

View File

@@ -15,11 +15,18 @@
<!-- <a href="{{ "credits" | relURL }}">Credits</a> · --> <!-- <a href="{{ "credits" | relURL }}">Credits</a> · -->
</span> </span>
<span id="social-icons" class="col-xs-4"> <span id="social-icons" class="col-xs-4">
<a href="https://www.linkedin.com/in/Kev-Mok" target="_blank">
<img src="{{ "img/social/linkedin.svg" | relURL }}" alt="linkedin-logo">
</a>
<a href="mailto:me@kevin-mok.com" target="_blank">
<img src="{{ "img/social/email.svg" | relURL }}"
alt="envelope">
·
<a href="https://github.com/Kevin-Mok" target="_blank"> <a href="https://github.com/Kevin-Mok" target="_blank">
<img src="{{ "img/social/github.svg" | relURL }}" <img src="{{ "img/social/github.svg" | relURL }}"
alt="github-logo"> alt="github-logo">
</a> </a>
<a href="https://git.kevin-mok.com/" target="_blank"> <a href="https://git.kevin-mok.com/Kevin-Mok?tab=activity" target="_blank">
<img src="{{ "img/social/gitea.svg" | relURL }}" alt="gitea-logo"> <img src="{{ "img/social/gitea.svg" | relURL }}" alt="gitea-logo">
</a> </a>
· ·
@@ -36,12 +43,6 @@
alt="reddit-logo"> alt="reddit-logo">
</a> </a>
. .
<a href="https://www.linkedin.com/in/Kev-Mok" target="_blank">
<img src="{{ "img/social/linkedin.svg" | relURL }}" alt="linkedin-logo">
</a>
<a href="mailto:me@kevin-mok.com" target="_blank">
<img src="{{ "img/social/email.svg" | relURL }}"
alt="envelope">
</a> </a>
</span> </span>
<span class="col-xs-2"> <span class="col-xs-2">

View File

@@ -12,7 +12,7 @@
{{ hugo.Generator }} {{ hugo.Generator }}
<meta name="google-site-verification" content="3aZhrY5bFgQY0HY2DNNUhbkuIfVEcwkrQHnbJd8jCCQ" /> <meta name="google-site-verification" content="3aZhrY5bFgQY0HY2DNNUhbkuIfVEcwkrQHnbJd8jCCQ" />
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<!-- <script src="https://cdn.khkm.gq/live.js" charset="utf-8"></script> --> <!-- <script src="https://cdn.khkm.tk/live.js" charset="utf-8"></script> -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous"> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>

View File

@@ -1,10 +1,33 @@
<div id="about"> <div id="about">
<h2>Welcome to my site!</h2> <h2>Welcome to my site!</h2>
<p> <p>
I'm Kevin Mok - a Computer Science I'm Kevin Mok. Here are a few things about myself!
student at the University of Toronto, and I'm greatly interested in all things Linux and <ul>
<a href="https://www.gnu.org/philosophy/floss-and-foss.en.html" <li>I'm an Ex-Cloud Engineer Intern at
target="_blank">FOSS/FLOSS</a>. <a href="https://www.redhat.com/" target="_blank">Red Hat</a>.
</li>
<li>
I'm graduated University of Toronto as a Computer
Science Scecialist in 2023.
</li>
<li>
I am currently looking for full-time work! You can
view
<a href="http://localhost:1313/resume/" target="_blank">my resume</a>
on my site can
reach me on my
<a href="https://www.linkedin.com/in/kev-mok" target="_blank">LinkedIn</a>
or email me at me at kevin-mok.com.
</li>
<li>
I'm greatly interested in Linux (been using
<a href="https://archlinux.org/" target="_blank">Arch Linux </a>
since 2019) and a supporter of
<a href="https://www.gnu.org/philosophy/floss-and-foss.en.html"
target="_blank">FOSS/FLOSS</a>.
</li>
</ul>
</p> </p>
{{ partial "home/me-equation.html" . }} {{ partial "home/me-equation.html" . }}

View File

@@ -1,23 +1,24 @@
<div class="me-equation"> <div class="me-equation">
<div class="equation-part"> <div class="equation-part">
<a href="https://www.gnu.org/" target="_blank"> <a href="https://www.redhat.com/" target="_blank">
<img src="{{ "img/home/gnu.svg" | relURL }}" id="gnu" alt="gnu-logo"> <img src="{{ "img/home/red-hat.svg" | relURL }}"
</a> alt="red-hat-logo">
<p>+</p>
</div>
<div class="equation-part">
<a href="https://www.wikiwand.com/en/Arch_Linux" target="_blank">
<img src="{{ "img/home/arch.svg" | relURL }}" alt="linux-logo">
<!-- <img src="{{ "img/home/larbs.png" | relURL }}" alt="linux-logo"> -->
</a> </a>
<p>+</p> <p>+</p>
</div> </div>
<div class="equation-part">
<a href="https://archlinux.org/" target="_blank">
<!-- <img src="{{ "img/home/gnu.svg" | relURL }}" id="gnu" alt="gnu-logo"> -->
<img src="{{ "img/home/arch.svg" | relURL }}" id="gnu" alt="gnu-logo">
</a>
<p>+</p>
</div>
<div class="equation-part" id="uoft-part"> <div class="equation-part" id="uoft-part">
<a href="https://www.utoronto.ca/" target="_blank"> <a href="https://www.utoronto.ca/" target="_blank">
<img src="{{ "img/home/uoft-logo.svg" | relURL }}" alt="uoft-logo"> <img src="{{ "img/home/uoft-logo.svg" | relURL }}" alt="uoft-logo">
</a> </a>
<p>=</p>
</div> </div>
<p>=</p>
<div class="equation-part"> <div class="equation-part">
<img src="{{ "img/home/hexatar.png" | relURL }}" id="hexatar" alt="my-avatar"> <img src="{{ "img/home/hexatar.png" | relURL }}" id="hexatar" alt="my-avatar">
</div> </div>

View File

@@ -1,17 +1,9 @@
<div class="project"> <div class="project">
<div class="row project-header"> <div class="row project-header">
<div class="col-8 text-left"> <div class="col-8 text-left">
<a class="project-link" href="{{ .Get "url" }}" target="_blank">
<img src="{{ "img/resume/link.svg" | relURL }}" alt="link-icon">
</a>
<button class="btn" type="button" data-toggle="collapse"
data-target="#{{ .Get "name" | lower | urlize }}-details"
aria-expanded="false" aria-controls="{{ .Get "name" | lower | urlize }}-details">
<h2 class="project-title"> <h2 class="project-title">
{{ .Get "name" }} {{ .Get "name" }}
<img class="down-triangle" src="{{ "img/resume/down-triangle.png" | relURL }}" alt="link-icon">
</h2> </h2>
</button>
</div> </div>
<div class="col-4 text-right date">{{ .Get "date" }}</div> <div class="col-4 text-right date">{{ .Get "date" }}</div>
</div> </div>

View File

@@ -1,9 +1,10 @@
<div class="references"> <div class="references">
<span> <span>
See my See my LinkedIn for
<a href="https://www.linkedin.com/in/Kev-Mok" <a href="https://www.linkedin.com/in/kev-mok/details/recommendations/?detailScreenTabIndex=0"
target="_blank"> target="_blank">
LinkedIn</a> for references from my Red Hat managers/mentee and a references</a> from my
startup client. Red Hat managers/mentee, a startup client and a graduate
student mentor.
</span> </span>
</div> </div>

View File

@@ -0,0 +1,14 @@
<div class="work-experience">
<div class="row">
<div class="col-8 text-left">
<p class="company">
{{ .Get "name" }}
</p>
</div>
<div class="col text-right date">{{ .Get "date" }}</div>
</div>
<!-- <span class="title"> -->
<span class="position">
{{ .Get "title" }}
</span>
</div>

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 MiB

View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" id="b6bdd2b4-52ab-488a-9a30-1e6d1d7dd2d4" data-name="Layer 1" viewBox="0 0 192.30001 146" version="1.1" sodipodi:docname="logo.svg" width="192.3" height="146" inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)">
<metadata id="metadata15">
<rdf:RDF>
<cc:Work rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
<dc:title/>
</cc:Work>
</rdf:RDF>
</metadata>
<sodipodi:namedview pagecolor="#ffffff" bordercolor="#666666" borderopacity="1" objecttolerance="10" gridtolerance="10" guidetolerance="10" inkscape:pageopacity="0" inkscape:pageshadow="2" inkscape:window-width="1920" inkscape:window-height="1007" id="namedview13" showgrid="false" fit-margin-top="1" fit-margin-right="1" fit-margin-bottom="1" fit-margin-left="1" inkscape:zoom="0.45930043" inkscape:cx="306.89999" inkscape:cy="73" inkscape:window-x="0" inkscape:window-y="0" inkscape:window-maximized="1" inkscape:current-layer="b6bdd2b4-52ab-488a-9a30-1e6d1d7dd2d4"/>
<defs id="defs4">
<style id="style2">.a737459c-e8c7-4afa-8008-f6cfd15ccda2{fill:#e00;}</style>
</defs>
<path class="a737459c-e8c7-4afa-8008-f6cfd15ccda2" d="m 128,84 c 12.5,0 30.6,-2.6 30.6,-17.5 a 19.53,19.53 0 0 0 -0.3,-3.4 L 150.9,30.7 C 149.2,23.6 147.7,20.3 135.2,14.1 125.5,9.1 104.4,1 98.1,1 92.2,1 90.5,8.5 83.6,8.5 76.9,8.5 72,2.9 65.7,2.9 c -6,0 -9.9,4.1 -12.9,12.5 0,0 -8.4,23.7 -9.5,27.2 a 6.15,6.15 0 0 0 -0.2,1.9 C 43,53.7 79.3,83.9 128,84 m 32.5,-11.4 c 1.7,8.2 1.7,9.1 1.7,10.1 0,14 -15.7,21.8 -36.4,21.8 C 79,104.5 38.1,77.1 38.1,59 a 18.35,18.35 0 0 1 1.5,-7.3 C 22.8,52.5 1,55.5 1,74.7 1,106.2 75.6,145 134.6,145 c 45.3,0 56.7,-20.5 56.7,-36.7 0,-12.7 -11,-27.1 -30.8,-35.7" id="path8" inkscape:connector-curvature="0" style="fill:#ee0000"/>
<path d="m 160.5,72.6 c 1.7,8.2 1.7,9.1 1.7,10.1 0,14 -15.7,21.8 -36.4,21.8 C 79,104.5 38.1,77.1 38.1,59 a 18.35,18.35 0 0 1 1.5,-7.3 l 3.7,-9.1 a 6.15,6.15 0 0 0 -0.2,1.9 c 0,9.2 36.3,39.4 84.9,39.4 12.5,0 30.6,-2.6 30.6,-17.5 A 19.53,19.53 0 0 0 158.3,63 Z" id="path10" inkscape:connector-curvature="0"/>
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 465 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 465 KiB

After

Width:  |  Height:  |  Size: 66 KiB