Compare commits
13 Commits
master
...
latex-resu
| Author | SHA1 | Date | |
|---|---|---|---|
| 39bc002bf1 | |||
| 90fef7bb61 | |||
| 49a846ee2d | |||
| c97c1a221f | |||
| 4ff6ac20f0 | |||
| 25535aa384 | |||
| 5d8442a6f0 | |||
| b40109382e | |||
| 5fdcb18365 | |||
| 278e2a8f46 | |||
| 79b7e336a7 | |||
| 7ea1739380 | |||
| a1086f3c2e |
@@ -106,11 +106,16 @@ body {
|
|||||||
// line-height: 1.5;
|
// line-height: 1.5;
|
||||||
line-height: 1.57;
|
line-height: 1.57;
|
||||||
// font-size: 100%;
|
// font-size: 100%;
|
||||||
font-size: 15px;
|
// font-size: 15px;
|
||||||
|
font-size: 17px;
|
||||||
// font-size: 20px;
|
// font-size: 20px;
|
||||||
// font-size: 22px;
|
// font-size: 22px;
|
||||||
/* font-family: 'Source Code Pro', monospace; */
|
/* font-family: 'Source Code Pro', monospace; */
|
||||||
font-family: 'Hack', monospace;
|
// font-family: 'Hack', monospace;
|
||||||
|
// body {
|
||||||
|
// font-family: 'Times New Roman', serif;
|
||||||
|
font-family: "Computer Modern Serif";
|
||||||
|
// }
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
min-height: 100vh;
|
min-height: 100vh;
|
||||||
@@ -495,7 +500,7 @@ header {// {{{
|
|||||||
#contact-info {// {{{
|
#contact-info {// {{{
|
||||||
@include side-margin-em(0);
|
@include side-margin-em(0);
|
||||||
// @include vert-padding-rem(0.5);
|
// @include vert-padding-rem(0.5);
|
||||||
@include a-color($base-sky-blue);
|
// @include a-color($base-sky-blue);
|
||||||
// min-width: $max-page-width;
|
// min-width: $max-page-width;
|
||||||
@media (min-width: 1200px) {
|
@media (min-width: 1200px) {
|
||||||
.container{
|
.container{
|
||||||
@@ -503,6 +508,7 @@ header {// {{{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
a {// {{{
|
a {// {{{
|
||||||
|
color: #4287cd;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
&:hover {
|
&:hover {
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
@@ -514,7 +520,8 @@ header {// {{{
|
|||||||
|
|
||||||
.row {
|
.row {
|
||||||
// flex-grow: 1;
|
// flex-grow: 1;
|
||||||
color: $base05;
|
// color: $base05;
|
||||||
|
color: #4287cd;
|
||||||
|
|
||||||
img {
|
img {
|
||||||
height: 1em;
|
height: 1em;
|
||||||
@@ -534,6 +541,7 @@ header {// {{{
|
|||||||
.url-info {
|
.url-info {
|
||||||
font-size: 1em;
|
font-size: 1em;
|
||||||
margin-left: 5px;
|
margin-left: 5px;
|
||||||
|
// text-decoration: underline;
|
||||||
// position: relative;
|
// position: relative;
|
||||||
// left: -8px;
|
// left: -8px;
|
||||||
// @media (max-width: $phone-width) {
|
// @media (max-width: $phone-width) {
|
||||||
@@ -558,7 +566,8 @@ header {// {{{
|
|||||||
}// }}}
|
}// }}}
|
||||||
|
|
||||||
h1 {// {{{
|
h1 {// {{{
|
||||||
color: $base-orange;
|
// color: $base-orange;
|
||||||
|
color: black;
|
||||||
// margin-top: 1.3rem;
|
// margin-top: 1.3rem;
|
||||||
margin-top: 1rem;
|
margin-top: 1rem;
|
||||||
// font-size: 1.2em;
|
// font-size: 1.2em;
|
||||||
@@ -636,7 +645,9 @@ header {// {{{
|
|||||||
}
|
}
|
||||||
|
|
||||||
.project-title {
|
.project-title {
|
||||||
color: $base-blue;
|
// color: $base-blue;
|
||||||
|
color: black;
|
||||||
|
display: inline;
|
||||||
}
|
}
|
||||||
|
|
||||||
.project-link {
|
.project-link {
|
||||||
@@ -677,7 +688,8 @@ header {// {{{
|
|||||||
}// }}}
|
}// }}}
|
||||||
|
|
||||||
.company {
|
.company {
|
||||||
color: #fe4646;
|
// color: #fe4646;
|
||||||
|
color: black;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 5px;
|
margin-bottom: 5px;
|
||||||
@@ -686,18 +698,26 @@ header {// {{{
|
|||||||
.position {
|
.position {
|
||||||
// color: black;
|
// color: black;
|
||||||
// color: $base-sky-blue;
|
// color: $base-sky-blue;
|
||||||
color: $base-blue;
|
// color: $base-blue;
|
||||||
|
color: black;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
// font-style: italic;
|
// font-style: italic;
|
||||||
font-size: 1.1em;
|
// font-size: 1.1em;
|
||||||
|
font-size: 1em;
|
||||||
// margin-bottom: 5px;
|
// margin-bottom: 5px;
|
||||||
margin-bottom: 15px;
|
margin-bottom: 15px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.languages {
|
||||||
|
// font-style: italic;
|
||||||
|
// font-size: .9em;
|
||||||
|
}
|
||||||
|
|
||||||
.institution {
|
.institution {
|
||||||
// color: $base-yellow;
|
// color: $base-yellow;
|
||||||
// color: $base-dark-orange;
|
// color: $base-dark-orange;
|
||||||
color: $base-blue;
|
// color: $base-blue;
|
||||||
|
color: black;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
font-size: 1.1em;
|
font-size: 1.1em;
|
||||||
margin-bottom: 5px;
|
margin-bottom: 5px;
|
||||||
@@ -803,16 +823,21 @@ header {// {{{
|
|||||||
h1.site-title {// {{{
|
h1.site-title {// {{{
|
||||||
text-align: center;
|
text-align: center;
|
||||||
// font-size: 4.2em;
|
// font-size: 4.2em;
|
||||||
font-size: 3.2em;
|
// font-size: 3.2em;
|
||||||
|
font-size: 2.5em;
|
||||||
// color: #66cccc;
|
// color: #66cccc;
|
||||||
color: $base05;
|
color: $base05;
|
||||||
// margin-top: 1rem;
|
// margin-top: 1rem;
|
||||||
// margin-bottom: 0.75rem;
|
// margin-bottom: 0.75rem;
|
||||||
@include vert-margin-rem(.75);
|
@include vert-margin-rem(.75);
|
||||||
|
|
||||||
@include a-color($base-sky-blue);
|
// @include a-color($base-sky-blue);
|
||||||
a {
|
a {
|
||||||
text-decoration: none;
|
color: black;
|
||||||
|
// text-decoration: none;
|
||||||
|
text-decoration: underline;
|
||||||
|
text-decoration-thickness: 2px;
|
||||||
|
text-underline-offset: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
// @media (max-width: $phone-width) {
|
// @media (max-width: $phone-width) {
|
||||||
@@ -978,7 +1003,8 @@ article.single section.body h5 { color: #515151; }
|
|||||||
article.single section.body h6 { color: #747369; }
|
article.single section.body h6 { color: #747369; }
|
||||||
|
|
||||||
// article.single section.body a,a:visited { color: #a06700; }
|
// 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 */
|
/* Article Elements */
|
||||||
|
|
||||||
|
|||||||
Submodule content/letter updated: 654fe2678f...f07869796d
@@ -6,29 +6,70 @@ draft: false
|
|||||||
{{% resume/section "Work Experience" %}}<!--- {{{ -->
|
{{% resume/section "Work Experience" %}}<!--- {{{ -->
|
||||||
|
|
||||||
{{% resume/work-experience 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](https://github.com/apache/incubator-kie-kogito-operator/commit/175a6356c5474f2360ccb8ae835e0b9b2d653cf1) to
|
- 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**
|
deploy locally-compiled binaries onto **Kubernetes**/**OpenShift**
|
||||||
using only command-line (**GoLang** used for this and below).
|
using only command-line (**Kubernetes/GoLang** used for this and three below).
|
||||||
- Implemented ability for Kubernetes operator to fetch data
|
- 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.
|
- 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
|
- 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.
|
deployed YAML while also fixing reconciliation issues.
|
||||||
- Rewrote the **Jenkins** nightly pipeline to run [in a GitHub
|
- Rewrote the **Jenkins (Groovy)** [nightly pipeline](https://github.com/apache/incubator-kie-kogito-pipelines/commit/4c83f1aecdea2c1ba2796b79839a90d4083dce88) to run in a GitHub
|
||||||
PR](https://github.com/apache/incubator-kie-kogito-pipelines/commit/4c83f1aecdea2c1ba2796b79839a90d4083dce88)
|
PR using a trigger keyword to test all the team's submitted PR's
|
||||||
using a trigger keyword.
|
before merging to the main branch.
|
||||||
- Wrote [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
|
- 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.
|
developers and mentored the incoming intern.
|
||||||
|
|
||||||
{{% /resume/section %}}<!--- }}} -->
|
{{% /resume/section %}}<!--- }}} -->
|
||||||
|
|
||||||
{{% resume/section projects %}}<!--- {{{ -->
|
{{% resume/section projects %}}<!--- {{{ -->
|
||||||
|
|
||||||
|
|
||||||
|
<!--- CSC369 {{{ -->
|
||||||
|
|
||||||
|
{{% resume/project name="Operating Systems Course"
|
||||||
|
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.
|
||||||
|
- Used mutex locks for [thread synchronization](https://github.com/Kevin-Mok/thread-synchronization) in **C**.
|
||||||
|
|
||||||
|
{{% /resume/project %}}
|
||||||
|
|
||||||
|
<!--- CSC369 }}} -->
|
||||||
|
|
||||||
|
<!--- 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 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](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 (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 }}} -->
|
||||||
|
|
||||||
<!--- AWS {{{ -->
|
<!--- AWS {{{ -->
|
||||||
|
|
||||||
{{% resume/project name="AWS/Kubernetes/Terraform"
|
{{% resume/project name="AWS Server"
|
||||||
url="https://kevin-mok.com/server/" date="May 2024" show="true" %}}
|
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
|
- Deployed [various web apps](https://kevin-mok.com/server/) using **Docker** (Compose) on an
|
||||||
**AWS EC2** Debian/**Linux** server.
|
**AWS EC2** Debian/**Linux** server.
|
||||||
@@ -38,8 +79,6 @@ url="https://kevin-mok.com/server/" date="May 2024" show="true" %}}
|
|||||||
to deploy an AWS EC2 instance and Docker containers.
|
to deploy an AWS EC2 instance and Docker containers.
|
||||||
- Used Amazon Route 53's DNS and **NGINX** to route
|
- Used Amazon Route 53's DNS and **NGINX** to route
|
||||||
subdomains to each web application.
|
subdomains to each web application.
|
||||||
- Used AWS security groups to allow inbound HTTPS traffic.
|
|
||||||
- Used Amazon EBS snapshots to regularly back up server.
|
|
||||||
- Wrote a **JavaScript** [server script] and [systemd service][systemd service]/[timer]
|
- Wrote a **JavaScript** [server script] and [systemd service][systemd service]/[timer]
|
||||||
to display the uptime of my pages every hour.
|
to display the uptime of my pages every hour.
|
||||||
|
|
||||||
@@ -51,47 +90,12 @@ url="https://kevin-mok.com/server/" date="May 2024" show="true" %}}
|
|||||||
|
|
||||||
<!--- AWS }}} -->
|
<!--- AWS }}} -->
|
||||||
|
|
||||||
<!--- Rarity Surf {{{ -->
|
|
||||||
|
|
||||||
{{% resume/project name="Rarity Surf"
|
|
||||||
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.
|
|
||||||
- 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
|
|
||||||
against competing buyers.
|
|
||||||
- Wrote **Django (Python)** 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.
|
|
||||||
|
|
||||||
{{% /resume/project %}}
|
|
||||||
|
|
||||||
<!--- Rarity Surf }}} -->
|
|
||||||
|
|
||||||
<!--- 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**](https://devpost.com/software/astronofty).
|
|
||||||
- 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 }}} -->
|
|
||||||
|
|
||||||
{{% /resume/section %}}<!--- }}} -->
|
{{% /resume/section %}}<!--- }}} -->
|
||||||
|
|
||||||
{{% resume/section skills %}}<!--- {{{ -->
|
{{% resume/section skills %}}<!--- {{{ -->
|
||||||
|
|
||||||
AWS, Kubernetes, Terraform, Docker (Compose), **JavaScript**, **React**, **Python**, Go(Lang), Bash, Solidity, C, **Django**, Node.js, Jenkins, PostgreSQL,
|
**Python**, **C**, PostgreSQL, AWS, Kubernetes, Terraform, Docker (Compose), Jenkins, Groovy, Go(Lang), Bash, **Linux**, **JavaScript**, **React**, **Python**, **Django**, Node.js, MongoDB, Solidity, **Git**, **Command Line**
|
||||||
MongoDB, **Linux**, **Git**, **Command Line**
|
|
||||||
|
|
||||||
{{% /resume/section %}}<!--- }}} -->
|
{{% /resume/section %}}<!--- }}} -->
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<!--- CSC369 {{{ -->
|
<!--- CSC369 {{{ -->
|
||||||
|
|
||||||
{{% resume/project name="Custom Kernel Module"
|
{{% resume/project name="Operating Systems Course"
|
||||||
url="https://kevin-mok.com/server/" date="Jan. 2022" show="true" %}}
|
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**.
|
- Wrote and installed a [custom Linux kernel module](https://github.com/Kevin-Mok/interceptor-kernel/blob/master/a1/interceptor.c) in **C**.
|
||||||
@@ -9,6 +9,7 @@ url="https://kevin-mok.com/server/" date="Jan. 2022" show="true" %}}
|
|||||||
userspace.
|
userspace.
|
||||||
- Monitored specific process ID's in my system
|
- Monitored specific process ID's in my system
|
||||||
call to intercept their system calls.
|
call to intercept their system calls.
|
||||||
|
- Used mutex locks for [thread synchronization](https://github.com/Kevin-Mok/thread-synchronization) in **C**.
|
||||||
|
|
||||||
{{% /resume/project %}}
|
{{% /resume/project %}}
|
||||||
|
|
||||||
|
|||||||
8
content/resume/skills.md
Normal file
8
content/resume/skills.md
Normal 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
|
||||||
|
|
||||||
|
# C
|
||||||
|
**Python**, **C**, PostgreSQL, AWS, Kubernetes, Terraform, Docker (Compose), Jenkins, Groovy, Go(Lang), Bash, **Linux**, **JavaScript**, **React**, **Python**, **Django**, Node.js, MongoDB, Solidity, **Git**, **Command Line**
|
||||||
@@ -20,6 +20,9 @@
|
|||||||
<!-- <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Code+Pro:400,700" type="text/css"> -->
|
<!-- <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='//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" /> -->
|
<!-- <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.jsdelivr.net/gh/dreampulse/computer-modern-web-font@master/fonts.css">
|
||||||
<link rel="stylesheet" href="{{ "css/style.css" | relURL }}" type="text/css">
|
<link rel="stylesheet" href="{{ "css/style.css" | relURL }}" type="text/css">
|
||||||
{{ $main_sass := resources.Get "sass/main.scss" }}
|
{{ $main_sass := resources.Get "sass/main.scss" }}
|
||||||
{{ $main_style := $main_sass | resources.ToCSS }}
|
{{ $main_style := $main_sass | resources.ToCSS }}
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
<h1 class="site-title">
|
<h1 class="site-title">
|
||||||
<span class="surrounding">[</span><a href="{{ .Site.BaseURL }}"><span class="base08">K</span><span
|
<span class="surrounding"></span><a href="{{ .Site.BaseURL }}">
|
||||||
class="base0f">e</span><span class="base09">v</span><span
|
<span>Kevin Mok</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>
|
|
||||||
</h1>
|
</h1>
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
<div id="linkedin" class="col text-right">
|
<div id="linkedin" class="col text-right">
|
||||||
<a href="https://www.linkedin.com/in/Kev-Mok" target="_blank">
|
<a href="https://www.linkedin.com/in/Kev-Mok" target="_blank">
|
||||||
<span class="url-info">
|
<span class="url-info">
|
||||||
Kev-Mok
|
linkedin.com/in/Kev-Mok
|
||||||
</span>
|
</span>
|
||||||
<img src="{{ "img/social/linkedin.svg" | relURL }}" alt="linkedin-icon">
|
<img src="{{ "img/social/linkedin.svg" | relURL }}" alt="linkedin-icon">
|
||||||
</a>
|
</a>
|
||||||
@@ -28,11 +28,11 @@
|
|||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div id="website" class="col text-right">
|
<div id="website" class="col text-right">
|
||||||
<a href="https://kevin-mok.com/" target="_blank">
|
<a href="https://github.com/Kevin-Mok" target="_blank">
|
||||||
<span class="url-info">
|
<span class="url-info">
|
||||||
kevin-mok.com
|
github.com/Kevin-Mok
|
||||||
</span>
|
</span>
|
||||||
<img src="{{ "img/resume/link.svg" | relURL }}" alt="link-icon">
|
<img src="{{ "img/social/github.svg" | relURL }}" alt="link-icon">
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
<h2 class="project-title">
|
<h2 class="project-title">
|
||||||
{{ .Get "name" }}
|
{{ .Get "name" }}
|
||||||
</h2>
|
</h2>
|
||||||
|
<span><{{ .Get "languages" }}></span>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-4 text-right date">{{ .Get "date" }}</div>
|
<div class="col-4 text-right date">{{ .Get "date" }}</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -11,4 +11,7 @@
|
|||||||
<span class="position">
|
<span class="position">
|
||||||
{{ .Get "title" }}
|
{{ .Get "title" }}
|
||||||
</span>
|
</span>
|
||||||
|
<span class="languages">
|
||||||
|
<{{ .Get "languages" }}>
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Submodule static/pdf updated: f96e4a7485...a0d59bda6c
Reference in New Issue
Block a user