Overview
Technical skills
Projects
Timeline
Roles

Overview

C++ and JavaScript developer (Senior-level) specializing in real-time computer vision pipelines and interactive web applications for spatial/XR tooling. The strongest proven skill is building a modular monocular visual-geometry pipeline, evidenced by src/processors/MotionEstimationProcessor.cpp, src/visualization/SpatialVisualizer.cpp and src/tests/TUMTest.cpp. There is little to no public evidence of authored GPU shaders, low-level graphics pipelines, deterministic simulation frameworks or production-grade profiling and benchmarks.

Technical skills

Languages
8
Java
C++
JavaScript
Swift
C
Python
C#
Node JS
C++
4
STL
OpenGL
CMake
PyTorch C++
Mobile
7
SwiftUI
ARKit
UIKit
AVFoundation
CryptoKit
Core Graphics
Core Image
Other
13
Swift Concurrency
OpenCV
PyTorch
Unity
Rest API
Figma
GitHub
Repository Pattern
Adobe Photoshop
Shader Graph
Blender
Substance 3D Painter
ZBrush

Projects

Avatar Playground
Jul 2026 to Aug 2026 1 Month

Built a modular C++17/OpenCV monocular visual odometry and 3D reconstruction pipeline including feature matching, pose estimation with essential matrix + RANSAC, and PnP-based localization. Implemented sparse mapping and camera trajectory estimation, then validated it on the TUM RGB-D benchmark. Currently extending the approach toward parametric human mesh recovery.

C++
OpenCV
Gamedev teams workflow tool
Apr 2026 to Jun 2026 2 Months

Founded a workflow tool aimed at supporting cross-discipline game production pipelines across art and development. The focus is to streamline production processes and improve coordination between teams involved in building real-time game content.

Python
Discord
Claude Code
Evacuation Order (Jeju 4.3) interactive installation
Sep 2025 to Jan 2026 4 Months

Served as a technical artist for an interactive 3D installation directed by Lim Heung-soon for Jeju 4.3. Contributed to building and implementing interactive 3D elements required for the installation experience.

Unity
Memory Shower
Jun 2024 to Dec 2024 6 Months

Worked as a technical artist on an interactive experience for the Jeju 4.3 theme. Contributed to a 2D platformer concept connected to the film, handling the technical side of delivering interactive scenes and assets.

Unity

Timeline

