Skip to the content.

01 — About

After years in field sales and delivery, I build software that helps people take their next step.

I started from small learning repositories and grew step by step toward real, usable tools. Guided by the idea of "going beyond delivering information to driving action," I focus on software — disaster evacuation guidance, API tooling, dependency-risk checks — that helps users act.

Python Streamlit, Pandas, Folium Rust egui/eframe Go GitHub CLI DevOps GitHub Actions AI MCP, agent tooling

02 — Experience & Background

Experience & Background

2016.07 – 2017.07, 2022.04 – 2025.04 — ~4 years total
Sales Management, Materials Delivery — Hyosang Safety Trading

At a company supplying materials and safety equipment to construction sites, I started in materials delivery and grew into sales management over about four years. I handled clients directly, coordinated schedules, inventory and deadlines, and turned on-site needs into process and data.

  • 2022.04 – 2025.04 Sales management + materials delivery — client sales management, schedule and inventory coordination, direct customer handling
  • 2016.07 – 2017.07 Materials delivery — on-site construction materials delivery
2017.07 – 2018.07
Exchange Student (language study) — UNAM CEPE, National Autonomous University of Mexico

Spent a year as an exchange student at UNAM's Centre for Teaching Foreigners (CEPE) studying Spanish and Mexican culture — learning to adapt quickly and communicate across languages and cultures.

Licenses & Certifications
🚜 Excavator Operation 🏗️ Forklift Operation 🚛 Class 1 Large Vehicle License

Featured Project 01

Real-time Disaster Evacuation Dashboard

rad1092/project_dashboard
4-person team — Backend / Architecture lead
PythonStreamlitPandasFoliumOSRMSeleniumSQLitepytest

A disaster alert tells you "that" something happened — I built a dashboard that answers "where and how do I evacuate right now."

4-personteam, backend / architecture lead
4multi-page app
5regions supported (Yeongnam)
AIMuch of the stack was new to me, so I leaned on AI tools to ramp up implementation quickly. This is where I built the practical muscle of learning a new tool on the job and driving it with AI as a partner.

The problem

A disaster alert only says something happened; shelter and alert data were scattered, making it hard to decide quickly in a crisis. Because the service combines static public data, real-time alerts, user location and an external routing API, the real challenge wasn't visualization but a structure that loads data reliably, recommends shelters, and finds routes without breaking.

My role — 4-person team, backend / architecture

  • Owned the overall dashboard architecture
  • Designed and built data-path management, CSV validation and normalization, real-time alert handling, the shelter recommendation logic, and OSRM routing with failure fallback
  • Led core feature work including map visualization and the test setup

What I did

  • Resilient data loading — a layer searching environment variables → Streamlit secrets → repo default paths in order, handling Korean CSV encoding and required-column validation
  • Recommendation engine — disaster-type-specific shelter priority → region-level fallback → Haversine distance → capacity-based sorting
  • Real-time and mock data — a Selenium crawler collects alerts and converts them to the app's standard schema; a mock-alert generator covers cases where crawling isn't possible
  • Route guidance — OSRM walking routes, with an automatic straight-line fallback when the API fails
  • Structure and testing — a consistent Streamlit multi-page app (Home, Simulation, Real-time, Analysis) with a Folium map showing location, shelters and route together; pytest validates routing, session state and page imports

Result

  • Users get shelter recommendations matched to disaster type and location, and the flow keeps working via fallback routes and mock data even when the external API or live crawling fails
  • It grew from a simple Streamlit visualization into a structure covering data processing, recommendation, real-time collection and failure handling
  • A working dashboard with Folium, OSRM and Streamlit actually wired together — new tools learned fast and applied in practice

Featured Project 02

API to a local MCP tool · FirstCall

rad1092/firstcall-local-api-workbench
Solo project · v0.3.1 · Apple Silicon macOS
Rustegui / eframefirstcall-cliMCP

Turn an API request into a tool an AI client can actually call: import, verify, describe and export a local MCP connection.

For developers connecting existing APIs to AI workflows. FirstCall accepts curl or OpenAPI, separates authentication from tool inputs, and runs the exported tool through its bundled native CLI.

2Request sources — curl and OpenAPI
2Use through desktop GUI or CLI
1Current binary target — Apple Silicon macOS
AII used Claude as a pair-programming partner for the Rust core, handling many input formats, tests and docs. I decided what to build and which rules to hold; AI sped up the repetitive implementation and edge-case checking.

The problem

An HTTP request needs more than a URL to become a useful AI tool: a tested operation, understandable inputs and an explicit connection. FirstCall keeps request history and recipes locally while verification and tool calls connect to the API you choose.

The workflow

Read a request, enter its inputs, and send a real verification call. Then describe the tool and export a new MCP package. Add its server entry to your client and supply authentication through that client’s environment. The companion runtime is included; desktop exports need no generated-code build or npm setup.

What changed in v0.3.1

Blank optional query and header inputs are omitted from the request; provided values and required-input checks are retained. After moving a package or the app, connect --package emits an updated absolute-path configuration without rewriting the package or calling the API.

Scope and a reproducible start

v0.3.1 provides an Apple Silicon macOS app and CLI with ad-hoc integrity signing, without Apple notarization. Start with Try an example to verify a public GitHub repository lookup and export it as an MCP tool. The runtime defaults to GET/HEAD; writes require explicit opt-in. Current Windows, Linux and Intel Mac binaries are not included.

Featured Project 03

