Compare commits

...

13 Commits

  1. 2
      .gitignore
  2. 355
      assets/sass/main.scss
  3. 2
      content/letter
  4. 161
      content/resume/_index.md
  5. 82
      content/resume/old.txt
  6. 9
      content/resume/red-hat.txt
  7. 18
      content/resume/server-ideas.md
  8. 2
      layouts/partials/base/header.html
  9. 3
      layouts/shortcodes/resume/education.html
  10. 9
      layouts/shortcodes/resume/references.html
  11. 2
      static/pdf

2
.gitignore

@ -3,6 +3,8 @@ public/
resources/_gen/
themes/base16*
*.pdf
commit-msg.txt
.hugo_build.lock
static/server-apps.json

355
assets/sass/main.scss

@ -2,14 +2,10 @@
// base colors {{{ //
$base00: #2d2d2d;
$base01: #393939;
$base02: #515151;
$base03: #747369;
$base04: #a09f93;
$base05: #d3d0c8;
$base06: #e8e6df;
$base07: #f2f0ec;
$base-red: #f2777a;
$base-orange: #f99157;
$base-yellow: #ffcc66;
@ -19,6 +15,13 @@ $base-blue: #6699cc;
$base-violet: #cc99cc;
$base-dark-orange: #d27b53;
/* .base00 { color: #2d2d2d; }
.base01 { color: #393939; }
.base02 { color: #515151; }
.base03 { color: #747369; }
.base04 { color: #a09f93; }
.base06 { color: #e8e6df; }
.base07 { color: #f2f0ec; } */
.base08 { color: $base-red; }
.base09 { color: $base-orange; }
.base0a { color: $base-yellow; }
@ -35,7 +38,6 @@ $base-dark-orange: #d27b53;
// $max-page-width: 52em;
$max-page-width: 45em;
$phone-width: 800px;
$vert-phone-width: 500px;
@mixin side-padding-rem($n) {// {{{
padding-left: $n * 1rem;
@ -88,23 +90,14 @@ $vert-phone-width: 500px;
}
}// }}}
@mixin a-no-underline() {// {{{
a {
text-decoration: none;
&:hover {
text-decoration: none;
}
}
}// }}}
// }}} mixins //
// general elements {{{ //
$background-color: #2d2d2d;
$color: #f2f0ec;
// $background-color: white;
// $color: black;
// $background-color: #2d2d2d;
// $color: #f2f0ec;
$background-color: white;
$color: black;
body {
margin: 0;
@ -113,6 +106,8 @@ body {
line-height: 1.5;
// font-size: 100%;
font-size: 15px;
// font-size: 20px;
// font-size: 22px;
/* font-family: 'Source Code Pro', monospace; */
font-family: 'Hack', monospace;
display: flex;
@ -214,7 +209,6 @@ footer {
position: relative;
padding-right: $side-padding;
// padding-right: .9em;
@include a-no-underline();
img {
height: 1.5em;
@ -256,22 +250,22 @@ p {
margin-bottom: 1rem;
}
h1 {
font-size: 2rem;
// h1 {
// font-size: 2rem;
@media (max-width: $phone-width) {
font-size: 1.75rem;
}
}
h2 {
font-size: 1.5rem;
// @media (max-width: $phone-width) {
// font-size: 1.75rem;
// }
// }
// h2 {
// font-size: 1.5rem;
@media (max-width: $phone-width) {
font-size: 1.4rem;
}
}
// @media (max-width: $phone-width) {
// font-size: 1.4rem;
// }
// }
h3 { font-size: 1.25rem }
h4 { font-size: 1rem }
// h4 { font-size: 1rem }
h5 { font-size: .875rem }
h6 { font-size: .75rem }
@ -486,27 +480,34 @@ header {// {{{
#print-icon {// {{{
float: right;
display: none;
img {
height: 2em !important;
position: absolute;
height: 1.75em;
position: relative;
top: 1em;
}
}// }}}
#contact-info {// {{{
@include side-margin-em(0);
@include side-padding-rem(0);
// @include vert-padding-rem(0.5);
@include a-color($base-sky-blue);
width: 100%;
// @media (min-width: 1200px) {
// .container{
// min-width: $max-page-width;
// }
// }
// min-width: $max-page-width;
@media (min-width: 1200px) {
.container{
min-width: $max-page-width;
}
}
a {// {{{
text-decoration: none;
&:hover {
text-decoration: none;
}
}// }}}
font-size: .9em;
// font-size: .9em;
font-size: .8em;
.row {
// flex-grow: 1;
@ -531,18 +532,19 @@ header {// {{{
margin-left: 5px;
// position: relative;
// left: -8px;
@media (max-width: $phone-width) {
// display: none;
// font-size: 10px;
font-size: .8em;
}
// @media (max-width: $phone-width) {
// // display: none;
// // font-size: 10px;
// font-size: .8em;
// }
}
}// }}}
#resume {// {{{
a {// {{{
text-decoration: none;
// text-decoration: none;
text-decoration: underline;
&:hover {
text-decoration: underline;
}
@ -550,45 +552,52 @@ header {// {{{
h1 {// {{{
color: $base-orange;
// margin-top: 1.3rem;
margin-top: 1rem;
font-size: 1.2em;
@media (max-width: $phone-width) {
margin-top: .75rem;
}
// @media (max-width: $phone-width) {
// margin-top: .75rem;
// }
}// }}}
h2 {// {{{
color: $base-orange;
margin-top: .5rem;
font-size: 1em;
@media (max-width: $phone-width) {
font-size: 1.2em;
margin-top: .75rem;
}
// @media (max-width: $phone-width) {
// font-size: 1.2em;
// margin-top: .75rem;
// }
}// }}}
h4 {// {{{
color: $base-yellow;
margin-top: .5rem;
font-size: 1.2em;
@media (max-width: $phone-width) {
font-size: 1.2em;
margin-top: .75rem;
}
// @media (max-width: $phone-width) {
// font-size: 1.2em;
// margin-top: .75rem;
// }
}// }}}
.date {// {{{
padding-top: .8em;
float: right;
color: $base03;
@media (max-width: $phone-width) {
padding-top: 0em;
}
// @media (max-width: $phone-width) {
// padding-top: 0em;
// }
}// }}}
ul {
margin-bottom: 5px;
}
#projects {// {{{
h1 {
margin-bottom: 3px;
}
// // h1 {
// // margin-bottom: 3px;
// // }
.project {// {{{
@include vert-padding-rem(.2);
@ -602,7 +611,15 @@ header {// {{{
height: 1.2em;
}
.project-header {
// margin-bottom: .6em;
margin-bottom: .1em;
}
.project-link {
&:link {
text-decoration: none;
}
&:hover {
text-decoration: none;
}
@ -653,13 +670,14 @@ header {// {{{
}
}// }}}
@media (max-width: $phone-width) {
font-size: 14px;
// font-size: 1em;
}
// @media (max-width: $phone-width) {
// font-size: 14px;
// // font-size: 1em;
// }
&.letter {
margin-top: 2em;
line-height: 1.5em;
img {
height: 4.5em;
@ -668,21 +686,19 @@ header {// {{{
h2 {
color: $base-red;
margin-top: 0em;
margin-bottom: .4em;
}
p {
margin-bottom: 1.5em;
margin-bottom: 1em;
}
.no-line-spacing {
line-height: .5em;
margin-bottom: 2.15em;
margin-bottom: 1.75em;
p {
margin-bottom: 1em;
}
strong {
line-height: 1.25em;
}
}
}
}// }}}
@ -737,175 +753,14 @@ header {// {{{
}
}// }}}
#card {// {{{
@include vert-margin-rem(2);
align-items: center;
justify-content: center;
font-family: 'Oxygen Mono', monospace;
.container {// {{{
padding-left: 0;
padding-right: 0;
.row {
padding-top: 6rem;
padding-bottom: 8rem;
@media (max-width: $phone-width) {
padding-top: 5rem;
padding-bottom: 6rem;
}
}
}// }}}
// $card-bg: #e8e6df;
$card-bg: $base07;
#presentational-container {// {{{
margin-top: 3em;
margin-bottom: 1em;
max-width: $max-page-width;
box-shadow: 2px 2px 10px 5px black;
// card bg
// background-color: #fff;
// background-color: #e5e5e5;
background-color: $card-bg;
}// }}}
#email-full {// {{{
font-size: 50px;
@media (max-width: $phone-width) {
font-size: 40px;
}
@media (max-width: $vert-phone-width) {
font-size: 33px;
}
@include vert-margin-rem(2);
height: 7em;
img {
height: .5em;
position: absolute;
left: -.8em;
bottom: -.15em;
}
p { // {{{
position: relative;
// color: grey;
color: #151515;
// color: #133337;
div {
display: inline;
}
.social {// {{{
// display: none;
display: inline;
white-space: nowrap;
position: absolute;
// left: 5.5rem;
left: 0rem;
.safari {
display: none;
}
@supports (-webkit-backdrop-filter: blur(1px)) {
left: .65rem;
.safari {
display: inline;
}
}
.link-text {
position: relative;
width: 100%;
}
$border-thickness: 8px;
@media (max-width: $vert-phone-width) {
$border-thickness: 5px;
}
.link {
position: absolute;
border-color: black;
border-style: solid;
border-width: 0 $border-thickness $border-thickness $border-thickness;
height: .45em;
width: 100%;
left: 0;
img {
position: absolute;
left: -1em;
}
&.link-top {
border-width: $border-thickness $border-thickness 0 $border-thickness;
img {
position: absolute;
top: -.2em;
}
}
&:hover {
opacity: .6;
}
}
$line-spacing: .65em;
#mastodon {
top: -$line-spacing * 1.1;
border-color: #3088d4;
}
.linkedin {
bottom: -$line-spacing * 1.1;
border-color: #0077b7;
&.linkedin-middle {
border-style: dotted;
border-width: 0 0 3.5px 0;
}
}
#github {
bottom: -$line-spacing * 2.7;
}
#site {
bottom: -$line-spacing * 4.25;
border-color: #ff7058;
}
#email {
top: -$line-spacing * 2.65;
border-color: #d1d0bf;
}
}// }}}
.spacing {
opacity: 0;
}
}// }}}
}// }}}
}// }}}
#letter-home {// {{{
#letter-instr {
text-align: center;
margin-top: 1.5em;
// margin-top: 25vh;
font-size: 1.4em;
}
}// }}}
// TODO: converted up to here
// hero {{{ //
h1.site-title {// {{{
text-align: center;
font-size: 4.2em;
// font-size: 4.2em;
font-size: 3.2em;
// color: #66cccc;
color: $base05;
// margin-top: 1rem;
@ -917,20 +772,20 @@ h1.site-title {// {{{
text-decoration: none;
}
@media (max-width: $max-page-width) {
font-size: 3em;
}
// @media (max-width: $phone-width) {
// font-size: 3em;
// }
@media (max-width: $phone-width) {
font-size: 3.5em;
@include vert-margin-rem(.3);
// font-size: 2.5em;
// font-size: 2em;
// @media (max-width: $phone-width) {
// font-size: 3.5em;
// @include vert-margin-rem(.3);
// // font-size: 2.5em;
// // font-size: 2em;
.surrounding {
display: none;
}
}
// .surrounding {
// display: none;
// }
// }
}// }}}
.hero-logo img {

2
content/letter

@ -1 +1 @@
Subproject commit 996ec6349ba6ba670cb9195f63742c401e5846d9
Subproject commit 1f7a5be6bccc50267924927b218c3cf501604585

161
content/resume/_index.md

@ -6,134 +6,52 @@ draft: false
{{% resume/section "Work Experience" %}}<!--- {{{ -->
{{% resume/education name="Red Hat"
title="Cloud Engineer Intern" date="2020 — 2021" %}}
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.
- Presented a talk based on my experience called "8 Things I
Learned About Software Engineering" to an audience of 75+
in a conference for internship seekers.
{{% /resume/section %}}<!--- }}} -->
{{% resume/section skills %}}<!--- {{{ -->
#### Languages
- **Bash**, **C**, **CSS**, C++, **Fish** (shell), Godot, **HTML5**,
**Python**, Java, **Javascript** (ES6), **Sass**
#### Frameworks
- **Bootstrap**, **Django**, **Node.js**, **PostgreSQL**
#### Services
- **DigitalOcean**, **Linux**, Heroku, **REST/Web API's**
#### Tools
- **Arch Linux**, Android Studio, **Debian**, **Command Line**,
**Git**, IntelliJ IDEA, **Pycharm**, **NGINX**, npm/yarn, **SFTP**,
**SSH**, **Vim**
{{% /resume/section %}}<!--- }}} -->
{{% resume/section projects %}}<!--- {{{ -->
<!--- Spotify Graphs {{{ -->
{{% resume/project name="Spotify Graphs"
url="https://github.com/Kevin-Mok/spotify-lib-vis" date="June 2018 — July 2018"
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
{{% /resume/project %}}
<!--- Spotify Graphs }}} -->
<!--- Grocery Finder {{{ -->
{{% resume/project name="Grocery Finder"
url="https://github.com/Kevin-Mok/grocery-finder" date="Feb. 2019 — Apr. 2019"
show="true" %}}
- Proof of concept for web app that finds the ideal supermarket based on your cart.
- Designed responsive front-end layout using **Bootstrap**.
- Implemented REST API functionality on backend using **Node.js** and
**MongoDB**.
- Setup deployment on [**Heroku**][Grocery Finder Heroku].
- Led team of 4 as project leader to prioritize and delegate tasks while
also implementing a majority of the core features.
- Performed code review for team members' pull requests.
[Grocery Finder Heroku]: http://www.grocery-finder.ml
{{% /resume/project %}}
<!--- Grocery Finder }}} -->
<!--- ParsaFood {{{ -->
{{% resume/project name="ParsaFood"
url="https://github.com/Kevin-Mok/ParsaFood" date="Feb. 2018"
show="true" %}}
- **Android** app that reads ingredient labels and detects any dietary
restrictions/allergies.
- Designed user interface and linked various functionality together.
- Made during a 24-hour [food-themed hackathon][Platterz Hackathon event]
in a group with two other members. Came in 2<sup>nd</sup> place and won
an [Oculus Rift][Oculus Rift Amazon].
[Parsafood repo]: https://github.com/Kevin-Mok/ParsaFood
[Platterz Hackathon event]:
https://www.eventbrite.com/e/platterz-hackathon-tickets-42682237722
[Oculus Rift Amazon]: https://www.amazon.ca/Oculus-Rift-Windows-VR-Headset/dp/B00VF0IXEY/ref=sr_1_1_sspa?ie=UTF8&qid=1520422949&sr=8-1-spons&keywords=oculus+rift&psc=1
{{% /resume/project %}}
<!--- ParsaFood }}} -->
<!--- TrapBot {{{ -->
<!--- CSC369 {{{ -->
{{% resume/project name="TrapBot"
url="https://github.com/Kevin-Mok/TrapBot" date="March 2018" %}}
{{% resume/project name="Custom Kernel Module"
url="https://kevin-mok.com/server/" date="Jan. 2022" show="true" %}}
- Use reddit API wrapper in **Python** to scan music subreddits for user
comments containing common track listing formats.
- Match detected track name and artists to track on SoundCloud using another
Python API wrapper.
- Respond to original poster's comment with formatted list of tracks found.
- Received positive comment from users who replied to the bot's posts.
- 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 %}}
<!--- Grocery Finder }}} -->
<!--- CSC369 }}} -->
<!--- DigitalOcean {{{ -->
{{% resume/project name="Personal Server"
url="https://kevin-mok.com/server/" date="Aug. 2019 — present" %}}
url="https://kevin-mok.com/server/" date="Aug. 2019 — present" show="true" %}}
- Deployed various web apps with backends such as Node, PHP and Python using
**NGINX** on a **Debian** server.
- Monitor system resources and perform system maintenance using tmux.
- Wrote [**Node.js** script][server script] and [**systemd** service][systemd service]/[timer]
to check and display the uptime of my pages every hour.
- 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
@ -142,33 +60,42 @@ url="https://kevin-mok.com/server/" date="Aug. 2019 — present" %}}
<!--- DigitalOcean Droplet }}} -->
<!--- Super ADA Bros. {{{ -->
<!--- Rarity Surf {{{ -->
{{% resume/project name="Super ADA Bros"
url="https://github.com/Kevin-Mok/SuperADABros" date="May 2019" %}}
{{% resume/project name="Rarity Surf"
date="Oct 2021" show="true" %}}
- Designed clone of Super Mario Bros 1-1, but Mario is mobility-impaired and
uses ramps to get through the level.
- Uses **OpenCV** to track player's head movement which is then translated to
in-game movement. [Video Demo]
- Implemented in [**Godot**][Godot site], an open-source game engine.
- Made during a 24-hour [accessibility-themed hackathon][PC Hacks event].
[PC Hacks event]: https://pchacks19.devpost.com/
[Godot site]: https://godotengine.org
[Video Demo]: https://youtu.be/vRdENLGrBqM
- 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 }}} -->
{{% /resume/section %}}<!--- }}} -->
{{% resume/section skills %}}<!--- {{{ -->
<!--- Grocery Finder }}} -->
Kubernetes, **JavaScript**, **React**, **Python**, Go, Bash, Solidity, C, **Django**, Node.js, Jenkins, PostgreSQL, **Linux**, **Git**, **Command Line**
{{% /resume/section %}}<!--- }}} -->
{{% resume/section education %}}<!--- {{{ -->
{{% resume/education name="University of Toronto"
title="Computer Science Specialist" date="2017 — 2021" %}}
title="Computer Science Specialist — 3.84 GPA (CS). Graduated with High Distinction." date="2018 — 2023" %}}
{{% /resume/section %}}<!--- }}} -->
{{% resume/section "References" %}}<!--- {{{ -->
{{% resume/references %}}
{{% /resume/section %}}<!--- }}} -->

