#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: [ ], ), ), ), ), )