230 lines
7.8 KiB
Plaintext
230 lines
7.8 KiB
Plaintext
|
#import "template.typ": *
|
|||
|
|
|||
|
#set page(margin: (
|
|||
|
left: 10mm,
|
|||
|
right: 10mm,
|
|||
|
top: 15mm,
|
|||
|
bottom: 15mm,
|
|||
|
))
|
|||
|
|
|||
|
#let linkify(lnk, txt, color: "#4273B0") = {
|
|||
|
underline(link(lnk, text(rgb(color), txt)))
|
|||
|
}
|
|||
|
|
|||
|
#set text(font: "Mulish")
|
|||
|
|
|||
|
#show: project.with(
|
|||
|
theme: rgb("#0F83C0"),
|
|||
|
name: "Tigor Hutasuhut",
|
|||
|
title: "Software Engineer",
|
|||
|
contact: (
|
|||
|
contact(
|
|||
|
text: "tigor.hutasuhut@gmail.com",
|
|||
|
link: "mailto:tigor.hutasuhut@gmail.com",
|
|||
|
),
|
|||
|
contact(
|
|||
|
text: "GitHub.com/tigorlazuardi",
|
|||
|
link: "https://www.github.com/tigorlazuardi",
|
|||
|
),
|
|||
|
contact(
|
|||
|
text: "LinkedIn.com/in/tigor-hutasuhut-00346463",
|
|||
|
link: "https://www.linkedin.com/in/tigor-hutasuhut-00346463/",
|
|||
|
),
|
|||
|
contact(
|
|||
|
text: "git.tigor.web.id",
|
|||
|
link: "https://git.tigor.web.id",
|
|||
|
),
|
|||
|
),
|
|||
|
main: (
|
|||
|
section(
|
|||
|
title: "Work Experience",
|
|||
|
content: (
|
|||
|
subSection(
|
|||
|
title: "Bareksa Marketplace Indonesia",
|
|||
|
titleEnd: "Jakarta, Indonesia",
|
|||
|
subTitle: "Software Engineer",
|
|||
|
subTitleEnd: [*November 2019 - Present*],
|
|||
|
),
|
|||
|
subSection(
|
|||
|
title: [#underline[Stock Project]],
|
|||
|
content: list(
|
|||
|
[
|
|||
|
Developed *high performance and cheap to scale _stateful_* Market Data streams infrastructure that can hold against
|
|||
|
*thousands of connections* without noticeable delay from IDX Burse data to consumer’s devices and can hold against
|
|||
|
irregular conditions like Market Panics.
|
|||
|
],
|
|||
|
[ Implemented high performance aggregators and runners for Market Data that can serve final data to users without delay. ],
|
|||
|
[ Collaborated with Frontend and Product teams to implement HTTP API and WebSocket for Stock Platform ],
|
|||
|
[ Main researcher and MVP provider to demo and integrate new technology stack to existing ones. ],
|
|||
|
),
|
|||
|
),
|
|||
|
subSection(
|
|||
|
title: [#underline[Internal Toolings]],
|
|||
|
content: list(
|
|||
|
[
|
|||
|
Developed and Maintain library for standardized logging, http body responses, metrics, and tracing integration to
|
|||
|
support faster debugs and performance review.
|
|||
|
],
|
|||
|
[
|
|||
|
Developed integration tool and library for easy integration of apps with secure secret management
|
|||
|
#underline(link("https://vault.hashicorp.com",text(rgb("#4273B0"),"Vault Hashicorp"))).
|
|||
|
],
|
|||
|
),
|
|||
|
),
|
|||
|
subSection(
|
|||
|
title: [#underline[SBN Project]],
|
|||
|
content: list(
|
|||
|
[ Implement HTTP APIs for integration with *_Kemenkeu_*],
|
|||
|
[ Create Cron Jobs to ensure the internal system is as close as possible to *_Kemenkeu_* system state. ],
|
|||
|
[ Transform *Sync* operation Buy/Sell process to *_Async_* infrastructure to support _backpressure_ when consumers rush to buy new SBN products. ],
|
|||
|
[ Create batch job runners to integrate and syncs data with *_Bina Artha_*. ],
|
|||
|
),
|
|||
|
),
|
|||
|
subSection(
|
|||
|
title: [#underline[Gold Project]],
|
|||
|
content: list(
|
|||
|
[ Implement HTTP APIs for integration with *_Pegadaian_*],
|
|||
|
[ Create Cron Jobs to ensure the internal system is as close as possible to *_Pegadaian_*'s open-loop system state. ],
|
|||
|
),
|
|||
|
),
|
|||
|
),
|
|||
|
),
|
|||
|
section(
|
|||
|
title: "Projects",
|
|||
|
content: (
|
|||
|
subSection(
|
|||
|
title: underline(
|
|||
|
link(
|
|||
|
"https://git.tigor.web.id/tigor/redmage",
|
|||
|
text(rgb("#4273B0"), "Redmage [WIP]"),
|
|||
|
),
|
|||
|
),
|
|||
|
content: list(
|
|||
|
[
|
|||
|
A performant image scraper and downloader for Reddit using Go for the backend and a
|
|||
|
combination of #linkify("https://github.com/a-h/templ", "templ"), #linkify("https://tailwindcss.com/", "Tailwind") #linkify("https://alpinejs.dev/", "AlpineJS"), and #linkify("https://htmx.org", "HTMX")
|
|||
|
for the interactive frontend.
|
|||
|
],
|
|||
|
[Designed with simplicity and easy deployments in-mind like output single binary and using SQLite for the database.],
|
|||
|
[Fault tolerant system with #underline(link("https://watermill.io/",text(rgb("#4273B0"),"Watermill"))) Pub/Sub library.],
|
|||
|
[Easy management of Schedulers, Devices, and Subreddits via it's Web UI.],
|
|||
|
[Demo: #linkify("https://redmage-demo.tigor.web.id", "https://redmage-demo.tigor.web.id")],
|
|||
|
),
|
|||
|
),
|
|||
|
subSection(
|
|||
|
title: underline(
|
|||
|
link(
|
|||
|
"https://git.tigor.web.id/tigor/nixos",
|
|||
|
text(rgb("#4273B0"), "Homeserver"),
|
|||
|
),
|
|||
|
),
|
|||
|
content: list(
|
|||
|
[
|
|||
|
A self-host, on-prem machine. Using #linkify("https://podman.io/", "Podman") for the containerization,
|
|||
|
#linkify("https://caddyserver.com", "Caddy") for the reverse proxy
|
|||
|
and #linkify("https://nixos.org", "NixOS") for the OS and
|
|||
|
#linkify("https://git.tigor.web.id/tigor/NixOS/src/branch/main/system/podman", "declarative configuration of Podman containers and Caddy virtual hosts").
|
|||
|
.
|
|||
|
],
|
|||
|
[
|
|||
|
Hosts over many services, like
|
|||
|
#linkify("https://git.tigor.web.id", "Git Server and its CI Runners (Forgejo)"),
|
|||
|
#linkify("https://nextcloud.tigor.web.id", "Nextcloud"),
|
|||
|
#linkify("https://qbittorrent.tigor.web.id", "Seedbox (Qbittorrent)").
|
|||
|
#linkify("https://pihole.tigor.web.id", "Pihole (DNS Management, Ad Blocker, and DHCP Server)"),
|
|||
|
#linkify("https://jellyfin.tigor.web.id", "Mediaserver (Jellyfin)"),
|
|||
|
OpenVPN.
|
|||
|
],
|
|||
|
),
|
|||
|
),
|
|||
|
subSection(
|
|||
|
title: underline(
|
|||
|
link(
|
|||
|
"https://git.tigor.web.id/tigor/nixos",
|
|||
|
text(rgb("#4273B0"), "NixOS"),
|
|||
|
),
|
|||
|
),
|
|||
|
content: list(
|
|||
|
[
|
|||
|
#linkify("https://nixos.org", "NixOS") Configuration for homeserver and devices.
|
|||
|
],
|
|||
|
[
|
|||
|
The declarative nature of NixOS allows for easy reproducibility on hardware failures,
|
|||
|
lock-file system to ensure the same dependencies installed across instances,
|
|||
|
and a generation system allows rollback on os failures, thus ensuring a very robust and stable system.
|
|||
|
],
|
|||
|
),
|
|||
|
),
|
|||
|
),
|
|||
|
),
|
|||
|
section(
|
|||
|
title: "Skills",
|
|||
|
content: (
|
|||
|
subSection(
|
|||
|
title: "Languages",
|
|||
|
content: (
|
|||
|
"Go",
|
|||
|
"Typescript",
|
|||
|
"Javascript",
|
|||
|
"Lua",
|
|||
|
"Nix",
|
|||
|
"Rust",
|
|||
|
"Java",
|
|||
|
"SQL",
|
|||
|
"HTML",
|
|||
|
"CSS",
|
|||
|
).join(" • "),
|
|||
|
),
|
|||
|
subSection(
|
|||
|
title: "Technologies",
|
|||
|
content: (
|
|||
|
"Kafka",
|
|||
|
"Postgresql",
|
|||
|
"MongoDB",
|
|||
|
"InfluxDB",
|
|||
|
"Docker",
|
|||
|
"Kubernetes",
|
|||
|
"Gitlab CI/CD",
|
|||
|
"Github Actions",
|
|||
|
"NixOS",
|
|||
|
"Neovim",
|
|||
|
"NodeJS",
|
|||
|
"Git",
|
|||
|
"Hashicorp Vault",
|
|||
|
"Redis",
|
|||
|
"HTMX",
|
|||
|
"Tailwind",
|
|||
|
"React",
|
|||
|
"NextJS",
|
|||
|
"WebExtension",
|
|||
|
).join(" • "),
|
|||
|
),
|
|||
|
),
|
|||
|
),
|
|||
|
section(
|
|||
|
title: "Education",
|
|||
|
content: (
|
|||
|
subSection(
|
|||
|
title: [
|
|||
|
#set par(justify: false)
|
|||
|
University of Indonesia
|
|||
|
],
|
|||
|
subTitle: "Bachelor of Economics",
|
|||
|
content: [
|
|||
|
],
|
|||
|
),
|
|||
|
subSection(
|
|||
|
title: [
|
|||
|
#set par(justify: false)
|
|||
|
Hacktiv8 Indonesia
|
|||
|
],
|
|||
|
subTitle: "Fullstack Javascript Immersive Bootcamp",
|
|||
|
content: [
|
|||
|
],
|
|||
|
),
|
|||
|
),
|
|||
|
),
|
|||
|
),
|
|||
|
)
|
|||
|
|