Technical Artist • Middle
Skonec Entertainment • Full-Time
Apr 2024 to Jan 2026 1 Year 9 Months Seoul In office
Developed interactive real-time custom shaders and optimized rendering performance by reducing draw calls up to 4x while maintaining stable 70 FPS. Designed avatar customization UI and added an MR snapshot feature. Produced game-ready 3D/2D assets, reducing production time from weeks/months to about 1 week using AI tools.
Korea Advanced Institute of Science and Technology (KAIST)
Master's Degree
2021–2024 Daejeon, South Korea
Graduate Research Student (LAVA Lab) • Middle
KAIST • Full-Time
Sep 2021 to Feb 2024 2 Years 5 Months Daejeon In office
Set up and evaluated FLAME-based audio-driven facial animation, analyzing failure modes related to emotional expressiveness. Proposed audio-to-motion reconstruction using piano performance to drive virtual pianist motion. Synchronized audio and mocap data using onset-peak alignment to build an audio-to-motion visualization.
National Research University Higher School of Economics
Bachelor's Degree • Computer Engineering, Intelligent Robotics
2017–2021 Moscow, Russia
Junior Java Software Developer • Junior
CROC • Full-Time
Sep 2019 to Dec 2019 3 Months Moscow In office
Built real-time data collection and Java processing logic for medical hardware. Developed an interactive web interface using Vue.js to visualize hardware data. Collaborated on implementation of client-side visualization features for operational monitoring.
Java
Vue.js
Senior Mobile Developer Confidence: High iOS Engineer
iOS engineer at a Senior level specializing in camera-first AR experiences and careful Swift concurrency. The strongest proven skill is building an on-device visual recognition pipeline and AR session management as implemented in EmbeddingObjectRecognitionService.swift and ARSessionManager.swift. There is little public evidence of release automation, staged rollouts, or instrumented performance profiling and limited test coverage for large subsystems.
Platform Native Mastery
6/10
Knowing the mobile platform
Strong native platform mastery for Apple platforms: correct ARKit session lifecycle handling, structured concurrency with Tasks/AsyncStream and explicit cancellation and deinit cleanup, plus platform file-access patterns (security-scoped URLs).
Evidence
PhygitalMemories/ObjectsWithMemories/AR/ARSessionManager.swift: uses ARSessionDelegate, starts/stops session, spawns Task to consume recognitionEvents and cancels in deinit
PhygitalMemories/ObjectsWithMemories/Recognition/Embedding/EmbeddingObjectRecognitionService.swift: uses AsyncStream for recognitionEvents, pollTask with Task cancellation and controlled pollInterval
PhygitalMemories/ObjectsWithMemories/Features/ProductMode/RegisterObjectSheet.swift: fileImporter and loadAudio uses startAccessingSecurityScopedResource()/stopAccessingSecurityScopedResource()
Mobile UI/UX & Responsiveness
6/10
Smooth mobile experience
Good UI/UX and responsiveness on native UIs: thoughtful SwiftUI patterns to avoid expensive re-creation, TimelineView-based animations, hover debouncing and preserving heavy views (WKWebView) instead of recreating them.
Evidence
catgpt/gptWidget/ChatWebView.swift: preserves WKWebView, shares WKProcessPool and injects JS to monitor streaming activity
catgpt/gptWidget/CharacterView.swift: keeps ChatOverlayView mounted to avoid WKWebView reloads and uses debounced hover logic
catgpt/gptWidget/HoverTransitionView.swift: TimelineView-based sprite animation with clamped frames to avoid timers firing during mouse tracking
Performance & Battery
5/10
Speed and battery use
Performance-aware engineering with concrete tradeoffs (polling cadence instead of per-frame Vision requests, FPS tracking, task cancellation), but no instrumented before/after measurements or profiling artifacts present.
Evidence
PhygitalMemories/ObjectsWithMemories/Recognition/Embedding/EmbeddingObjectRecognitionService.swift: comments and implementation choosing polling interval to avoid per-frame Vision requests
PhygitalMemories/ObjectsWithMemories/AR/ARSessionManager.swift: tracks fps, detection latency and logs recognition events
PhygitalMemories/ObjectsWithMemories/Features/ObjectRegistrationExperiment/EmbeddingExperimentView.swift: stress test loop and Timeouts used to validate recognition under load
Offline & Data Sync
3/10
Working offline and syncing
Basic local persistence and repository abstractions are implemented (file-backed repositories), but there is no evidence of offline-first sync, conflict resolution, queued idempotent retries or network-edge handling.
Evidence
PhygitalMemories/ObjectsWithMemories/Persistence/FileManagerMemoryRepository.swift: file-based memory storage and CRUD operations
PhygitalMemories/ObjectsWithMemories/Persistence/FileManagerObjectRegistrationRepository.swift: file-backed object registration, photo write/read APIs
PhygitalMemories/ObjectsWithMemories/Persistence/MemoryRepository.swift: repository protocol abstraction
Device Integration
5/10
Using device features
Solid device integration with ARKit, RealityKit, Vision, Photos picker and AVFoundation usage and some edge-case handling (security-scoped resources), but full permission-denial flows and settings redirects are not shown.
Evidence
PhygitalMemories/ObjectsWithMemories/AR/ARCameraView.swift and ProductARCameraView.swift: RealityKit/ARKit-based camera views and placement logic
PhygitalMemories/ObjectsWithMemories/Recognition/Embedding/EmbeddingMatcher.swift: Vision/CoreVideo/CoreGraphics usage for embedding extraction
PhygitalMemories/ObjectsWithMemories/Features/ProductMode/EditObjectView.swift: PhotosPicker and file-importer usage; loadAudio uses security-scoped access
Release & App Lifecycle
2/10
Building and publishing apps
Minimal release and lifecycle infra visible: only app delegate and app-level comments; no CI, fastlane, signing configs, ProGuard/R8 analogs or crash-reporting/rollout artifacts are present.
Evidence
catgpt/gptWidget/AppDelegate.swift: macOS floating panel setup and comments about Info.plist agent flag
Expertise
iOS• Senior
Technologies
Swift• Senior
UIKit
SwiftUI
ARKit
Swift Concurrency
Repository Pattern
AVFoundation
CryptoKit
Core Graphics
Core Image
Recommendations
  • Ship or extend camera-first AR features that require on-device recognition, embedding matchers and AR session lifecycle work.
  • Lead prototype-to-product iterations that need careful concurrency, task cancellation and local persistence for iOS apps.
  • Implement native macOS integrations involving WKWebView and SwiftUI (floating panels, persistent web sessions) and optimize their UX.
