Compare commits
6 Commits
server
...
resume-pdf
| Author | SHA1 | Date | |
|---|---|---|---|
| 16bff441df | |||
| 6b2a29b078 | |||
| 1881fd9778 | |||
| 24f58db4f9 | |||
| 61dc603da2 | |||
| c9e307dd70 |
@@ -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;
|
||||||
@@ -554,7 +555,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 +592,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 +616,7 @@ header {// {{{
|
|||||||
h2 {
|
h2 {
|
||||||
color: $base-sky-blue;
|
color: $base-sky-blue;
|
||||||
display: inline;
|
display: inline;
|
||||||
|
font-size: 1.1em;
|
||||||
}
|
}
|
||||||
|
|
||||||
img {
|
img {
|
||||||
@@ -613,7 +625,8 @@ header {// {{{
|
|||||||
|
|
||||||
.project-header {
|
.project-header {
|
||||||
// margin-bottom: .6em;
|
// margin-bottom: .6em;
|
||||||
margin-bottom: .1em;
|
// margin-bottom: .1em;
|
||||||
|
margin-bottom: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.project-link {
|
.project-link {
|
||||||
@@ -653,6 +666,23 @@ header {// {{{
|
|||||||
}
|
}
|
||||||
}// }}}
|
}// }}}
|
||||||
|
|
||||||
|
.company {
|
||||||
|
color: #fe4646;
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 1.2em;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.position {
|
||||||
|
// color: black;
|
||||||
|
color: $base-sky-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;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
|
|||||||
@@ -5,60 +5,48 @@ 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" date="May 2020 — Aug 2021" %}}
|
||||||
- Reduced deployment time by **66%** by implementing ability 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.
|
using only command-line (Golang used for this and 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.
|
||||||
- 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 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.
|
||||||
- Automated the promotion and release process
|
- Automated the promotion and release process
|
||||||
as part of the **Jenkins** release pipeline.
|
as part of the **Jenkins** [release pipeline](https://github.com/apache/incubator-kie-kogito-pipelines/commit/4c83f1aecdea2c1ba2796b79839a90d4083dce88).
|
||||||
- Wrote documentation on how to get started with the project to onboard new
|
- 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
|
||||||
developers and mentored the incoming intern.
|
developers and mentored the incoming intern.
|
||||||
|
|
||||||
{{% /resume/section %}}<!--- }}} -->
|
{{% /resume/section %}}<!--- }}} -->
|
||||||
|
|
||||||
{{% resume/section projects %}}<!--- {{{ -->
|
{{% resume/section projects %}}<!--- {{{ -->
|
||||||
|
|
||||||
|
<!--- AWS {{{ -->
|
||||||
|
|
||||||
<!--- CSC369 {{{ -->
|
{{% resume/project name="AWS Server/Kubernetes"
|
||||||
|
url="https://kevin-mok.com/server/" date="May 2024" show="true" %}}
|
||||||
|
|
||||||
{{% resume/project name="Custom Kernel Module"
|
- Deployed [various web apps](https://kevin-mok.com/server/) using **Docker** (Compose) on an
|
||||||
url="https://kevin-mok.com/server/" date="Jan. 2022" show="true" %}}
|
**AWS EC2** Debian/**Linux** server.
|
||||||
|
- Created **Kubernetes** [manifest files](https://github.com/Kevin-Mok/aws-minicube) to quickly recreate my server setup
|
||||||
- Wrote and installed a [custom Linux kernel module](https://github.com/Kevin-Mok/interceptor-kernel/blob/master/a1/interceptor.c) in **C**.
|
with persistent storage/restarts and open ports.
|
||||||
- Intercepted pre-existing system calls using
|
- Used Amazon Route 53's DNS and **NGINX** to route
|
||||||
custom kernel module by sending commands to
|
subdomains to each web application.
|
||||||
userspace.
|
- Used AWS security groups to allow inbound HTTPS traffic.
|
||||||
- Monitored specific process ID's in my system
|
- Used Amazon EBS snapshots to regularly back up server.
|
||||||
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]
|
- Wrote a [**JavaScript** script][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.
|
||||||
- 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
|
[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
|
[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
|
||||||
|
|
||||||
{{% /resume/project %}}
|
{{% /resume/project %}}
|
||||||
|
|
||||||
<!--- DigitalOcean Droplet }}} -->
|
<!--- AWS }}} -->
|
||||||
|
|
||||||
<!--- Rarity Surf {{{ -->
|
<!--- Rarity Surf {{{ -->
|
||||||
|
|
||||||
@@ -78,11 +66,29 @@ date="Oct 2021" show="true" %}}
|
|||||||
|
|
||||||
<!--- Rarity Surf }}} -->
|
<!--- 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 %}}<!--- {{{ -->
|
||||||
|
|
||||||
Kubernetes, **JavaScript**, **React**, **Python**, Go, Bash, Solidity, C, **Django**, Node.js, Jenkins, PostgreSQL, **Linux**, **Git**, **Command Line**
|
AWS, Kubernetes, Docker (Compose), **JavaScript**, **React**, **Python**, Go, Bash, Solidity, C, **Django**, Node.js, Jenkins, PostgreSQL,
|
||||||
|
MongoDB, **Linux**, **Git**, **Command Line**
|
||||||
|
|
||||||
{{% /resume/section %}}<!--- }}} -->
|
{{% /resume/section %}}<!--- }}} -->
|
||||||
|
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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,
|
references</a> from my
|
||||||
a startup client and a graduate student mentor.
|
Red Hat managers/mentee, a startup client and a graduate
|
||||||
|
student mentor.
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
14
layouts/shortcodes/resume/work-experience.html
Normal file
14
layouts/shortcodes/resume/work-experience.html
Normal 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>
|
||||||
Submodule static/pdf updated: e6c4cde18a...ffdbd320a0
Reference in New Issue
Block a user