Compare commits

..

42 Commits

Author SHA1 Message Date
55d6615976 Resume: Red Hat Python Selenium 2024-09-24 13:05:32 -04:00
6a6e9bb11f Grad year 2024-09-09 13:01:25 -04:00
90fef7bb61 Link Astronofty React 2024-08-15 11:16:02 -04:00
49a846ee2d Resume: spell out social URL's 2024-07-24 12:00:16 -04:00
c97c1a221f Update Latex font URL 2024-07-22 13:02:16 -04:00
4ff6ac20f0 Groovy Jenkins 2024-07-16 16:31:19 -04:00
25535aa384 Jenkins DSL file, DevOps/web dev skills 2024-07-16 15:53:19 -04:00
5d8442a6f0 Move nightly pipeline link 2024-07-16 12:25:49 -04:00
b40109382e Resume: Rarity Surf links 2024-07-14 13:52:53 -04:00
5fdcb18365 Resume: minor changes 2024-07-14 12:00:27 -04:00
278e2a8f46 Update advice 2024-07-11 10:57:00 -04:00
79b7e336a7 Resume: languages in front of project 2024-07-09 13:18:51 -04:00
7ea1739380 All black colors 2024-07-08 15:41:48 -04:00
a1086f3c2e Latex font 2024-07-08 14:14:02 -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
275c5b679b Server to-do 2024-01-31 11:21:14 -05:00
161cc14764 Server project points 2024-01-30 11:56:08 -05:00
49cda38430 Resume: make links visible 2024-01-18 10:35:24 -05:00
c3f43c408d Resume: 369 2024-01-18 09:12:10 -05: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
22 changed files with 254 additions and 124 deletions

1
README.md Normal file
View File

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

View File