Repositories
The developer's experience in this domain has been verified based on AI analysis of the following repositories:
Senior Game Developer Confidence: High Engine & Graphics Engineer
C++ and JavaScript developer (Senior-level) specializing in real-time computer vision pipelines and interactive web applications for spatial/XR tooling. The strongest proven skill is building a modular monocular visual-geometry pipeline, evidenced by src/processors/MotionEstimationProcessor.cpp, src/visualization/SpatialVisualizer.cpp and src/tests/TUMTest.cpp. There is little to no public evidence of authored GPU shaders, low-level graphics pipelines, deterministic simulation frameworks or production-grade profiling and benchmarks.
Gameplay Systems & Mechanics
2/10
How game logic works
Small-scale interactive study/game-like systems exist (swipe/type/test modes and Leitner memo), but there is no evidence of game-specific mechanics design or complex state-machine-driven gameplay beyond standard UI flows.
Evidence
sadong-flashcards/js/study.js: S and T objects implementing swipe/type session state machines and review queue logic
sadong-flashcards/js/memo.js: Leitner memo session construction and scheduling (memoStartSession, memoCards persistence)
Graphics & Rendering
5/10
Drawing game visuals
Custom visualization and framing logic for 3D point clouds and camera trajectories using OpenCV Viz shows practical rendering/principles knowledge, but there are no authored GPU shaders or custom render pipelines.
Evidence
AvatarPlayground/src/visualization/SpatialVisualizer.cpp: point cloud widget creation, automatic framing, camera trajectory widgets and screenshot saving
AvatarPlayground/src/SpatialDemo.cpp: integration of visualization with VO, triangulation and map updates for rendered scenes
Physics & Math
5/10
Game physics and math
Solid applied math and geometry for visual odometry and pose estimation (quaternions, essential matrix, recoverPose, triangulation); deterministic simulation or custom physics integrators are not present.
Evidence
AvatarPlayground/src/tests/TUMTest.cpp: quaternionToRotation and rotationErrorDegrees for pose evaluation against TUM ground truth
AvatarPlayground/src/processors/MotionEstimationProcessor.cpp: essential matrix estimation, recoverPose usage and median parallax computation
Engine Proficiency
5/10
Skill with the game engine
Good practical engine/tooling usage: modular C++ project structure, CMake with multiple test/executable targets, ProcessorManager abstraction and separate processors indicate deliberate architecture and tooling competence in native code.
Evidence
AvatarPlayground/CMakeLists.txt: multiple executables (SpatialAvatarPlayground, PnPTest, TUMTest, SpatialDemo) and include/link setup
AvatarPlayground/include/ProcessorManager.h + src/ProcessorManager.cpp (usage in main.cpp and SpatialDemo.cpp): modular processor plugin architecture
Performance & Frame Budget
3/10
Keeping the game smooth
Attention to algorithmic costs (nth_element median, reserve) and stepping through frames reduces workload, but there are no measured profiler captures, zero-alloc hot-paths, pooling strategies or explicit frame-budget instrumentation.
Evidence
AvatarPlayground/src/processors/MotionEstimationProcessor.cpp: uses std::vector::reserve, nth_element for median computation and explicit frame-step logic
AvatarPlayground/src/tests/TUMTest.cpp: FRAME_STEP constant used to reduce processed frames for offline evaluation
Content Pipeline & Tooling
4/10
Tools for game content
Project contains developer-facing tooling and docs, CMake targets for tests/demos, and a full-featured JS content pipeline for the flashcards app including import/export and Supabase sync stubs, but no CI or automated multi-platform pipelines.
Evidence
AvatarPlayground/CMakeLists.txt: test and demo targets, organized include and link directives
sadong-flashcards/js/import.js + js/sets.js: JSON import/export, NIKL lookup integration and cloudUpsert hooks for content pipeline
Verified artifacts
Expertise
Game Development Tools & Pipeline• Middle
Industries
Gaming• Middle
Technologies
JavaScript• Senior
C• Senior
C++• Senior
Unity
CMake
PyTorch C++
OpenGL
STL
Shader Graph
Recommendations
  • Develop real-time perception and mapping modules for XR/avatar systems (visual odometry, PnP, triangulation and visualization).
  • Build tools and editor plugins that expose spatial mapping results to designers (map exporters, visualization inspectors, automated test harnesses).
  • Implement performance instrumentation and profiling-guided optimizations on hot paths (zero-alloc patterns, caching, measured before/after results).
  • Extend the JS content pipeline into designer-facing tooling (import/export integrations, validation, and CI for data migrations).
