Compare commits

...

11 Commits

Author SHA1 Message Date
6e5ad11eb7 Update resume for web dev 2025-03-11 13:31:35 -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
17 changed files with 260 additions and 118 deletions

View File

@@ -103,12 +103,19 @@ 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: 17px;
// font-size: 20px; // font-size: 20px;
// 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;
@@ -170,7 +177,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;
@@ -210,7 +218,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;
@@ -368,7 +377,7 @@ header {// {{{
display: inline; display: inline;
&#gnu { &#gnu {
background-color: $base04; // background-color: $base04;
// background-color: $base05; // background-color: $base05;
} }
} }
@@ -491,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{
@@ -499,6 +508,7 @@ header {// {{{
} }
} }
a {// {{{ a {// {{{
color: #4287cd;
text-decoration: none; text-decoration: none;
&:hover { &:hover {
text-decoration: none; text-decoration: none;
@@ -510,7 +520,8 @@ header {// {{{
.row { .row {
// flex-grow: 1; // flex-grow: 1;
color: $base05; // color: $base05;
color: #4287cd;
img { img {
height: 1em; height: 1em;
@@ -528,7 +539,9 @@ header {// {{{
} }
.url-info { .url-info {
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) {
@@ -542,24 +555,30 @@ header {// {{{
#resume {// {{{ #resume {// {{{
a {// {{{ a {// {{{
text-decoration: none; // text-decoration: none;
// color: $base-blue;
color: #4287cd;
// color: blue;
text-decoration: underline;
&:hover { &:hover {
text-decoration: underline; text-decoration: underline;
} }
}// }}} }// }}}
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;
font-size: 1.3em;
// @media (max-width: $phone-width) { // @media (max-width: $phone-width) {
// margin-top: .75rem; // margin-top: .75rem;
// } // }
}// }}} }// }}}
h2 {// {{{ h2 {// {{{
color: $base-orange; //color: $base-orange;
margin-top: .5rem; margin-top: .5rem;
font-size: 1em; font-size: 1em;
@@ -588,10 +607,19 @@ header {// {{{
// } // }
}// }}} }// }}}
.section-header {
margin-top: .7em;
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;
@@ -603,6 +631,7 @@ header {// {{{
h2 { h2 {
color: $base-sky-blue; color: $base-sky-blue;
display: inline; display: inline;
font-size: 1.1em;
} }
img { img {
@@ -611,10 +640,20 @@ 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;
color: black;
display: inline;
} }
.project-link { .project-link {
&:link {
text-decoration: none;
}
&:hover { &:hover {
text-decoration: none; text-decoration: none;
} }
@@ -648,8 +687,37 @@ header {// {{{
} }
}// }}} }// }}}
.company {
// color: #fe4646;
color: black;
font-weight: bold;
font-size: 1.2em;
margin-bottom: 5px;
}
.position {
// color: black;
// color: $base-sky-blue;
// color: $base-blue;
color: black;
font-weight: bold;
// font-style: italic;
// font-size: 1.1em;
font-size: 1em;
// margin-bottom: 5px;
margin-bottom: 15px;
}
.languages {
// font-style: italic;
// font-size: .9em;
}
.institution { .institution {
color: $base-yellow; // color: $base-yellow;
// color: $base-dark-orange;
// 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;
@@ -755,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) {
@@ -930,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 */

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

View File

@@ -3,99 +3,109 @@ title: "Resume"
date: 2019-02-11T07:50:51-05:00 date: 2019-02-11T07:50:51-05:00
draft: false draft: false
--- ---
{{% resume/section "Work Experience" %}}<!--- {{{ --> {{% resume/section "Web Dev Projects" %}}<!--- {{{ -->
{{% resume/education name="Red Hat"
title="Cloud/Software Engineer Intern" date="May 2020 — Aug 2021" %}}
- Reduced deployment time by **66%** by implementing ability to
deploy locally-compiled binaries onto **Kubernetes**/**OpenShift**
using only command-line.
- Implemented ability for Kubernetes operator to fetch data
from a deployed service and update config with data.
- Added startup probes to handle starting legacy application containers that require additional startup time.
- Refactored probes to have default values 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
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 {{{ --> <!--- Rarity Surf {{{ -->
{{% resume/project name="Rarity Surf" {{% resume/project name="Rarity Surf"
date="Oct 2021" show="true" %}} languages="TypeScript, JavaScript, Node.js, React"
date="March 2025" 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
- Reverse engineered the ranking algorithm to match the (TypeScript/JavaScript)** to generate
leading rarity ranking site's rankings (scraped using rarity rankings for NFT's, integrating with **leading
Selenium) with a **discrepancy of <0.25%**. marketplaces API** to enable users to quickly identify
- Used app to frontrun purchases of **top 5%** rarity NFT's rare NFT's and check their listing status, **improving
against competing buyers. market research efficiency by 80%**.
- Wrote **Django** backend to fetch metadata from IPFS, store rarity rankings in PostgreSQL and serve rarity data using GraphQL. - **Built a scalable [Node.js backend](https://github.com/Rarity-Surf/ME-sniper-backend)** with REST API
- Wrote **React** frontend with hooks to dynamically load rarity data. Styled with Tailwind. endpoints to return NFTs based on customizable filters
such as max rank, price, and rarest traits. **Optimized
performance** to handle **3,000+ concurrent requests** by
implementing efficient data fetching and caching
mechanisms using **PostgreSQL** , ensuring low-latency
access to NFT data.
- **Built a dynamic [React frontend](https://github.com/Rarity-Surf/ME-sniper-frontend) (TypeScript/JavaScript)** to load and display NFTs in real-time with user-defined filters. Styled
using a mobile-responsive library, **reducing load times by 50%**.
- **Developed a [Discord bot](https://github.com/Rarity-Surf/ME-sniper-discord-bot) (TypeScript/JavaScript/Node.js)** to notify users of profitable
resale opportunities by leveraging historical sales data
to assess deal quality. This feature **increased user
engagement by 80%** and provided a seamless way for users
to stay updated on market opportunities.
{{% /resume/project %}} {{% /resume/project %}}
<!--- Rarity Surf }}} --> <!--- Rarity Surf }}} -->
<!--- DigitalOcean {{{ --> <!--- Astronofty {{{ -->
{{% resume/project name="Personal Server" {{% resume/project name="Astronofty"
url="https://kevin-mok.com/server/" date="Aug. 2019 — present" show="true" %}} url="https://github.com/Kevin-Mok/astronofty"
languages="JavaScript, React, Solidity" date="Jan 2023"
show="true" %}}
- Deployed various web apps with backends using NGINX on a Debian/**Linux** server. - **Secured [2nd place](https://devpost.com/software/astronofty) overall out of 150+ teams** at UofTHacks
- Wrote a [**JavaScript** script][server script] and [systemd service][systemd service]/[timer] X, a 36-hour hackathon, for developing a blockchain-based
to display the uptime of my pages every hour. NFT marketplace app.
- Monitored system resources and performed system maintenance using tmux. - **Built and optimized React (JavaScript) [components](https://github.com/Kevin-Mok/astronofty/tree/main/src/components)** to synchronously
upload images and metadata to IPFS, **enhancing user engagement by 80%** during the demo.
[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 %}} {{% /resume/project %}}
<!--- DigitalOcean Droplet }}} --> <!--- Astronofty }}} -->
{{% resume/section "Work Experience" %}}<!--- {{{ -->
{{% resume/work-experience name="Red Hat" title="Cloud/Software Engineer Intern" languages="Kubernetes, GoLang, Jenkins" date="May 2022 — Aug 2023" %}}
- **Reduced deployment time by 66%** by implementing a
[solution](https://github.com/apache/incubator-kie-kogito-operator/commit/175a6356c5474f2360ccb8ae835e0b9b2d653cf1) for deploying locally-compiled binaries onto
Kubernetes/OpenShift via command-line, **cutting average
deployment times from 45 minutes to 15 minutes**.
(**Kubernetes/GoLang** used for this and three below).
- **Eliminated 80% of manual configuration errors** by enabling
the Kubernetes operator to automatically fetch data from
deployed services and update configurations, **deprecating
legacy startup scripts and reducing overall startup time
by 40%**.
- **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%**.
- **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 skills %}}<!--- {{{ --> {{% resume/section skills %}}<!--- {{{ -->
Kubernetes, **JavaScript**, **React**, **Python**, Go, Bash, Solidity, C, **Django**, Node.js, Jenkins, PostgreSQL, **Linux**, **Git**, **Command Line** **TypeScript**, **JavaScript**, **React**, **Node.js**, **Python**,
**Django**, 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 (St. George)"
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 %}}<!--- }}} -->
{{% resume/section "References" %}}<!--- {{{ -->
{{% resume/references %}}
{{% /resume/section %}}<!--- }}} --> {{% /resume/section %}}<!--- }}} -->
<!-- vim: fdm=marker --> <!-- vim: fdm=marker -->

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

View File

@@ -19,7 +19,7 @@
<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>
· ·

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,21 @@
<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 with a 3.84 GPA studying Computer Science at the
University of Toronto in 2024 (currently looking for a full-time position!).
</li>
<li>
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>.
</li>
</ul>
</p> </p>
{{ partial "home/me-equation.html" . }} {{ partial "home/me-equation.html" . }}

View File

@@ -1,14 +1,8 @@
<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>
@@ -16,8 +10,14 @@
<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> <p>+</p>
</div> </div>
<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>
</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

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

View File

@@ -1,17 +1,10 @@
<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> <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>
@@ -21,3 +14,4 @@
</div> </div>
</div> </div>
</div> </div>

View File

@@ -3,9 +3,7 @@
See my See my
<a href="https://www.linkedin.com/in/Kev-Mok" <a href="https://www.linkedin.com/in/Kev-Mok"
target="_blank"> target="_blank">
LinkedIn LinkedIn</a> for references from my Red Hat managers/mentee,
</a> a startup client and a graduate student mentor.
for references from my Red Hat managers/mentee and a
startup client.
</span> </span>
</div> </div>

View File

@@ -0,0 +1,18 @@
<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>

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