Compare commits
31 Commits
server
...
latex-resu
| Author | SHA1 | Date | |
|---|---|---|---|
| 39bc002bf1 | |||
| 90fef7bb61 | |||
| 49a846ee2d | |||
| c97c1a221f | |||
| 4ff6ac20f0 | |||
| 25535aa384 | |||
| 5d8442a6f0 | |||
| b40109382e | |||
| 5fdcb18365 | |||
| 278e2a8f46 | |||
| 79b7e336a7 | |||
| 7ea1739380 | |||
| a1086f3c2e | |||
| 87c293ce13 | |||
| 9be9043b6c | |||
| 26d63d2e6a | |||
| b1f3cfdf57 | |||
| 461eb2aeb6 | |||
| a7fa6b9f3e | |||
| d21758675c | |||
| 14c6827b79 | |||
| 052f98860d | |||
| 7c08682c66 | |||
| 179b3f7c7e | |||
| 2abc9de891 | |||
| 16bff441df | |||
| 6b2a29b078 | |||
| 1881fd9778 | |||
| 24f58db4f9 | |||
| 61dc603da2 | |||
| c9e307dd70 |
@@ -103,13 +103,19 @@ 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: 15px;
|
||||
font-size: 17px;
|
||||
// font-size: 20px;
|
||||
// font-size: 22px;
|
||||
/* 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;
|
||||
flex-direction: column;
|
||||
min-height: 100vh;
|
||||
@@ -171,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;
|
||||
@@ -211,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;
|
||||
@@ -369,7 +377,7 @@ header {// {{{
|
||||
display: inline;
|
||||
|
||||
&#gnu {
|
||||
background-color: $base04;
|
||||
// background-color: $base04;
|
||||
// background-color: $base05;
|
||||
}
|
||||
}
|
||||
@@ -492,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{
|
||||
@@ -500,6 +508,7 @@ header {// {{{
|
||||
}
|
||||
}
|
||||
a {// {{{
|
||||
color: #4287cd;
|
||||
text-decoration: none;
|
||||
&:hover {
|
||||
text-decoration: none;
|
||||
@@ -511,7 +520,8 @@ header {// {{{
|
||||
|
||||
.row {
|
||||
// flex-grow: 1;
|
||||
color: $base05;
|
||||
// color: $base05;
|
||||
color: #4287cd;
|
||||
|
||||
img {
|
||||
height: 1em;
|
||||
@@ -529,7 +539,9 @@ header {// {{{
|
||||
}
|
||||
|
||||
.url-info {
|
||||
font-size: 1em;
|
||||
margin-left: 5px;
|
||||
// text-decoration: underline;
|
||||
// position: relative;
|
||||
// left: -8px;
|
||||
// @media (max-width: $phone-width) {
|
||||
@@ -544,6 +556,9 @@ header {// {{{
|
||||
#resume {// {{{
|
||||
a {// {{{
|
||||
// text-decoration: none;
|
||||
// color: $base-blue;
|
||||
color: #4287cd;
|
||||
// color: blue;
|
||||
text-decoration: underline;
|
||||
&:hover {
|
||||
text-decoration: underline;
|
||||
@@ -551,10 +566,12 @@ header {// {{{
|
||||
}// }}}
|
||||
|
||||
h1 {// {{{
|
||||
color: $base-orange;
|
||||
// color: $base-orange;
|
||||
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;
|
||||
@@ -590,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;
|
||||
@@ -605,6 +631,7 @@ header {// {{{
|
||||
h2 {
|
||||
color: $base-sky-blue;
|
||||
display: inline;
|
||||
font-size: 1.1em;
|
||||
}
|
||||
|
||||
img {
|
||||
@@ -613,7 +640,14 @@ header {// {{{
|
||||
|
||||
.project-header {
|
||||
// margin-bottom: .6em;
|
||||
margin-bottom: .1em;
|
||||
// margin-bottom: .1em;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
.project-title {
|
||||
// color: $base-blue;
|
||||
color: black;
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.project-link {
|
||||
@@ -653,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 {
|
||||
color: $base-yellow;
|
||||
// color: $base-yellow;
|
||||
// color: $base-dark-orange;
|
||||
// color: $base-blue;
|
||||
color: black;
|
||||
font-weight: bold;
|
||||
font-size: 1.1em;
|
||||
margin-bottom: 5px;
|
||||
@@ -760,16 +823,21 @@ header {// {{{
|
||||
h1.site-title {// {{{
|
||||
text-align: center;
|
||||
// font-size: 4.2em;
|
||||
font-size: 3.2em;
|
||||
// font-size: 3.2em;
|
||||
font-size: 2.5em;
|
||||
// color: #66cccc;
|
||||
color: $base05;
|
||||
// margin-top: 1rem;
|
||||
// margin-bottom: 0.75rem;
|
||||
@include vert-margin-rem(.75);
|
||||
|
||||
@include a-color($base-sky-blue);
|
||||
// @include a-color($base-sky-blue);
|
||||
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) {
|
||||
@@ -935,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 */
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -6,7 +6,7 @@ layout: single
|
||||
---
|
||||
<!--- Intro {{{ -->
|
||||
|
||||

|
||||

|
||||
*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 {{{ -->
|
||||
|
||||
Submodule content/letter updated: 1f7a5be6bc...f07869796d
@@ -5,19 +5,24 @@ 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 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 %}}<!--- }}} -->
|
||||
@@ -27,7 +32,7 @@ title="Cloud/Software Engineer Intern" date="May 2020 — Aug 2021" %}}
|
||||
|
||||
<!--- CSC369 {{{ -->
|
||||
|
||||
{{% resume/project name="Custom Kernel Module"
|
||||
{{% 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**.
|
||||
@@ -36,53 +41,61 @@ url="https://kevin-mok.com/server/" date="Jan. 2022" show="true" %}}
|
||||
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 }}} -->
|
||||
|
||||
<!--- DigitalOcean {{{ -->
|
||||
<!--- Rarity Surf {{{ -->
|
||||
|
||||
{{% resume/project name="Personal Server"
|
||||
url="https://kevin-mok.com/server/" date="Aug. 2019 — present" show="true" %}}
|
||||
{{% resume/project name="Rarity Surf"
|
||||
languages="Python, Django, React, GraphQL"
|
||||
date="Oct 2021" 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 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 {{{ -->
|
||||
|
||||
{{% 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.
|
||||
|
||||
[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
|
||||
|
||||
{{% /resume/project %}}
|
||||
|
||||
<!--- DigitalOcean Droplet }}} -->
|
||||
<!--- 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 }}} -->
|
||||
|
||||
{{% /resume/section %}}<!--- }}} -->
|
||||
|
||||
{{% resume/section skills %}}<!--- {{{ -->
|
||||
|
||||
Kubernetes, **JavaScript**, **React**, **Python**, Go, Bash, Solidity, C, **Django**, Node.js, Jenkins, PostgreSQL, **Linux**, **Git**, **Command Line**
|
||||
**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**
|
||||
|
||||
{{% /resume/section %}}<!--- }}} -->
|
||||
|
||||
|
||||
@@ -1,3 +1,20 @@
|
||||
<!--- 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 }}} -->
|
||||
|
||||
<!--- Spotify Graphs {{{ -->
|
||||
|
||||
{{% resume/project name="Spotify Graphs"
|
||||
|
||||
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**
|
||||
@@ -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
|
||||
|
||||
@@ -15,6 +15,13 @@
|
||||
<!-- <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">
|
||||
@@ -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">
|
||||
|
||||
@@ -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='//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.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 }}
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
<h1 class="site-title">
|
||||
<span class="surrounding">[</span><a href="{{ .Site.BaseURL }}"><span class="base08">K</span><span
|
||||
class="base0f">e</span><span class="base09">v</span><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>
|
||||
<span class="surrounding"></span><a href="{{ .Site.BaseURL }}">
|
||||
<span>Kevin Mok</span>
|
||||
</h1>
|
||||
|
||||
@@ -7,12 +7,23 @@
|
||||
<a href="https://www.redhat.com/" target="_blank">Red Hat</a>.
|
||||
</li>
|
||||
<li>
|
||||
I'm a Computer Science student at the University of
|
||||
Toronto, graduating at the end of 2023 (currently
|
||||
looking for a full-time position!).
|
||||
I'm graduated University of Toronto as a Computer
|
||||
Science Scecialist in 2023.
|
||||
</li>
|
||||
<li>
|
||||
I'm greatly interested in all things Linux and
|
||||
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>
|
||||
|
||||
@@ -6,15 +6,16 @@
|
||||
</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">
|
||||
<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">
|
||||
<a href="https://www.gnu.org/" target="_blank">
|
||||
<img src="{{ "img/home/gnu.svg" | relURL }}" id="gnu" alt="gnu-logo">
|
||||
<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>
|
||||
</div>
|
||||
<p>=</p>
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
<div id="linkedin" class="col text-right">
|
||||
<a href="https://www.linkedin.com/in/Kev-Mok" target="_blank">
|
||||
<span class="url-info">
|
||||
Kev-Mok
|
||||
linkedin.com/in/Kev-Mok
|
||||
</span>
|
||||
<img src="{{ "img/social/linkedin.svg" | relURL }}" alt="linkedin-icon">
|
||||
</a>
|
||||
@@ -28,11 +28,11 @@
|
||||
</a>
|
||||
</div>
|
||||
<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">
|
||||
kevin-mok.com
|
||||
github.com/Kevin-Mok
|
||||
</span>
|
||||
<img src="{{ "img/resume/link.svg" | relURL }}" alt="link-icon">
|
||||
<img src="{{ "img/social/github.svg" | relURL }}" alt="link-icon">
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -1,9 +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,
|
||||
a startup client and a graduate student mentor.
|
||||
references</a> from my
|
||||
Red Hat managers/mentee, a startup client and a graduate
|
||||
student mentor.
|
||||
</span>
|
||||
</div>
|
||||
|
||||
17
layouts/shortcodes/resume/work-experience.html
Normal file
17
layouts/shortcodes/resume/work-experience.html
Normal 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>
|
||||
BIN
static/img/config/desktop-screenshot.png
Normal file
BIN
static/img/config/desktop-screenshot.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.9 MiB |
Submodule static/pdf updated: e6c4cde18a...a0d59bda6c
Reference in New Issue
Block a user