Repositories
The developer's experience in this domain has been verified based on AI analysis of the following repositories:
Middle Backend Developer Confidence: Medium API Engineer
Mid-level developer focused on client-facing web apps and robotics prototyping with a strength in building offline-first UX and algorithmic components. The strongest proven skill is implementing offline-first synchronization and spaced-repetition learning logic as implemented in memo mode (sadong-flashcards/js/memo.js) including local caching with TTL, optimistic updates and background Supabase sync. There is little public evidence of production backend infrastructure work such as migration histories, service-side testing, or multi-service distributed system design.
API Design
3/10
How well APIs are designed
Practical API integration with Supabase shown (upsert/onConflict, select, RPC) and timeouts, but no formal API versioning, standardized error contracts, or idempotency key strategy beyond upsert usage.
Evidence
sadong-flashcards/js/memo.js: memoUpsertCard uses sb.from('memo_cards').upsert(..., { onConflict: 'user_id,folder_local_id,word_key' })
sadong-flashcards/js/memo.js: memoFetchCards uses sb.from('memo_cards').select(...) and wraps call in Promise.race to implement a client-side timeout
sadong-flashcards/js/app.js: checkShareParam calls cloudFetchPublicFolder and gates import behavior on userIsSignedIn
Data Layer & Database
3/10
Working with databases
Shows thoughtful client-side data layering and DB usage (local cache with TTL, optimistic cache patches, batched inserts), but no server-side migration history, transaction boundaries or explicit SQL tuning are present in public code.
Evidence
sadong-flashcards/js/memo.js: memoCardsCache_load/save implement a 7-day TTL and memoCardsCache_patch updates cache before DB sync
sadong-flashcards/js/memo.js: memoBulkInsert implements batching (batchSize=100) and Promise.race timeouts for insert operations
sadong-flashcards/js/memo.js: memoFetchBoxFiveCount uses sb.from(...).select(..., { count: 'exact', head: true }) to get counts
Scalability & Performance
3/10
Handling load and speed
Performance-conscious patterns at the application boundary are evident - local caching, batching, debounce and client-side timeouts - but no evidence of load-testing, distributed caching, or advanced rate-limiting strategies.
Evidence
sadong-flashcards/js/memo.js: memoCardsCache_* functions with TTL; memoBulkInsert batching and timeouts
sadong-flashcards/js/app.js: debounce utility and shuffle used to manage UI/workload; star canvas uses adaptive star count generation
System Architecture
3/10
Overall system structure
Clear modular separation across client modules (app, memo, sets, study, test) and a local-first sync architecture (local cache then background DB writes), but no multi-service decomposition, inter-service contracts or centralized config/secret management shown.
Evidence
sadong-flashcards/js/: distinct modules such as memo.js, sets.js, app.js implementing separate responsibilities
sadong-flashcards/js/memo.js: openMemoMode -> memoFetchCards -> local cache fast path then remote fetch slow path demonstrates local-first sync architecture
Security & Auth
3/10
Protecting data and access
Security-conscious choices at the input/UI boundary are present (HTML escaping, auth gating, conservative local storage usage), but there is limited evidence of hardened server-side auth lifecycle, dependency audit, or SSRF/SQL injection threat modeling in server code.
Evidence
sadong-flashcards/js/app.js: escHtml used widely to escape user-provided strings before DOM insertion
sadong-flashcards/js/memo.js: openMemoMode checks Supabase session and gates operations on userIsSignedIn; memoUpsertCard uses onConflict/upsert to avoid duplicate writes
Reliability & Observability
3/10
Stability and monitoring
Reliability patterns such as client-side timeouts, try/catch logging, optimistic cache updates and background persistence are implemented, however there are no structured tracing/correlation ids, backoff/retry policies with jitter, or alerting/metrics artifacts in public code.
Evidence
sadong-flashcards/js/memo.js: Promise.race timeouts in memoFetchCards and memoBulkInsert with console.error on timeout
sadong-flashcards/js/memo.js: memoUpsertCard applies optimistic cache update (memoCardsCache_patch) and persists to DB asynchronously, logging DB errors in .then/.catch
Expertise
Python• Middle
Node.js• Middle
Industries
Education• Middle
Robotics• Middle
Technologies
Python• Middle
C#• Middle
Node JS• Middle
Rest API
Recommendations
  • Build and evolve client-facing web products that need offline-first sync, user-facing caching and background persistence (expand server-side APIs and add robust migrations).
  • Develop educational learning features and spaced-repetition systems or mobile/web learning apps leveraging the memo/Leitner design and local-first UX patterns.
  • Prototype kinematics and robotics simulation components in Unity where FK/IK numerical methods and telemetry/debug visualizations are required.
Repositories
The developer's experience in this domain has been verified based on AI analysis of the following repositories: