Compare commits

..

38 commits

Author SHA1 Message Date
dependabot[bot]
e6efa6be7b Bump dorny/paths-filter from 2 to 3
Bumps [dorny/paths-filter](https://github.com/dorny/paths-filter) from 2 to 3.
- [Release notes](https://github.com/dorny/paths-filter/releases)
- [Changelog](https://github.com/dorny/paths-filter/blob/master/CHANGELOG.md)
- [Commits](https://github.com/dorny/paths-filter/compare/v2...v3)

---
updated-dependencies:
- dependency-name: dorny/paths-filter
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-25 16:16:17 +00:00
dependabot[bot]
d463927a8c Bump actions/upload-artifact from 3 to 4
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3 to 4.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-20 12:18:49 +00:00
dependabot[bot]
74fc25c36f Bump actions/labeler from 4 to 5
Bumps [actions/labeler](https://github.com/actions/labeler) from 4 to 5.
- [Release notes](https://github.com/actions/labeler/releases)
- [Commits](https://github.com/actions/labeler/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/labeler
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-04 22:47:55 +00:00
Byungjin Park
e076d0ed41
Ignore binary files and examples for pull-request-labeler 2023-12-01 22:16:09 +09:00
Byungjin Park
560c3f2442
Update my resume and cv 2023-11-20 02:19:17 +09:00
Byungjin Park (Claud)
6efaf2ced1
Update README.md 2023-11-20 00:38:11 +09:00
dependabot[bot]
a79de5d426 Bump crazy-max/ghaction-github-labeler from 4 to 5
Bumps [crazy-max/ghaction-github-labeler](https://github.com/crazy-max/ghaction-github-labeler) from 4 to 5.
- [Release notes](https://github.com/crazy-max/ghaction-github-labeler/releases)
- [Commits](https://github.com/crazy-max/ghaction-github-labeler/compare/v4...v5)

---
updated-dependencies:
- dependency-name: crazy-max/ghaction-github-labeler
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-13 16:40:41 +00:00
Jan Wojciechowski
c5385444d6 feature: Hackerrank link 2023-09-06 23:08:25 +00:00
dependabot[bot]
a7b4d1b51b Bump actions/checkout from 3 to 4
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-05 05:40:56 +01:00
Oliver Ford
da661243bc
Better format tel: URI
Closes #30
2023-07-27 23:08:51 +01:00
Oliver Ford
03df20ccab
Format \@teluri in one place 2023-07-27 23:06:27 +01:00
Pavan Gupta
e140258764 Remove extra space when "description" of /cventry is empty
This simply checks if the description is empty and if it is, it renders nothing.
2023-07-27 20:49:04 +00:00
randomnoise
4b55638cc3 Add comma after position if title is not empty
Make comma conditional that are used after position in cvhonor.
Use it if the title is not empty.
2023-07-27 20:47:45 +00:00
Omar
72a350157a
Update spelling typo (#465)
Update "effeciently" to efficiently
2023-03-17 00:31:43 +09:00
Josh Thorpe
6771b9fb38
Fix example cv path to certificates.tex (#456) 2023-01-06 20:57:22 +09:00
Byungjin Park
0d11cb0163
Update examples 2022-12-19 00:41:48 +09:00
Byungjin Park
7c16e373f9
Update examples 2022-12-19 00:04:13 +09:00
dwhitz
063fbc0d85
Remove dollar sign from usage section (#446)
Removed dollar sign to avoid pasting into the terminal
2022-11-30 04:50:05 +00:00
dependabot[bot]
5b05d93565
Bump crazy-max/ghaction-github-labeler from 3 to 4 (#430)
Bumps [crazy-max/ghaction-github-labeler](https://github.com/crazy-max/ghaction-github-labeler) from 3 to 4.
- [Release notes](https://github.com/crazy-max/ghaction-github-labeler/releases)
- [Changelog](https://github.com/crazy-max/ghaction-github-labeler/blob/master/CHANGELOG.md)
- [Commits](https://github.com/crazy-max/ghaction-github-labeler/compare/v3...v4)

---
updated-dependencies:
- dependency-name: crazy-max/ghaction-github-labeler
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-27 01:25:49 +09:00
Niklas Bolander
1a5691e63f
Use Roboto package instead of bundling the font (#403)
* Use the roboto font package

* Remove font directory symlink for the examples

* Remove obsolete font files

* Remove custom font directory from the examples

Not required anymore since they do not use any custom fonts.

Co-authored-by: Niklas Bolander <niklas@bolander.dev>
2022-04-19 21:07:32 +00:00
Oliver Ford
af40bb01d9
Fix warning 'file cv.out has changed' (#425)
Closes #423
2022-04-19 11:54:23 +01:00
Antenore Gatta
2d6d8644db Solves Warning: File `cv.out' has changed #423
As discussed in the issue 423 [1] the TeX file has to be re-rendered twice
Because of the above-mentioned warning.

This patch fixes this and an additional warning causing a double rendering

[1] — https://github.com/posquit0/Awesome-CV/issues/423
2022-04-13 21:31:18 +02:00
Oliver Ford
aba4de9602
Fix CI not rendering PDFs on PRs 2022-04-13 20:21:23 +01:00
dependabot[bot]
405506037b
Bump actions/upload-artifact from 2 to 3 (#421)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 2 to 3.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-13 18:00:07 +00:00
dependabot[bot]
bdd64051f1
Bump actions/checkout from 2 to 3 (#411)
Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-09 02:18:09 +09:00
dependabot[bot]
61021a7f70
Bump actions/labeler from 3 to 4 (#412)
Bumps [actions/labeler](https://github.com/actions/labeler) from 3 to 4.
- [Release notes](https://github.com/actions/labeler/releases)
- [Commits](https://github.com/actions/labeler/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/labeler
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-09 02:17:57 +09:00
Byungjin Park (Claud)
8bffe694f9
Fix broken GitHub Actions workflows (#402)
* Fix pull-request-labeler to permit outside collaborator

* Add welcome GitHub workflow

* Update welcome.yaml
2022-02-26 21:35:57 +09:00
Niklas Bolander
a944c26b24
Use latest TexLive release for CI builds (#401)
[texlive/texlive](https://hub.docker.io/r/texlive/texlive)'s source is
available at: https://gitlab.com/islandoftex/images/texlive.

Closes #401.
2022-02-13 20:23:36 +00:00
Byungjin Park (Claud)
66a2128cad
Remove welcome action (#400) 2022-02-13 01:18:17 +09:00
Xavier Mawet
5c5699a818
Remove redundant copy of FontAwesome (#399)
This was missed in #344 & 3280a87599.

Closes #399.
2022-02-11 21:08:53 +00:00
Byungjin Park
e55bd80320
Add CODEOWNERS 2022-02-05 01:07:10 +09:00
Byungjin Park
f49d0adf7c
Add labeler action 2022-02-05 01:07:00 +09:00
Byungjin Park
d375504c37
Add sync-labels action 2022-02-05 01:06:36 +09:00
Byungjin Park
0a8e6215b5
Add dependabot.yml 2022-02-05 01:05:59 +09:00
Byungjin Park
2901266b32
Add integration github action with yamllint 2022-02-05 01:05:49 +09:00
Byungjin Park
e3dbdff290
Add welcome github action 2022-02-05 00:39:32 +09:00
Matthias Koch
1c95608002
Add option for colour of section divider (#348)
Closes #348.
2022-02-04 11:19:26 +00:00
Kevin Hwang
9d66734e3b Add "tel:" URI hyperlinking for phone numbers 2016-02-15 23:02:43 -08:00
37 changed files with 687 additions and 106 deletions

1
.github/CODEOWNERS vendored Normal file
View file

@ -0,0 +1 @@
* @posquit0 @OJFord

6
.github/dependabot.yml vendored Normal file
View file

@ -0,0 +1,6 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "daily"

0
.github/labeler.yaml vendored Normal file
View file

40
.github/labels.yaml vendored Normal file
View file

@ -0,0 +1,40 @@
# Warning
- color: "ee0701"
description: "Categorize bug reports."
name: ":warning: bug"
- color: "ee0701"
description: "Categorize vulnerability reports."
name: ":warning: vulnerability"
# Highlight
- color: "0e8a16"
description: "Good for newcomers."
name: ":fire: good first issue"
- color: "0e8a16"
description: "Extra attention is needed."
name: ":fire: help wanted"
# Cancel
- color: "b60205"
description: "This issue or pull request already exists."
name: ":pray: duplicate"
- color: "b60205"
description: "This will not be worked on."
name: ":pray: wontfix"
# Size
- color: "cfd3d7"
description: "Extra Small size issue or PR."
name: "size/XS"
- color: "cfd3d7"
description: "Small size issue or PR."
name: "size/S"
- color: "cfd3d7"
description: "Medium size issue or PR."
name: "size/M"
- color: "cfd3d7"
description: "Large size issue or PR."
name: "size/L"
- color: "cfd3d7"
description: "Extra Large size issue or PR."
name: "size/XL"

57
.github/workflows/integration.yaml vendored Normal file
View file

@ -0,0 +1,57 @@
name: Integration
on:
push:
branches:
- master
pull_request: {}
concurrency:
group: integration-${{ github.ref }}
cancel-in-progress: true
jobs:
changed:
runs-on: ubuntu-latest
outputs:
yaml_changed: ${{ steps.filter-yaml.outputs.changed }}
yaml_files: ${{ steps.filter-yaml.outputs.files }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Get Changed Files
id: changed-files
uses: dorny/paths-filter@v3
with:
list-files: json
filters: |
yaml:
- '**/*.yaml'
- '**/*.yml'
- name: Filter changed YAML files to outputs
id: filter-yaml
run: |
echo ::set-output name=changed::${{ steps.changed-files.outputs.yaml }}
echo ::set-output name=files::${{ steps.changed-files.outputs.yaml_files }}
yaml:
needs:
- changed
if: ${{ needs.changed.outputs.yaml_changed != 'false' }}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Lint YAML Files
id: yaml-lint
run: |
yamllint .

View file

@ -2,20 +2,21 @@ name: Compile PDFs
on: on:
push: {} push: {}
pull_request: {}
jobs: jobs:
build: build:
runs-on: ubuntu-latest runs-on: ubuntu-latest
container: thomasweise/texlive container: texlive/texlive:latest
steps: steps:
- name: Checkout repo - name: Checkout repo
uses: actions/checkout@v2 uses: actions/checkout@v4
- name: Compile - name: Compile
run: make run: make
- uses: actions/upload-artifact@v2 - uses: actions/upload-artifact@v4
with: with:
name: examples name: examples
path: examples/*.pdf path: examples/*.pdf

View file

@ -0,0 +1,41 @@
name: Label Pull Requests
on:
- pull_request_target
jobs:
label-pr:
runs-on: ubuntu-latest
steps:
- name: Add Labels for PR
uses: actions/labeler@v5
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
configuration-path: .github/labeler.yaml
sync-labels: true
- name: Add PR Size Labels for PR
uses: codelytv/pr-size-labeler@v1
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
xs_label: 'size/XS'
xs_max_size: '20'
s_label: 'size/S'
s_max_size: '100'
m_label: 'size/M'
m_max_size: '500'
l_label: 'size/L'
l_max_size: '1000'
xl_label: 'size/XL'
fail_if_xl: 'false'
message_if_xl: >
'This PR has too many changes.
Please make sure you are NOT addressing multiple issues with one PR.'
files_to_ignore: |
"examples/*"
"*.otf"
"*.pdf"
"*.png"
"*.sty"
"*.ttf"

25
.github/workflows/sync-labels.yaml vendored Normal file
View file

@ -0,0 +1,25 @@
name: Sync labels
on:
push:
branches:
- master
paths:
- .github/labels.yaml
jobs:
sync-labels:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Sync labels
uses: crazy-max/ghaction-github-labeler@v5
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
yaml-file: .github/labels.yaml
skip-delete: false
dry-run: false
# exclude: |

27
.github/workflows/welcome.yaml vendored Normal file
View file

@ -0,0 +1,27 @@
name: Welcome for First Issue or Pull Request
on:
pull_request_target:
types:
- opened
issues:
types:
- opened
jobs:
welcome:
runs-on: ubuntu-latest
steps:
- name: Welcome for First Issue or Pull Request
uses: actions/first-interaction@v1
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
issue-message: |
### :wave: Welcome! Looks like this is your first issue.
Hey, thanks for your contribution! Please give us a bit of time to review it. 😄
pr-message: |
### :wave: Welcome! Looks like this is your first pull request.
Hey, thanks for your contribution! Please give us a bit of time to review it. 😄

53
.yamllint.yaml Normal file
View file

@ -0,0 +1,53 @@
yaml-files:
- '*.yaml'
- '*.yml'
rules:
braces:
min-spaces-inside: 0
max-spaces-inside: 1
min-spaces-inside-empty: 0
max-spaces-inside-empty: 0
brackets:
min-spaces-inside: 0
max-spaces-inside: 1
min-spaces-inside-empty: 0
max-spaces-inside-empty: 0
colons:
max-spaces-before: 0
max-spaces-after: 1
commas:
max-spaces-before: 0
comments:
level: warning
require-starting-space: true
min-spaces-from-content: 1
comments-indentation: disable
document-end: disable
document-start: disable
empty-lines:
level: warning
max: 2
max-start: 0
max-end: 1
empty-values:
forbid-in-block-mappings: true
forbid-in-flow-mappings: true
hyphens:
max-spaces-after: 1
indentation:
spaces: consistent
indent-sequences: false
key-duplicates: enable
key-ordering: disable
line-length: disable
new-line-at-end-of-file: enable
# Use UNIX new line characters `\n` instead of DOS new line characters `\r\n`
new-lines:
type: unix
octal-values: disable
quoted-strings:
quote-type: any
required: false
trailing-spaces: enable
truthy: disable

View file

@ -40,10 +40,6 @@
Please help keep this project alive! Donations are welcome and will go towards further development of this project. Please help keep this project alive! Donations are welcome and will go towards further development of this project.
PayPal: paypal.me/posquit0 PayPal: paypal.me/posquit0
BTC: 1Je3DxJVM2a9nTVPNo55SfQwpmxA6N2KKb
BCH: 1Mg1wG7PwHGrHYSWS67TsGSjo5GHEVbF16
ETH: 0x77ED9B4659F80205E9B9C9FB1E26EDB9904AFCC7
QTUM: QZT7D6m3QtTTqp7s4ZWAwLtGDsoHMMaM8E
*Thank you for your support!* *Thank you for your support!*
@ -88,13 +84,13 @@ If you don't want to install the dependencies on your system, this can also be o
At a command prompt, run At a command prompt, run
```bash ```bash
$ xelatex {your-cv}.tex xelatex {your-cv}.tex
``` ```
Or using docker: Or using docker:
```bash ```bash
$ docker run --rm --user $(id -u):$(id -g) -i -w "/doc" -v "$PWD":/doc thomasweise/texlive make docker run --rm --user $(id -u):$(id -g) -i -w "/doc" -v "$PWD":/doc thomasweise/texlive make
``` ```
In either case, this should result in the creation of ``{your-cv}.pdf`` In either case, this should result in the creation of ``{your-cv}.pdf``

View file

@ -54,7 +54,7 @@
\RequirePackage{ragged2e} \RequirePackage{ragged2e}
% Needed to configure page layout % Needed to configure page layout
\RequirePackage{geometry} \RequirePackage{geometry}
% Needed to make header & footer effeciently % Needed to make header & footer efficiently
\RequirePackage{fancyhdr} \RequirePackage{fancyhdr}
% Needed to manage colors % Needed to manage colors
\RequirePackage{xcolor} \RequirePackage{xcolor}
@ -62,6 +62,8 @@
\RequirePackage{ifxetex} \RequirePackage{ifxetex}
% Needed to use \if-\then-\else statement % Needed to use \if-\then-\else statement
\RequirePackage{xifthen} \RequirePackage{xifthen}
% Needed to strip chars from telephone number
\RequirePackage{xstring}
% Needed to use a toolbox of programming tools % Needed to use a toolbox of programming tools
\RequirePackage{etoolbox} \RequirePackage{etoolbox}
% Needed to change line spacing in specific environment % Needed to change line spacing in specific environment
@ -73,30 +75,30 @@
% Needed to manage math fonts % Needed to manage math fonts
\RequirePackage{unicode-math} \RequirePackage{unicode-math}
% Needed to use icons from font-awesome % Needed to use icons from font-awesome
% (https://github.com/posquit0/latex-fontawesome)
\RequirePackage{fontawesome5} \RequirePackage{fontawesome5}
\RequirePackage{roboto}
\RequirePackage[default,opentype]{sourcesanspro} \RequirePackage[default,opentype]{sourcesanspro}
% Needed for the photo ID % Needed for the photo ID
\RequirePackage[skins]{tcolorbox} \RequirePackage[skins]{tcolorbox}
% Needed to deal a paragraphs % Needed to deal a paragraphs
\RequirePackage{parskip} \RequirePackage{parskip}
% Needed to deal hyperlink % Needed to deal hyperlink
\RequirePackage[hidelinks,unicode]{hyperref} \RequirePackage[hidelinks,unicode,pdfpagelabels=false]{hyperref}
\hypersetup{% \hypersetup{%
pdftitle={}, pdftitle={},
pdfauthor={}, pdfauthor={},
pdfsubject={}, pdfsubject={},
pdfkeywords={} pdfkeywords={}
} }
% Solves issues Warning: File `cv.out' has changed
\RequirePackage{bookmark}
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
% Configuration for directory locations % Configuration for directory locations
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
% Configure a directory location for fonts(default: 'fonts/') % Configure an optional directory location for fonts(default: 'fonts/')
% Not required anymore but left in place for backward compatability.
\newcommand*{\fontdir}[1][fonts/]{\def\@fontdir{#1}} \newcommand*{\fontdir}[1][fonts/]{\def\@fontdir{#1}}
\fontdir
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
% Configuration for layout % Configuration for layout
@ -136,6 +138,7 @@
\colorlet{text}{darkgray} \colorlet{text}{darkgray}
\colorlet{graytext}{gray} \colorlet{graytext}{gray}
\colorlet{lighttext}{lightgray} \colorlet{lighttext}{lightgray}
\colorlet{sectiondivider}{gray}
% Awesome colors % Awesome colors
\definecolor{awesome-emerald}{HTML}{00A388} \definecolor{awesome-emerald}{HTML}{00A388}
\definecolor{awesome-skyblue}{HTML}{0395DE} \definecolor{awesome-skyblue}{HTML}{0395DE}
@ -160,25 +163,8 @@
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
% Configuration for fonts % Configuration for fonts
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
% Set the FontAwesome font to be up-to-date. \newcommand*{\headerfont}{\roboto}
\setfontfamily\FA[Path=\@fontdir]{FontAwesome} \newcommand*{\headerfontlight}{\robotolight}
% Set font for header (default is Roboto)
\newfontfamily\headerfont[
Path=\@fontdir,
UprightFont=*-Regular,
ItalicFont=*-Italic,
BoldFont=*-Bold,
BoldItalicFont=*-BoldItalic,
]{Roboto}
\newfontfamily\headerfontlight[
Path=\@fontdir,
UprightFont=*-Thin,
ItalicFont=*-ThinItalic,
BoldFont=*-Medium,
BoldItalicFont=*-MediumItalic,
]{Roboto}
\newcommand*{\footerfont}{\sourcesanspro} \newcommand*{\footerfont}{\sourcesanspro}
\newcommand*{\bodyfont}{\sourcesanspro} \newcommand*{\bodyfont}{\sourcesanspro}
\newcommand*{\bodyfontlight}{\sourcesansprolight} \newcommand*{\bodyfontlight}{\sourcesansprolight}
@ -275,7 +261,16 @@
% Defines writer's mobile (optional) % Defines writer's mobile (optional)
% Usage: \mobile{<mobile number>} % Usage: \mobile{<mobile number>}
\newcommand*{\mobile}[1]{\def\@mobile{#1}} \newcommand*{\mobile}[1]
{
\def\@mobile{#1}
\def\@teluri{tel:\@mobile}
% Strip unwanted characters
\StrDel{\@teluri}{ }[\@teluri]%
\StrDel{\@teluri}{-}[\@teluri]%
\StrDel{\@teluri}{(}[\@teluri]%
\StrDel{\@teluri}{)}[\@teluri]%
}
% Defines writer's email (optional) % Defines writer's email (optional)
% Usage: \email{<email address>} % Usage: \email{<email address>}
@ -347,6 +342,10 @@
% Usage: \kaggle{<kaggle handle>} % Usage: \kaggle{<kaggle handle>}
\newcommand*{\kaggle}[1]{\def\@kaggle{#1}} \newcommand*{\kaggle}[1]{\def\@kaggle{#1}}
% Defines writer's Hackerrank (optional)
% Usage: \hackerrank{<Hackerrank profile name>}
\newcommand*{\hackerrank}[1]{\def\@hackerrank{#1}}
% Defines writer's google scholar profile (optional) % Defines writer's google scholar profile (optional)
% Usage: \googlescholar{<googlescholar userid>}{<googlescholar username>} % Usage: \googlescholar{<googlescholar userid>}{<googlescholar username>}
% e.g.https://scholar.google.co.uk/citations?user=wpZDx1cAAAAJ % e.g.https://scholar.google.co.uk/citations?user=wpZDx1cAAAAJ
@ -482,7 +481,7 @@
\ifthenelse{\isundefined{\@mobile}}% \ifthenelse{\isundefined{\@mobile}}%
{}% {}%
{% {%
\href{tel:\@mobile}{\faMobile\acvHeaderIconSep\@mobile}% \href{\@teluri}{\faMobile\acvHeaderIconSep\@mobile}%
\setbool{isstart}{false}% \setbool{isstart}{false}%
}% }%
\ifthenelse{\isundefined{\@email}}% \ifthenelse{\isundefined{\@email}}%
@ -588,6 +587,12 @@
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
\href{https://kaggle.com/\@kaggle}{\faKaggle\acvHeaderIconSep\@kaggle}% \href{https://kaggle.com/\@kaggle}{\faKaggle\acvHeaderIconSep\@kaggle}%
}% }%
\ifthenelse{\isundefined{\@hackerrank}}%
{}%
{%
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
\href{https://www.hackerrank.com/\@hackerrank}{\faHackerrank\acvHeaderIconSep\@hackerrank}%
}%
\ifthenelse{\isundefined{\@googlescholarid}}% \ifthenelse{\isundefined{\@googlescholarid}}%
{}% {}%
{% {%
@ -625,7 +630,7 @@
\vspace{\acvSectionTopSkip} \vspace{\acvSectionTopSkip}
\sectionstyle{#1} \sectionstyle{#1}
\phantomsection \phantomsection
\color{gray}\vhrulefill{0.9pt} \color{sectiondivider}\vhrulefill{0.9pt}
} }
% Define a subsection for CV % Define a subsection for CV
@ -665,7 +670,9 @@
{\entrypositionstyle{#1} & \entrydatestyle{#4} \\} {\entrypositionstyle{#1} & \entrydatestyle{#4} \\}
{\entrytitlestyle{#2} & \entrylocationstyle{#3} \\ {\entrytitlestyle{#2} & \entrylocationstyle{#3} \\
\entrypositionstyle{#1} & \entrydatestyle{#4} \\} \entrypositionstyle{#1} & \entrydatestyle{#4} \\}
\multicolumn{2}{L{\textwidth}}{\descriptionstyle{#5}} \ifstrempty{#5}
{}
{\multicolumn{2}{L{\textwidth}}{\descriptionstyle{#5}} \\}
\end{tabular*}% \end{tabular*}%
} }
@ -708,7 +715,7 @@
% Define a line of cv information(honor, award or something else) % Define a line of cv information(honor, award or something else)
% Usage: \cvhonor{<position>}{<title>}{<location>}{<date>} % Usage: \cvhonor{<position>}{<title>}{<location>}{<date>}
\newcommand*{\cvhonor}[4]{% \newcommand*{\cvhonor}[4]{%
\honordatestyle{#4} & \honorpositionstyle{#1}, \honortitlestyle{#2} & \honorlocationstyle{#3} \\ \honordatestyle{#4} & \honorpositionstyle{#1}\ifempty{#2}{}{,} \honortitlestyle{#2} & \honorlocationstyle{#3} \\
} }
% Define an environment for cvskill % Define an environment for cvskill
@ -758,7 +765,7 @@
\par\addvspace{2.5ex} \par\addvspace{2.5ex}
\phantomsection{} \phantomsection{}
\lettersectionstyle{#1} \lettersectionstyle{#1}
\color{gray}\vhrulefill{0.9pt} \color{sectiondivider}\vhrulefill{0.9pt}
\par\nobreak\addvspace{0.4ex} \par\nobreak\addvspace{0.4ex}
\lettertextstyle \lettertextstyle
} }

Binary file not shown.

View file

@ -23,9 +23,6 @@
% Configure page margins with geometry % Configure page margins with geometry
\geometry{left=1.4cm, top=.8cm, right=1.4cm, bottom=1.8cm, footskip=.5cm} \geometry{left=1.4cm, top=.8cm, right=1.4cm, bottom=1.8cm, footskip=.5cm}
% Specify the location of the included fonts
\fontdir[fonts/]
% Color for highlights % Color for highlights
% Awesome Colors: awesome-emerald, awesome-skyblue, awesome-red, awesome-pink, awesome-orange % Awesome Colors: awesome-emerald, awesome-skyblue, awesome-red, awesome-pink, awesome-orange
% awesome-nephritis, awesome-concrete, awesome-darknight % awesome-nephritis, awesome-concrete, awesome-darknight
@ -39,6 +36,7 @@
% \definecolor{text}{HTML}{333333} % \definecolor{text}{HTML}{333333}
% \definecolor{graytext}{HTML}{5D5D5D} % \definecolor{graytext}{HTML}{5D5D5D}
% \definecolor{lighttext}{HTML}{999999} % \definecolor{lighttext}{HTML}{999999}
% \definecolor{sectiondivider}{HTML}{5D5D5D}
% Set false if you don't want to highlight section with awesome color % Set false if you don't want to highlight section with awesome color
\setbool{acvSectionColorHighlight}{true} \setbool{acvSectionColorHighlight}{true}
@ -54,8 +52,8 @@
% Available options: circle|rectangle,edge/noedge,left/right % Available options: circle|rectangle,edge/noedge,left/right
\photo[circle,noedge,left]{./examples/profile} \photo[circle,noedge,left]{./examples/profile}
\name{Claud D.}{Park} \name{Claud D.}{Park}
\position{Software Architect{\enskip\cdotp\enskip}Security Expert} \position{Site Reliability Engineer{\enskip\cdotp\enskip}Software Architect}
\address{42-8, Bangbae-ro 15-gil, Seocho-gu, Seoul, 00681, Rep. of KOREA} \address{235, World Cup buk-ro, Mapo-gu, Seoul, 03936, Republic of Korea}
\mobile{(+82) 10-9030-1843} \mobile{(+82) 10-9030-1843}
\email{posquit0.bj@gmail.com} \email{posquit0.bj@gmail.com}
@ -70,6 +68,7 @@
% \reddit{reddit-id} % \reddit{reddit-id}
% \medium{madium-id} % \medium{madium-id}
% \kaggle{kaggle-id} % \kaggle{kaggle-id}
% \hackerrank{hackerrank-id}
% \googlescholar{googlescholar-id}{name-to-display} % \googlescholar{googlescholar-id}{name-to-display}
%% \firstname and \lastname will be used %% \firstname and \lastname will be used
% \googlescholar{googlescholar-id}{} % \googlescholar{googlescholar-id}{}

Binary file not shown.

View file

@ -23,9 +23,6 @@
% Configure page margins with geometry % Configure page margins with geometry
\geometry{left=1.4cm, top=.8cm, right=1.4cm, bottom=1.8cm, footskip=.5cm} \geometry{left=1.4cm, top=.8cm, right=1.4cm, bottom=1.8cm, footskip=.5cm}
% Specify the location of the included fonts
\fontdir[fonts/]
% Color for highlights % Color for highlights
% Awesome Colors: awesome-emerald, awesome-skyblue, awesome-red, awesome-pink, awesome-orange % Awesome Colors: awesome-emerald, awesome-skyblue, awesome-red, awesome-pink, awesome-orange
% awesome-nephritis, awesome-concrete, awesome-darknight % awesome-nephritis, awesome-concrete, awesome-darknight
@ -39,6 +36,7 @@
% \definecolor{text}{HTML}{333333} % \definecolor{text}{HTML}{333333}
% \definecolor{graytext}{HTML}{5D5D5D} % \definecolor{graytext}{HTML}{5D5D5D}
% \definecolor{lighttext}{HTML}{999999} % \definecolor{lighttext}{HTML}{999999}
% \definecolor{sectiondivider}{HTML}{5D5D5D}
% Set false if you don't want to highlight section with awesome color % Set false if you don't want to highlight section with awesome color
\setbool{acvSectionColorHighlight}{true} \setbool{acvSectionColorHighlight}{true}
@ -54,8 +52,8 @@
% Available options: circle|rectangle,edge/noedge,left/right % Available options: circle|rectangle,edge/noedge,left/right
% \photo{./examples/profile.png} % \photo{./examples/profile.png}
\name{Claud D.}{Park} \name{Claud D.}{Park}
\position{Software Architect{\enskip\cdotp\enskip}Security Expert} \position{Site Reliability Engineer{\enskip\cdotp\enskip}Software Architect}
\address{42-8, Bangbae-ro 15-gil, Seocho-gu, Seoul, 00681, Rep. of KOREA} \address{235, World Cup buk-ro, Mapo-gu, Seoul, 03936, Republic of Korea}
\mobile{(+82) 10-9030-1843} \mobile{(+82) 10-9030-1843}
\email{posquit0.bj@gmail.com} \email{posquit0.bj@gmail.com}
@ -70,6 +68,7 @@
% \reddit{reddit-id} % \reddit{reddit-id}
% \medium{medium-id} % \medium{medium-id}
% \kaggle{kaggle-id} % \kaggle{kaggle-id}
% \hackerrank{hackerrank-id}
% \googlescholar{googlescholar-id}{name-to-display} % \googlescholar{googlescholar-id}{name-to-display}
%% \firstname and \lastname will be used %% \firstname and \lastname will be used
% \googlescholar{googlescholar-id}{} % \googlescholar{googlescholar-id}{}
@ -102,6 +101,7 @@
\input{cv/experience.tex} \input{cv/experience.tex}
\input{cv/extracurricular.tex} \input{cv/extracurricular.tex}
\input{cv/honors.tex} \input{cv/honors.tex}
\input{cv/certificates.tex}
\input{cv/presentation.tex} \input{cv/presentation.tex}
\input{cv/writing.tex} \input{cv/writing.tex}
\input{cv/committees.tex} \input{cv/committees.tex}

View file

@ -0,0 +1,90 @@
%-------------------------------------------------------------------------------
% SECTION TITLE
%-------------------------------------------------------------------------------
\cvsection{Certificates}
%-------------------------------------------------------------------------------
% CONTENT
%-------------------------------------------------------------------------------
\begin{cvhonors}
%---------------------------------------------------------
\cvhonor
{AWS Certified Advanced Networking - Specialty} % Name
{Amazon Web Services (AWS)} % Issuer
{} % Credential ID
{2023} % Date(s)
%---------------------------------------------------------
\cvhonor
{AWS Certified Developer Associate} % Name
{Amazon Web Services (AWS)} % Issuer
{} % Credential ID
{2023} % Date(s)
%---------------------------------------------------------
\cvhonor
{AWS Certified Cloud Practitioner} % Name
{Amazon Web Services (AWS)} % Issuer
{} % Credential ID
{2023} % Date(s)
%---------------------------------------------------------
\cvhonor
{AWS Certified Security - Specialty} % Name
{Amazon Web Services (AWS)} % Issuer
{} % Credential ID
{2022} % Date(s)
%---------------------------------------------------------
\cvhonor
{AWS Certified Solutions Architect Professional} % Name
{Amazon Web Services (AWS)} % Issuer
{} % Credential ID
{2022} % Date(s)
%---------------------------------------------------------
\cvhonor
{AWS Certified Solutions Architect Associate} % Name
{Amazon Web Services (AWS)} % Issuer
{} % Credential ID
{2019} % Date(s)
%---------------------------------------------------------
\cvhonor
{AWS Certified SysOps Administrator Associate} % Name
{Amazon Web Services (AWS)} % Issuer
{} % Credential ID
{2021} % Date(s)
%---------------------------------------------------------
\cvhonor
{Certified Kubernetes Application Developer (CKAD)} % Name
{The Linux Foundation} % Issuer
{} % Credential ID
{2020} % Date(s)
%---------------------------------------------------------
\cvhonor
{HashiCorp Certified: Consul Associate (002)} % Name
{HashiCorp} % Issuer
{} % Credential ID
{2023} % Date(s)
%---------------------------------------------------------
\cvhonor
{HashiCorp Certified: Terraform Associate (003)} % Name
{HashiCorp} % Issuer
{} % Credential ID
{2023} % Date(s)
%---------------------------------------------------------
\cvhonor
{HashiCorp Certified: Terraform Associate (002)} % Name
{HashiCorp} % Issuer
{} % Credential ID
{2020} % Date(s)
%---------------------------------------------------------
\end{cvhonors}

View file

@ -9,6 +9,53 @@
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\begin{cventries} \begin{cventries}
%---------------------------------------------------------
\cventry
{Founding Member \& Site Reliability Engineer \& Infrastructure Team Lead} % Job title
{Danggeun Pay Inc. (KarrotPay)} % Organization
{Seoul, S.Korea} % Location
{Mar. 2021 - Present} % Date(s)
{
\begin{cvitems} % Description(s) of tasks/responsibilities
\item {Everything that matters.}
\item {Designed and provisioned the entire infrastructure on the AWS cloud to meet security compliance and acquire a business license for financial services in Korea.}
\item {Continuously improved the infrastructure architecture since launching the service. (currently 3.6 million users)}
\item {Established a standardized base for declarative management of infrastructures and service deployments, enabling operational efficiency and consistency. Over 90\% of AWS resources were all managed through standardized terraform modules. All add-ons and service workloads on the Kubernetes cluster were managed on a GitOps basis with Kustomize and ArgoCD.}
\item {Saved over 30\% of the overall AWS costs by establishing a quarterly purchasing strategiy for RI (Reserved Instance) and SP (Savings Plan) and by introducing Graviton instances.}
\item {Established a core architecture for regulating of outbound DNS traffic in multi-account and multi-VPC environments utilizing AWS Route53 DNS Firewall and FMS. This significantly increased the level of security confidence in the financial sector's segregated environment.}
\item {Introduced Okta employee identity solution in the company, establishing security policies and configuring SSO integration with over 20 enterprise systems including AWS, GitHub, Slack, Google Workspace. Set up a Hub and Spoke architecture, enabling a collaborative account structure with the parent company, Daangn Market.}
\end{cvitems}
}
%---------------------------------------------------------
\cventry
{Site Reliability Engineer} % Job title
{Danggeun Market Inc.} % Organization
{Seoul, S.Korea} % Location
{Feb. 2021 - Mar. 2021} % Date(s)
{
}
%---------------------------------------------------------
\cventry
{Founding Member \& Director of Infrastructure Division} % Job title
{Kasa} % Organization
{Seoul, S.Korea} % Location
{Jun. 2018 - Jan. 2021} % Date(s)
{
\begin{cvitems} % Description(s) of tasks/responsibilities
\item {Designed on-boarding process to guide new engineers, help them to focus on the right tasks, and set expectations to help them be successful at Infrastructure team.}
\item {Migrated the orchestration system from DC/OS to Kubernetes which is based on AWS EKS. Managed 3 Kubernetes clusters and 300+ pods. Managed all Kubernetes manifests declaratively with Kustomize and ArgoCD.}
\item {Designed and managed complex network configurations on AWS with 4 VPC and 100+ subnets. Separated the development network and operation network according to financial regulations. Established dedicated network connections from AWS VPC to partners' on-premise network based on AWS Direct Connect with secure connection using IPsec VPN. Provisioned OpenVPN servers with LDAP integration.}
\item {Provisioned a observability system with Kafka, Elastic Stack(Filebeat, Heartbeat, APM Server, Logstash, Elasticsearch, Kibana). Collected log, uptime, tracing data from hosts, containers, pods and more. The ES cluster which has 9 nodes processed more than 1 billion documents per month. Wrote Terraform module to easily provision ES cluster on AWS EC2 instances.}
\item {Provisioned a monitoring system with Kafka, Telegraf, InfluxDB, Grafana. Collected metrics from hosts, containers, pods and more. Wrote Terraform module to easily provision InfluxDB with HA on AWS EC2 instances.}
\item {Introduced Kong API Gateway to easily connect all API microservices with a declarative management method based on Terraform and Atlantis to collaborate and audit change history.}
\item {Provisioned the Directory Service for employee identity management based on OpenLDAP which guarantees HA with multi-master replication.}
\item {Implemented Worker microservices consuming Kafka event topics for email, SMS, Kakaotalk and Slack notification. Developed in-house framework to easily build Kafka consumer microservice with common features including retry on failure, DLQ(Dead Letter Queue), event routing and more.}
\item {Introduced Elastic APM to help distributed tracing, trouble-shooting and performance testing in MSA.}
\end{cvitems}
}
%--------------------------------------------------------- %---------------------------------------------------------
\cventry \cventry
{Software Architect} % Job title {Software Architect} % Job title

View file

@ -7,7 +7,7 @@
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
% SUBSECTION TITLE % SUBSECTION TITLE
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\cvsubsection{International} \cvsubsection{International Awards}
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
@ -15,6 +15,20 @@
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\begin{cvhonors} \begin{cvhonors}
%---------------------------------------------------------
\cvhonor
{2nd Place} % Award
{AWS ASEAN AI/ML GameDay} % Event
{Online} % Location
{2021} % Date(s)
%---------------------------------------------------------
\cvhonor
{Finalist} % Award
{DEFCON 28th CTF Hacking Competition World Final} % Event
{Las Vegas, U.S.A} % Location
{2020} % Date(s)
%--------------------------------------------------------- %---------------------------------------------------------
\cvhonor \cvhonor
{Finalist} % Award {Finalist} % Award
@ -64,7 +78,7 @@
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
% SUBSECTION TITLE % SUBSECTION TITLE
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\cvsubsection{Domestic} \cvsubsection{Domestic Awards}
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
@ -72,6 +86,13 @@
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\begin{cvhonors} \begin{cvhonors}
%---------------------------------------------------------
\cvhonor
{2nd Place} % Award
{AWS Korea GameDay} % Event
{Seoul, S.Korea} % Location
{2021} % Date(s)
%--------------------------------------------------------- %---------------------------------------------------------
\cvhonor \cvhonor
{3rd Place} % Award {3rd Place} % Award
@ -130,3 +151,31 @@
%--------------------------------------------------------- %---------------------------------------------------------
\end{cvhonors} \end{cvhonors}
%-------------------------------------------------------------------------------
% SUBSECTION TITLE
%-------------------------------------------------------------------------------
\cvsubsection{Community}
%-------------------------------------------------------------------------------
% CONTENT
%-------------------------------------------------------------------------------
\begin{cvhonors}
%---------------------------------------------------------
\cvhonor
{AWS Community Builder (Container)} % Award
{Amazon Web Services (AWS)} % Event
{} % Location
{2022} % Date(s)
%---------------------------------------------------------
\cvhonor
{HashiCorp Ambassador} % Award
{HashiCorp} % Event
{} % Location
{2022} % Date(s)
%---------------------------------------------------------
\end{cvhonors}

View file

@ -1 +0,0 @@
../fonts

Binary file not shown.

View file

@ -23,15 +23,12 @@
% Configure page margins with geometry % Configure page margins with geometry
\geometry{left=1.4cm, top=.8cm, right=1.4cm, bottom=1.8cm, footskip=.5cm} \geometry{left=1.4cm, top=.8cm, right=1.4cm, bottom=1.8cm, footskip=.5cm}
% Specify the location of the included fonts
\fontdir[fonts/]
% Color for highlights % Color for highlights
% Awesome Colors: awesome-emerald, awesome-skyblue, awesome-red, awesome-pink, awesome-orange % Awesome Colors: awesome-emerald, awesome-skyblue, awesome-red, awesome-pink, awesome-orange
% awesome-nephritis, awesome-concrete, awesome-darknight % awesome-nephritis, awesome-concrete, awesome-darknight
\colorlet{awesome}{awesome-red} \colorlet{awesome}{awesome-red}
% Uncomment if you would like to specify your own color % Uncomment if you would like to specify your own color
% \definecolor{awesome}{HTML}{CA63A8} % \definecolor{awesome}{HTML}{3E6D9C}
% Colors for text % Colors for text
% Uncomment if you would like to specify your own color % Uncomment if you would like to specify your own color
@ -39,6 +36,7 @@
% \definecolor{text}{HTML}{333333} % \definecolor{text}{HTML}{333333}
% \definecolor{graytext}{HTML}{5D5D5D} % \definecolor{graytext}{HTML}{5D5D5D}
% \definecolor{lighttext}{HTML}{999999} % \definecolor{lighttext}{HTML}{999999}
% \definecolor{sectiondivider}{HTML}{5D5D5D}
% Set false if you don't want to highlight section with awesome color % Set false if you don't want to highlight section with awesome color
\setbool{acvSectionColorHighlight}{true} \setbool{acvSectionColorHighlight}{true}
@ -54,8 +52,8 @@
% Available options: circle|rectangle,edge/noedge,left/right % Available options: circle|rectangle,edge/noedge,left/right
% \photo[rectangle,edge,right]{./examples/profile} % \photo[rectangle,edge,right]{./examples/profile}
\name{Byungjin}{Park} \name{Byungjin}{Park}
\position{Software Architect{\enskip\cdotp\enskip}Security Expert} \position{Site Reliability Engineer{\enskip\cdotp\enskip}Software Architect}
\address{42-8, Bangbae-ro 15-gil, Seocho-gu, Seoul, 00681, Rep. of KOREA} \address{235, World Cup buk-ro, Mapo-gu, Seoul, 03936, Republic of Korea}
\mobile{(+82) 10-9030-1843} \mobile{(+82) 10-9030-1843}
\email{posquit0.bj@gmail.com} \email{posquit0.bj@gmail.com}
@ -70,6 +68,7 @@
% \reddit{reddit-id} % \reddit{reddit-id}
% \medium{madium-id} % \medium{madium-id}
% \kaggle{kaggle-id} % \kaggle{kaggle-id}
% \hackerrank{hackerrank-id}
% \googlescholar{googlescholar-id}{name-to-display} % \googlescholar{googlescholar-id}{name-to-display}
%% \firstname and \lastname will be used %% \firstname and \lastname will be used
% \googlescholar{googlescholar-id}{} % \googlescholar{googlescholar-id}{}
@ -100,11 +99,12 @@
\input{resume/summary.tex} \input{resume/summary.tex}
\input{resume/experience.tex} \input{resume/experience.tex}
\input{resume/honors.tex} \input{resume/honors.tex}
\input{resume/presentation.tex} \input{resume/certificates.tex}
\input{resume/writing.tex} % \input{resume/presentation.tex}
\input{resume/committees.tex} % \input{resume/writing.tex}
% \input{resume/committees.tex}
\input{resume/education.tex} \input{resume/education.tex}
\input{resume/extracurricular.tex} % \input{resume/extracurricular.tex}
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------

View file

@ -0,0 +1,62 @@
%-------------------------------------------------------------------------------
% SECTION TITLE
%-------------------------------------------------------------------------------
\cvsection{Certificates}
%-------------------------------------------------------------------------------
% CONTENT
%-------------------------------------------------------------------------------
\begin{cvhonors}
%---------------------------------------------------------
\cvhonor
{AWS Certified Advanced Networking - Specialty} % Name
{Amazon Web Services (AWS)} % Issuer
{} % Credential ID
{2023} % Date(s)
%---------------------------------------------------------
\cvhonor
{AWS Certified Security - Specialty} % Name
{Amazon Web Services (AWS)} % Issuer
{} % Credential ID
{2022} % Date(s)
%---------------------------------------------------------
\cvhonor
{AWS Certified Solutions Architect Professional} % Name
{Amazon Web Services (AWS)} % Issuer
{} % Credential ID
{2022} % Date(s)
%---------------------------------------------------------
\cvhonor
{AWS Certified SysOps Administrator Associate} % Name
{Amazon Web Services (AWS)} % Issuer
{} % Credential ID
{2021} % Date(s)
%---------------------------------------------------------
\cvhonor
{Certified Kubernetes Application Developer (CKAD)} % Name
{The Linux Foundation} % Issuer
{} % Credential ID
{2020} % Date(s)
%---------------------------------------------------------
\cvhonor
{HashiCorp Certified: Consul Associate (002)} % Name
{HashiCorp} % Issuer
{} % Credential ID
{2023} % Date(s)
%---------------------------------------------------------
\cvhonor
{HashiCorp Certified: Terraform Associate (003)} % Name
{HashiCorp} % Issuer
{} % Credential ID
{2023} % Date(s)
%---------------------------------------------------------
\end{cvhonors}

View file

@ -9,6 +9,62 @@
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\begin{cventries} \begin{cventries}
%---------------------------------------------------------
\cventry
{DevOps Engineer} % Job title
{Dunamu Inc.} % Organization
{Seoul, S.Korea} % Location
{Sep. 2023 - Present} % Date(s)
{
}
%---------------------------------------------------------
\cventry
{Founding Member \& Site Reliability Engineer \& Infrastructure Team Lead} % Job title
{Danggeun Pay Inc. (KarrotPay)} % Organization
{Seoul, S.Korea} % Location
{Mar. 2021 - Jun. 2023} % Date(s)
{
\begin{cvitems} % Description(s) of tasks/responsibilities
\item {Everything that matters.}
\item {Designed and provisioned the entire infrastructure on the AWS cloud to meet security compliance and acquire a business license for financial services in Korea.}
\item {Continuously improved the infrastructure architecture since launching the service. (currently 3.6 million users)}
\item {Established a standardized base for declarative management of infrastructures and service deployments, enabling operational efficiency and consistency. Over 90\% of AWS resources were all managed through standardized terraform modules. All add-ons and service workloads on the Kubernetes cluster were managed on a GitOps basis with Kustomize and ArgoCD.}
\item {Saved over 30\% of the overall AWS costs by establishing a quarterly purchasing strategiy for RI (Reserved Instance) and SP (Savings Plan) and by introducing Graviton instances.}
\item {Established a core architecture for regulating of outbound DNS traffic in multi-account and multi-VPC environments utilizing AWS Route53 DNS Firewall and FMS. This significantly increased the level of security confidence in the financial sector's segregated environment.}
\item {Introduced Okta employee identity solution in the company, establishing security policies and configuring SSO integration with over 20 enterprise systems including AWS, GitHub, Slack, Google Workspace. Set up a Hub and Spoke architecture, enabling a collaborative account structure with the parent company, Daangn Market.}
\end{cvitems}
}
%---------------------------------------------------------
\cventry
{Site Reliability Engineer} % Job title
{Danggeun Market Inc.} % Organization
{Seoul, S.Korea} % Location
{Feb. 2021 - Mar. 2021} % Date(s)
{
}
%---------------------------------------------------------
\cventry
{Founding Member \& Director of Infrastructure Division} % Job title
{Kasa} % Organization
{Seoul, S.Korea} % Location
{Jun. 2018 - Jan. 2021} % Date(s)
{
\begin{cvitems} % Description(s) of tasks/responsibilities
\item {Designed on-boarding process to guide new engineers, help them to focus on the right tasks, and set expectations to help them be successful at Infrastructure team.}
\item {Migrated the orchestration system from DC/OS to Kubernetes which is based on AWS EKS. Managed 3 Kubernetes clusters and 300+ pods. Managed all Kubernetes manifests declaratively with Kustomize and ArgoCD.}
\item {Designed and managed complex network configurations on AWS with 4 VPC and 100+ subnets. Separated the development network and operation network according to financial regulations. Established dedicated network connections from AWS VPC to partners' on-premise network based on AWS Direct Connect with secure connection using IPsec VPN. Provisioned OpenVPN servers with LDAP integration.}
\item {Provisioned a observability system with Kafka, Elastic Stack(Filebeat, Heartbeat, APM Server, Logstash, Elasticsearch, Kibana). Collected log, uptime, tracing data from hosts, containers, pods and more. The ES cluster which has 9 nodes processed more than 1 billion documents per month. Wrote Terraform module to easily provision ES cluster on AWS EC2 instances.}
\item {Provisioned a monitoring system with Kafka, Telegraf, InfluxDB, Grafana. Collected metrics from hosts, containers, pods and more. Wrote Terraform module to easily provision InfluxDB with HA on AWS EC2 instances.}
\item {Introduced Kong API Gateway to easily connect all API microservices with a declarative management method based on Terraform and Atlantis to collaborate and audit change history.}
\item {Provisioned the Directory Service for employee identity management based on OpenLDAP which guarantees HA with multi-master replication.}
\item {Implemented Worker microservices consuming Kafka event topics for email, SMS, Kakaotalk and Slack notification. Developed in-house framework to easily build Kafka consumer microservice with common features including retry on failure, DLQ(Dead Letter Queue), event routing and more.}
\item {Introduced Elastic APM to help distributed tracing, trouble-shooting and performance testing in MSA.}
\end{cvitems}
}
%--------------------------------------------------------- %---------------------------------------------------------
\cventry \cventry
{Software Architect} % Job title {Software Architect} % Job title
@ -49,22 +105,6 @@
{ {
\begin{cvitems} % Description(s) of tasks/responsibilities \begin{cvitems} % Description(s) of tasks/responsibilities
\item {Lead engineer on agent-less backtracking system that can discover client device's fingerprint(including public and private IP) independently of the Proxy, VPN and NAT.} \item {Lead engineer on agent-less backtracking system that can discover client device's fingerprint(including public and private IP) independently of the Proxy, VPN and NAT.}
\item {Implemented a distributed web stress test tool with high anonymity.}
\item {Implemented a military cooperation system which is web based real time messenger in Scala on Lift.}
\end{cvitems}
}
%---------------------------------------------------------
\cventry
{Game Developer Intern at Global Internship Program} % Job title
{NEXON} % Organization
{Seoul, S.Korea \& LA, U.S.A} % Location
{Jan. 2013 - Feb. 2013} % Date(s)
{
\begin{cvitems} % Description(s) of tasks/responsibilities
\item {Developed in Cocos2d-x an action puzzle game(Dragon Buster) targeting U.S. market.}
\item {Implemented API server which is communicating with game client and In-App Store, along with two other team members who wrote the game logic and designed game graphics.}
\item {Won the 2nd prize in final evaluation.}
\end{cvitems} \end{cvitems}
} }
@ -81,22 +121,5 @@
\end{cvitems} \end{cvitems}
} }
%---------------------------------------------------------
\cventry
{Freelance Penetration Tester} % Job title
{SAMSUNG Electronics} % Organization
{S.Korea} % Location
{Sep. 2013, Mar. 2011 - Oct. 2011} % Date(s)
{
\begin{cvitems} % Description(s) of tasks/responsibilities
\item {Conducted penetration testing on SAMSUNG KNOX, which is solution for enterprise mobile security.}
\item {Conducted penetration testing on SAMSUNG Smart TV.}
\end{cvitems}
%\begin{cvsubentries}
% \cvsubentry{}{KNOX(Solution for Enterprise Mobile Security) Penetration Testing}{Sep. 2013}{}
% \cvsubentry{}{Smart TV Penetration Testing}{Mar. 2011 - Oct. 2011}{}
%\end{cvsubentries}
}
%--------------------------------------------------------- %---------------------------------------------------------
\end{cventries} \end{cventries}

View file

@ -7,7 +7,7 @@
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
% SUBSECTION TITLE % SUBSECTION TITLE
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\cvsubsection{International} \cvsubsection{International Awards}
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
@ -15,6 +15,20 @@
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\begin{cvhonors} \begin{cvhonors}
%---------------------------------------------------------
\cvhonor
{2nd Place} % Award
{AWS ASEAN AI/ML GameDay} % Event
{Online} % Location
{2021} % Date(s)
%---------------------------------------------------------
\cvhonor
{Finalist} % Award
{DEFCON 28th CTF Hacking Competition World Final} % Event
{Las Vegas, U.S.A} % Location
{2020} % Date(s)
%--------------------------------------------------------- %---------------------------------------------------------
\cvhonor \cvhonor
{Finalist} % Award {Finalist} % Award
@ -57,7 +71,7 @@
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
% SUBSECTION TITLE % SUBSECTION TITLE
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\cvsubsection{Domestic} \cvsubsection{Domestic Awards}
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
@ -65,6 +79,13 @@
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\begin{cvhonors} \begin{cvhonors}
%---------------------------------------------------------
\cvhonor
{2nd Place} % Award
{AWS Korea GameDay} % Event
{Seoul, S.Korea} % Location
{2021} % Date(s)
%--------------------------------------------------------- %---------------------------------------------------------
\cvhonor \cvhonor
{3rd Place} % Award {3rd Place} % Award
@ -88,3 +109,38 @@
%--------------------------------------------------------- %---------------------------------------------------------
\end{cvhonors} \end{cvhonors}
%-------------------------------------------------------------------------------
% SUBSECTION TITLE
%-------------------------------------------------------------------------------
\cvsubsection{Community}
%-------------------------------------------------------------------------------
% CONTENT
%-------------------------------------------------------------------------------
\begin{cvhonors}
%---------------------------------------------------------
\cvhonor
{AWS Community Builder (Container)} % Award
{Amazon Web Services (AWS)} % Event
{} % Location
{2022 - } % Date(s)
%---------------------------------------------------------
\cvhonor
{HashiCorp Ambassador} % Award
{HashiCorp} % Event
{} % Location
{2022 - } % Date(s)
%---------------------------------------------------------
\cvhonor
{Organizer of HashiCorp Korea User Group} % Award
{HashiCorp} % Event
{} % Location
{2018 - } % Date(s)
%---------------------------------------------------------
\end{cvhonors}

View file

@ -10,5 +10,7 @@
\begin{cvparagraph} \begin{cvparagraph}
%--------------------------------------------------------- %---------------------------------------------------------
Current Site Reliability Engineer at start-up company Kasa. 7+ years experience specializing in the backend development, infrastructure automation, and computer hacking/security. Super nerd who loves Vim, Linux and OS X and enjoys to customize all of the development environment. Interested in devising a better problem-solving method for challenging tasks, and learning new technologies and tools if the need arises. DevOps Engineer at fintech \& blockchain company Dunamu which is known for operating Upbit, the largest cryptocurrency exchange in Korea. Have led growth at infrastructure departments in two fintech companies as lead engineer and founding member. 12+ years of diverse software engineering experience with specialties in software architecture design, infrastructure operation, backend development, and security engineering.
Love to contribute to open sources and tech communities by sharing knowledge and experience. Prefers a command line interface environment as a big fan of Vim, Linux, and macOS. Always trying to customize to find the most optimal environment. Interested in devising a better problem-solving method for challenging tasks, and learning new technologies and tools.
\end{cvparagraph} \end{cvparagraph}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.