82
content/resume/old.txt

@ -0,0 +1,82 @@
<!--- Spotify Graphs {{{ -->
{{% resume/project name="Spotify Graphs"
url="https://github.com/Kevin-Mok/spotify-lib-vis" date="June 2018 — July 2018"
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
{{% /resume/project %}}
<!--- Spotify Graphs }}} -->
<!--- Grocery Finder {{{ -->
{{% resume/project name="Grocery Finder"
url="https://github.com/Kevin-Mok/grocery-finder" date="Feb. 2019 — Apr. 2019"
show="true" %}}
- Proof of concept for web app that finds the ideal supermarket based on your cart.
- Designed responsive front-end layout using **Bootstrap**.
- Implemented REST API functionality on backend using **Node.js** and
**MongoDB**.
- Setup deployment on [**Heroku**][Grocery Finder Heroku].
- Led team of 4 as project leader to prioritize and delegate tasks while
also implementing a majority of the core features.
- Performed code review for team members' pull requests.
[Grocery Finder Heroku]: http://www.grocery-finder.ml
{{% /resume/project %}}
<!--- Grocery Finder }}} -->
<!--- DigitalOcean {{{ -->
{{% resume/project name="Personal Server"
url="https://kevin-mok.com/server/" date="Aug. 2019 — present" %}}
- Deployed various web apps with backends such as Node, PHP and Python using
**NGINX** on a **Debian** server.
- Monitor system resources and perform system maintenance using tmux.
- Wrote [**Node.js** script][server script] and [**systemd** service][systemd service]/[timer]
to check and display the uptime of my pages every hour.
[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 }}} -->
<!--- ParsaFood {{{ -->
{{% resume/project name="ParsaFood"
url="https://github.com/Kevin-Mok/ParsaFood" date="Feb. 2018"
show="true" %}}
- **Android** app that reads ingredient labels and detects any dietary
restrictions/allergies.
- Designed user interface and linked various functionality together.
- Made during a 24-hour [food-themed hackathon][Platterz Hackathon event]
in a group with two other members. Came in 2<sup>nd</sup> place and won
an [Oculus Rift][Oculus Rift Amazon].
[Parsafood repo]: https://github.com/Kevin-Mok/ParsaFood
[Platterz Hackathon event]:
https://www.eventbrite.com/e/platterz-hackathon-tickets-42682237722
[Oculus Rift Amazon]: https://www.amazon.ca/Oculus-Rift-Windows-VR-Headset/dp/B00VF0IXEY/ref=sr_1_1_sspa?ie=UTF8&qid=1520422949&sr=8-1-spons&keywords=oculus+rift&psc=1
{{% /resume/project %}}
<!--- ParsaFood }}} -->

9
content/resume/red-hat.txt

@ -0,0 +1,9 @@
• Working on the Kogito (cloud-native, open-source business automation technology) Cloud Engineering team.
• Implemented ability for Kogito operator to fetch exposed protobuf files from a deployed service and update ConfigMap with data (*Kubernetes*, *Go*, KOGITO-3376).
• Reduced deployment time by 66% by implementing ability to deploy locally-compiled Kogito binaries onto OpenShift using only Kogito CLI (*Go*, KOGITO-2113).
• Added startup probes to handle starting legacy application containers that require additional startup time
(*Go*, KOGITO-4322).
• Refactored Kogito probes to have default values assigned based on deployed YAML/runtime while also fixing reconciliation issues (*Kubernetes*, *Go*, KOGITO-4898).
• Automated the promotion and release process for Kogito runtimes as part of the release pipeline (*Jenkins*, KOGITO-1653). Wrote unit tests in the Spock framework.
• Wrote documentation to onboard new Kogito operator developers and reduce friction needed for them to start contributing (*Kubernetes/minikube/OpenShift*, KOGITO-5127). Was completed as part of mentoring incoming intern to expedite initial onboarding process.
• Presented a talk based on my experience called "8 Things I Learned About Software Engineering" to an audience of 75+ in a conference for internship seekers.

18
content/resume/server-ideas.md

@ -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

2
layouts/partials/base/header.html

@ -18,7 +18,7 @@
<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://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
<!-- <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="{{ "css/style.css" | relURL }}" type="text/css">
{{ $main_sass := resources.Get "sass/main.scss" }}

3
layouts/shortcodes/resume/education.html

@ -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>

9
layouts/shortcodes/resume/references.html

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

2
static/pdf

@ -1 +1 @@
Subproject commit ac3a141098d76a2da382fe1c5c2943fb56ff4ec2
Subproject commit e6c4cde18a3b56e0c24e73b4dc729669cbac3a5f
Loading…
Cancel
Save