PR Dependency Risk Check · gh-dep-risk

rad1092/gh-dependency-risk
Solo project · v0.2.0 release
GoGitHub CLI ExtensionDependency Review APIGitHub Actions

A tool that lets a reviewer check, with one command, whether newly added third-party libraries in a PR are a security risk.

11ecosystems checked (npm, pip, Go, Maven…)
1install = a single command
0servers, DB, standing infra
AII used AI to organize the different ways each tool records its libraries (npm, pip, Go…) and to cover edge cases with tests quickly. I personally decided the scope — what to support and what to explicitly leave out.

The problem

Modern software pulls in dozens or hundreds of external libraries, and if one has a vulnerability the whole thing is at risk. Reviewers struggled to gauge that risk during code review, yet running an always-on server / database was too heavy for small teams.

My role — solo project, design to release

  • Aimed for a lightweight tool reviewers run only when needed, with no setup or upkeep
  • Designed it to reuse the GitHub login they already have so it runs immediately
  • Decided to help the reviewer judge without failing CI

What I did

  • Built it as a GitHub CLI extension (one small binary) instead of a server — installation is a single line
  • Uses GitHub's official security data first, switching to a local fallback that reads project files only when the API isn't available
  • Scoped support explicitly (npm, pip, Go and more), documenting what's covered so over-analysis never produces wrong results
  • Posts results as a clean PR comment (updated, not duplicated), verified with automated tests plus live smoke tests against real fixture PRs across npm, pnpm and Yarn

Result

  • Installable in one line: gh extension install rad1092/gh-dep-risk
  • Checks library risk across 11 ecosystems (npm, pip, Go, Maven and more)
  • A lightweight way to review security inside the code-review flow, without stopping CI

2026.10 — Open source

Tools and recent updates

Nine projects for concrete tasks: connecting APIs, reviewing documents and files, planning work, and testing or debugging software. Each links to its current public release and a reproducible starting point. Preview releases and platform limits are stated in the project guides.

FC↗

FirstCall

For developers connecting APIs to AI clients: verify curl or OpenAPI requests, describe the tool and its inputs, and export a local MCP connection. v0.3.1 targets Apple Silicon macOS.

Rust · GUI · CLI · MCP
AN↗

Annotrail

PDF annotation transfer

For readers comparing paper drafts or course notes: match embedded highlights and comments to a revised PDF, review each suggestion, and export approved annotations to a new file.

Java · PDFBox
CB↗

ConflictBench

Syncthing conflict review

For Syncthing users: compare conflict files as text, images or metadata, then choose to keep the original, use the conflict, or keep both, with backups outside the synced folder.

C++ · Qt
SS↗

ShopShift

For a small shop’s planner: import ERP CSV/XLSX exports, preserve manual starts and locks across reimports, inspect schedule conflicts, and compare daily-plan scenarios offline.

Python · PySide6 · OR-Tools
TP↗

Treeport

For export and packaging pipelines: check directory trees, ZIP entries or JSONL manifests for destination name collisions and path budgets without renaming, copying or extracting files.

Go · CLI
LC↗

Lifecase

For applications that run subprocesses: use controlled native fixtures to test exit, stdout/stderr EOF, cancellation and descendant cleanup, with a .NET/CliWrap example and optional Go verifier.

C++ · .NET · Go
PS↗

PaperStager

For people organizing PDF batches: mark document boundaries with page thumbnails, review names suggested by text rules, and approve an export of separate PDFs plus a manifest.

C# · Avalonia
SP↗

SerdeProof

For Java teams upgrading serializers: run real DTOs, mapper settings and a payload corpus in separate JVMs, comparing accepted inputs, JSON changes and four producer–consumer combinations.

Java 17 · CLI
MA↗

Matcha

For homebrew developers and emulator learners: inspect Game Boy CPU, memory and video, replay saved state, and drive repeatable debugging sessions through MCP. Some DMG/CGB timing remains unsupported.

Rust · WASM · MCP

Compare the tools at WHAGO ↗

More

Other Work

🦺↗

Construction-Site PPE Detection

Detects hardhats and safety vests on workers in photos, video and webcam feeds — person-box-based post-processing cuts false positives and tracks per-worker status

PythonYOLOGradioOpenCV
📈↗

SEC Filing Alert Inbox

Watches US SEC filings (8-K, Form 4) for a focused watchlist, shows why each one was flagged, and routes signals to Slack, webhooks or email — fully self-hosted

PythonSQLiteDocker
🪞↗

Smart Mirror AIoT Workout Coaching

An integrated repo wiring a display, a vision gateway and an AI coaching engine — connecting pose analysis, routine generation and real-time coaching

PythonWebSocketSQLiteAIoT
🔌↗

FirstCall API Lookup MCP

A read-only MCP server generated from FirstCall, exposing a single public-user-lookup tool an AI agent can use right away

TypeScriptMCPNode
🧭↗

Job-Coach Agent

Enter a target role and it runs the whole flow — job search, analysis report, cover-letter draft, interview prep, and a roadmap to landing the job

StreamlitFastAPISQLite
⌨️↗

ASCII Diagram Editor

A browser-based ASCII diagram editor — draw on a fixed grid and render the result into real text

TypeScriptViteClient-side

See everything on the repositories page

Contact

Let's work together

I'm always open to new collaborations and project ideas — feel free to reach out

Built with Jekyll · Designed & developed by HongDae Kim — with a little help from AI