@@ -14,7 +14,6 @@ $base-sky-blue: #66cccc;
$base-blue: #6699cc;
$base-violet: #cc99cc;
$base-dark-orange: #d27b53;
$link-color: #4287cd;
/* .base00 { color: #2d2d2d; }
.base01 { color: #393939; }
@@ -104,11 +103,13 @@ body {
margin: 0;
background-color: $background-color;
color: $color;
line-height: 1.5;
// line-height: 1.5;
line-height: 1.57;
// font-size: 100%;
// font-size: 15px;
font-size: 17px;
// font-size: 20px;
// font-size: 22px;
/* font-family: 'Source Code Pro', monospace; */
// font-family: 'Hack', monospace;
// body {
@@ -176,7 +177,8 @@ footer {
margin-top: 2rem;
$vertical-margin: .2em;
text-align: center;
font-size: 0.8em;
// font-size: 0.8em;
font-size: .85em;
color: #747369;
// bottom: 0;
// position: absolute;
@@ -216,7 +218,8 @@ footer {
// padding-right: .9em;
img {
height: 1.5em;
// height: 1.5em;
height: 3em;
@include vert-margin-rem(.2);
padding-left: .5em;
opacity: .6;
@@ -374,7 +377,7 @@ header {// {{{
display: inline;
&#gnu {
background-color: $base04;
// background-color: $base04;
// background-color: $base05;
}
}
@@ -497,7 +500,7 @@ header {// {{{
#contact-info {// {{{
@include side-margin-em(0);
// @include vert-padding-rem(0.5);
@include a-color($base-sky-blue);
// @include a-color($base-sky-blue);
// min-width: $max-page-width;
@media (min-width: 1200px) {
.container{
@@ -505,20 +508,20 @@ header {// {{{
}
}
a {// {{{
color: $link-color;
color: #4287cd;
text-decoration: none;
&:hover {
text-decoration: none;
}
}// }}}
font-size: 1.4em;
// font-size: .8em;
// font-size: .9em;
font-size: .8em;
.row {
// flex-grow: 1;
// color: $base05;
color: $link-color;
color: #4287cd;
img {
height: 1em;
@@ -536,7 +539,9 @@ header {// {{{
}
.url-info {
font-size: 1em;
margin-left: 5px;
// text-decoration: underline;
// position: relative;
// left: -8px;
// @media (max-width: $phone-width) {
@@ -551,7 +556,9 @@ header {// {{{
#resume {// {{{
a {// {{{
// text-decoration: none;
color: $link-color;
// color: $base-blue;
color: #4287cd;
// color: blue;
text-decoration: underline;
&:hover {
text-decoration: underline;
@@ -563,7 +570,8 @@ header {// {{{
color: black;
// margin-top: 1.3rem;
margin-top: 1rem;
font-size: 1.2em;
// font-size: 1.2em;
font-size: 1.3em;
// @media (max-width: $phone-width) {
// margin-top: .75rem;
@@ -599,10 +607,19 @@ header {// {{{
// }
}// }}}
.section-header {
margin-top: 1em;
margin-bottom: 0.4em;
}
ul {
margin-bottom: 5px;
}
.work-experience {
margin-bottom: 5px;
}
#projects {// {{{
// // h1 {
// // margin-bottom: 3px;
@@ -614,6 +631,7 @@ header {// {{{
h2 {
color: $base-sky-blue;
display: inline;
font-size: 1.1em;
}
img {
@@ -629,9 +647,13 @@ header {// {{{
.project-title {
// color: $base-blue;
color: black;
display: inline;
}
.project-link {
&:link {
text-decoration: none;
}
&:hover {
text-decoration: none;
}
@@ -686,6 +708,11 @@ header {// {{{
margin-bottom: 15px;
}
.languages {
// font-style: italic;
// font-size: .9em;
}
.institution {
// color: $base-yellow;
// color: $base-dark-orange;
@@ -712,8 +739,6 @@ header {// {{{
// }
&.letter {
font-size: 1.4em;
// font-size: 2em;
margin-top: 2em;
line-height: 1.5em;
@@ -978,7 +1003,8 @@ article.single section.body h5 { color: #515151; }
article.single section.body h6 { color: #747369; }
// article.single section.body a,a:visited { color: #a06700; }
article.single section.body a,a:visited { color: $base-sky-blue; }
// article.single section.body a,a:visited { color: $base-sky-blue; }
// article.single section.body a,a:visited { color: $base-sky-blue; }
/* Article Elements */

View File

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

View File

@@ -6,7 +6,7 @@ layout: single
---
<!--- Intro {{{ -->
![desktop-screenshot](https://img.khkm.tk/uploads/big/b2bd45e8f436d389ecb787b5c61c951a.png)
![desktop-screenshot](/img/config/desktop-screenshot.png)
*Screenshot from my dual-monitor setup.*
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
* **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
Startup finished in 2.341s (kernel) + 1.085s (userspace) = 3.426s
graphical.target reached after 1.085s in userspace
```
* **Terminal**: [rxvt-unicode-pixbuf](https://www.wikiwand.com/en/Rxvt)
* **Shell**: [Zsh](http://zsh.sourceforge.net/) + [oh-my-zsh](https://github.com/robbyrussell/oh-my-zsh)
* **Window Manager**: [i3-gaps](https://github.com/Airblader/i3)
* **Editor**: [Neovim](https://github.com/neovim/neovim) ([plugins](dotfiles/.vimrc#L51))
* **File Manager**: [ranger](https://ranger.github.io/)
* **Terminal**: [kitty](https://sw.kovidgoyal.net/kitty/)
* **Shell**: [fish](https://fishshell.com/)
* **Window Manager**: [i3-gaps](https://i3wm.org/)
* **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://github.com/ranger/ranger?tab=readme-ov-file#ranger-193)/[PCManFM](https://en.wikipedia.org/wiki/PCMan_File_Manager)
<!--- }}} Basic Info -->
<!--- Setup {{{ -->

View File

@@ -5,69 +5,84 @@ draft: false
---
{{% resume/section "Work Experience" %}}<!--- {{{ -->
{{% resume/education name="Red Hat"
title="Cloud/Software Engineer Intern" date="May 2020 — Aug 2021" %}}
- Reduced deployment time by **66%** by implementing ability to
{{% resume/work-experience name="Red Hat"
title="Cloud/Software Engineer Intern" languages="Kubernetes, GoLang, Jenkins" date="May 2020 — Aug 2021" %}}
- 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.
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.
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 assigned based on
- 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.
- Automated the promotion and release process
as part of the **Jenkins** release pipeline.
- Wrote documentation on how to get started with the project to onboard new
- 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.
{{% /resume/section %}}<!--- }}} -->
{{% resume/section projects %}}<!--- {{{ -->
<!--- Astronofty {{{ -->
{{% resume/project name="Astronofty"
url="https://github.com/Kevin-Mok/astronofty" date="Jan 2023"
show="true" %}}
- Created for a 36 hour hackathon (UofTHacks X) where it **came 2nd overall**.
- Created and deployed a smart contract with **Solidity** on
the Ethereum blockchain to create/buy/sell NFT's
using MetaMask.
- Wrote a **React** hook to fetch and show listed NFT's, NFT details and owned NFT's.
- Used API to synchronously upload images and metadata to IPFS.
{{% /resume/project %}}
<!--- Astronofty }}} -->
<!--- Rarity Surf {{{ -->
{{% resume/project name="Rarity Surf"
languages="Python, Django, React, GraphQL"
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.
- Web app to give rarity rankings to NFT's and check which are listed on the OpenSea marketplace using their API.
- Reverse engineered the ranking algorithm to match the
leading rarity ranking site's rankings (scraped using
Selenium) with a **discrepancy of <0.25%**.
- Used app to frontrun purchases of **top 5%** rarity NFT's
leading rarity ranking site's rankings ([scraped](https://github.com/Kevin-Mok/rarity-surf/blob/django/rarity_check/project/scrape.py) using
**Selenium**) with a **discrepancy of <0.25%**.
- Used app to frontrun purchases of **top 0.5%** rarity NFT's
against competing buyers.
- Wrote **Django** backend to fetch metadata from IPFS, store rarity rankings in PostgreSQL and serve rarity data using GraphQL.
- Wrote **React** frontend with hooks to dynamically load rarity data. Styled with Tailwind.
- Wrote **Django (Python)** [backend](https://github.com/Kevin-Mok/rarity-surf) to fetch metadata from IPFS, store rarity rankings in PostgreSQL and serve rarity data using GraphQL.
- Wrote **React** [frontend](https://github.com/Kevin-Mok/rarity-surf-frontend) with hooks to dynamically load rarity data. Styled with Tailwind.
{{% /resume/project %}}
<!--- Rarity Surf }}} -->
<!--- DigitalOcean {{{ -->
<!--- {{{ Spotify Graphs -->
{{% resume/project name="Personal Server"
url="https://kevin-mok.com/server/" date="Aug. 2019 — present" show="true" %}}
{{% resume/project name="Spotify Graphs"
url="https://github.com/Kevin-Mok/spotify-lib-vis" date="June 2020 "
languages="Python, Django, PostgreSQL"
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]
- 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 }}} -->
<!--- AWS {{{ -->
{{% resume/project name="AWS Server"
url="https://kevin-mok.com/server/" languages="AWS, Kubernetes, Terraform, Docker" 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.
- Monitored system resources and performed system maintenance using tmux.
[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
@@ -75,20 +90,20 @@ url="https://kevin-mok.com/server/" date="Aug. 2019 — present" show="true" %}}
{{% /resume/project %}}
<!--- DigitalOcean Droplet }}} -->
<!--- AWS }}} -->
{{% /resume/section %}}<!--- }}} -->
{{% resume/section skills %}}<!--- {{{ -->
Kubernetes, **JavaScript**, **React**, **Python**, Go, Bash, Solidity, C, **Django**, Node.js, Jenkins, PostgreSQL, **Linux**, **Git**, **Command Line**
**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
{{% /resume/section %}}<!--- }}} -->
{{% resume/section education %}}<!--- {{{ -->
{{% resume/education name="University of Toronto"
title="Computer Science Specialist — 3.84 GPA (CS)" date="2018 — 2023" %}}
title="Computer Science Specialist — 3.84 GPA (CS). Graduated with High Distinction." date="2019 — 2024" %}}
{{% /resume/section %}}<!--- }}} -->

View File

@@ -1,23 +1,29 @@
<!--- Spotify Graphs {{{ -->
<!--- CSC369 {{{ -->
{{% resume/project name="Spotify Graphs"
url="https://github.com/Kevin-Mok/spotify-lib-vis" date="June 2018 — July 2018"
show="true" %}}
{{% resume/project name="Custom Kernel Module"
url="https://kevin-mok.com/server/" date="Jan. 2022" 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
- 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 %}}
<!--- Spotify Graphs }}} -->
<!--- CSC369 }}} -->
<!--- {{{ Astronofty -->
{{% resume/project name="Astronofty" url="https://github.com/Kevin-Mok/astronofty" languages="React, Solidity" date="Jan 2023" show="true" %}}
- Created for a 36 hour hackathon (UofTHacks X) where it came 2nd overall.
- Created and deployed a smart contract with Solidity on the Ethereum blockchain to create/buy/sell NFT's.
- Wrote React components to synchronously upload images and metadata to IPFS and fetch and show NFT's.
{{% /resume/project %}}
<!--- Astronofty }}} -->
<!--- Grocery Finder {{{ -->

View File

@@ -0,0 +1,18 @@
# To-Do
- check price of AWS server
- run Docker apps on it
- run domain
- run/create Docker compose
- Dockerize app
# Done
# Points
- run/deploy K8s locally on minikube using kubectl
- features
- Dockerize app
- run Docker on server (AWS)
# Replace
- personal server
- Astronofy

8
content/resume/skills.md Normal file
View File

@@ -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, PostgreSQL, , **Command Line**, Groovy, Go(Lang), Bash, **JavaScript**, **React**, Node.js, MongoDB, Solidity, C

View File

@@ -1,14 +1,16 @@
---
title: "Server Apps"
date: 2019-09-22
date: 2024-06-10
draft: false
layout: single
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]
Debian instance/[DigitalOcean
droplet][do-droplet]. Their [statuses] are updated every hour using a
[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/
[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

View File

@@ -15,11 +15,18 @@
<!-- <a href="{{ "credits" | relURL }}">Credits</a> · -->
</span>
<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">
<img src="{{ "img/social/github.svg" | relURL }}"
alt="github-logo">
</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">
</a>
·
@@ -36,12 +43,6 @@
alt="reddit-logo">
</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>
</span>
<span class="col-xs-2">

View File

@@ -12,7 +12,7 @@
{{ hugo.Generator }}
<meta name="google-site-verification" content="3aZhrY5bFgQY0HY2DNNUhbkuIfVEcwkrQHnbJd8jCCQ" />
<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">
<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>
@@ -20,8 +20,9 @@
<!-- <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Code+Pro:400,700" type="text/css"> -->
<!-- <link rel='stylesheet' href='//cdn.jsdelivr.net/npm/hack-font@3.3.0/build/web/hack-subset.css'> -->
<!-- <link rel="stylesheet" href="https://meyerweb.com/eric/tools/css/reset/reset.css" type="text/css" media="all" /> -->
<!-- href="https://cdn.rawgit.com/dreampulse/computer-modern-web-font/master/fonts.css"> -->
<link rel="stylesheet" type="text/css"
href="https://cdn.rawgit.com/dreampulse/computer-modern-web-font/master/fonts.css">
href="https://cdn.jsdelivr.net/gh/dreampulse/computer-modern-web-font@master/fonts.css">
<link rel="stylesheet" href="{{ "css/style.css" | relURL }}" type="text/css">
{{ $main_sass := resources.Get "sass/main.scss" }}
{{ $main_style := $main_sass | resources.ToCSS }}

View File

@@ -1,10 +1,33 @@
<div id="about">
<h2>Welcome to my site!</h2>
<p>
I'm Kevin Mok - a Computer Science
student at the University of Toronto, and I'm greatly interested in all things Linux and
<a href="https://www.gnu.org/philosophy/floss-and-foss.en.html"
target="_blank">FOSS/FLOSS</a>.
I'm Kevin Mok. Here are a few things about myself!
<ul>
<li>I'm an Ex-Cloud Engineer Intern at
<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>
{{ partial "home/me-equation.html" . }}

View File

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

View File

@@ -7,7 +7,8 @@
</div>
<div class="col text-right date">{{ .Get "date" }}</div>
</div>
<span class="title">
<!-- <span class="title"> -->
<span>
{{ .Get "title" }}
</span>
</div>

View File

@@ -1,17 +1,10 @@
<div class="project">
<div class="row project-header">
<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">
{{ .Get "name" }}
<img class="down-triangle" src="{{ "img/resume/down-triangle.png" | relURL }}" alt="link-icon">
</h2>
</button>
<span><{{ .Get "languages" }}></span>
</div>
<div class="col-4 text-right date">{{ .Get "date" }}</div>
</div>

View File

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

View File

@@ -0,0 +1,17 @@
<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>
<span class="languages">
<{{ .Get "languages" }}>
</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