BNI is me. Tech is what I build with. Lab is where I work on it. Not a company.
My lab, by Dawn. From my first game in 2011 to what I am working on today. You are welcome to look around.
172 things since 2011 · 40 running · 49 finished · 5 from idea meetings
Data changed 2026-10-31 · page built 2026-11-06
Docs, notes and services54 made
2015 to 2026 · used in 9 of 16 years
Markdown 17 · Discord webhook 5 · PowerPoint 5 · Public data 4 · Evernote 3 · CSV 2 · Google Sheets 2 · Notion 2 · AsciiDoc 1 · Association rules 1 · Confluence 1 · Gerrit 1 · Gmail connector 1 · Google Calendar connector 1 · Google Docs 1 · Google Drive 1 · Jekyll 1 · Leitner boxes 1 · Markdown corpus 1 · Markdown question bank 1 · Obsidian 1 · Photoshop 1 · SVG 1 · Suwon open data 1 · Tistory 1 · XMind 1 · Zanata 1 · dooray CLI 1 · macOS say 1 · rst 1
Claude and AI40 made
only 2026
Claude Code skill 24 · Claude Code command 3 · Claude Code plugin 3 · Claude 2 · Claude cloud routine 2 · claude.ai Dashboard 2 · subagents 2 · Claude Code 1 · Claude Code hook 1 · Claude scheduled task 1 · Gemini CLI 1 · LSP 1 · Lovable 1 · NotebookLM 1 · NotebookLM CLI 1 · Vertex AI 1
Java and Spring29 made
2011 to 2026 · used in 14 of 16 years
Java 19 · Spring Boot 12 · JPA 4 · Java Swing 3 · Spring MVC 2 · WebFlux 2 · Apache POI 1 · FreeMarker 1 · H2 1 · JSP 1 · JUnit 5 1 · JWT 1 · Maven 1 · MyBatis 1 · Netty 1 · Spring 1 · Spring Auto REST Docs 1
JavaScript and TypeScript28 made
2011 to 2026 · used in 11 of 16 years
HTML 9 · TypeScript 8 · JavaScript 5 · Vue.js 4 · Express 3 · Node.js 3 · React 3 · Drizzle 2 · Next.js 2 · Remix 2 · Tailwind 2 · jQuery 2 · Auth.js 1 · Bootstrap 1 · CSS 1 · Chart.js 1 · EJS 1 · Playwright 1 · TypeORM 1 · Vite 1 · Vitest 1
Cloud, shell and ops23 made
2012 to 2026 · used in 8 of 16 years
Shell 6 · AWS EC2 3 · git 3 · AWS 2 · Docker 2 · GitHub Actions 2 · GitHub Pages 2 · gh CLI 2 · AWS S3 1 · Ansible 1 · Cloud Foundry 1 · Fiddler 1 · GitHub 1 · Heroku 1 · Jenkins 1 · Kafka 1 · OpenStack 1 · SSH 1 · Tailscale 1 · Vagrant 1 · VirtualBox 1 · Wireshark 1 · launchd 1 · tmux 1
Python22 made
2012 to 2026 · used in 2 of 16 years
Python 22 · Whisper 1 · yt-dlp 1
Databases17 made
2011 to 2026 · used in 9 of 16 years
MySQL 7 · Supabase 3 · PostgreSQL 2 · Redis 2 · SQL Server 2 · MongoDB 1 · SQL 1 · SQLite 1
Android and mobile12 made
2011 to 2026 · used in 8 of 16 years
Android 10 · AWS Cognito Sync 1 · Capacitor 1 · Naver Maps API 1 · Parse 1 · Swift 1
C, C++ and Unity11 made
2011 to 2019 · used in 5 of 16 years
C++ 5 · C 3 · C# 2 · C++ Win32 2 · Unity 2 · Windows console 2 · 3ds Max 1 · GLUT 1 · OpenGL 1 · Win32 GDI 1 · ncurses 1
Kotlin9 made
2012 to 2026 · used in 6 of 16 years
Kotlin 9 · Exposed 1 · Gradle 1 · Kotlin Multiplatform 1
Visual Basic5 made
only 2011
VB.NET 4 · Visual Basic 6 1 · Windows Forms 1
PHP, ASP and Flash4 made
2011 to 2012 · used in 2 of 16 years
Adobe Flash 2 · PHP 2 · ActionScript 1 · Classic ASP 1
One year opens at a time. Point at a name, or tap it, for details.
Finished · 7
Four small repositories that imitate timed coding assessments: a 40-minute Java REST problem, an RSVP bug fix, order quotas per user, and four hidden bugs in 60 minutes with a grading script.
Java, Spring Boot, JPA, H2, Maven, JavaScriptA generator that reads each practice question in two macOS voices with different accents and bundles them into a single-file HTML drill page.
Python, macOS say, HTMLA command that turns a screen recording or a call recording into a timestamped transcript and a frame sheet.
Python, WhisperA command that estimates whether I am at the laptop from the last keyboard or trackpad input and the screen-lock state, for sessions driven from a phone.
ShellA small macOS app and command that print where the laptop is: coordinates, accuracy and an address. Started after a location guessed from memory was 4.5 km off.
Swift, ShellA study plan for the 23 days before a move: no new material, three sessions a day (speaking from cards, listening, role play), with unfriendly role plays that interrupt and ask back.
MarkdownHow I found a room share in Vancouver with Claude Code: the skill that searched and scored listings by total monthly cost, and the field notes behind it.
Claude Code skill, PythonCode on GitHubRunning · 25
A Claude Code plugin that shows the current repository and branch above the prompt, in red on main, for checkouts shared by several sessions.
TypeScript, Claude Code pluginA claude.ai dashboard that reads my Drive markdown records each time it opens, so it is current without republishing.
claude.ai Dashboard, MarkdownA skill for private conversations about the direction of my life, with work as one part of it. What is said stays in one owner-only folder and reaches no other tool or record.
Claude Code skillI solve LeetCode problems by hand with no AI; Claude reads my submission history, commits the code under my name alone, drafts notes under its own mark and keeps the progress table.
Java, Kotlin, Python, Claude Code skillCode on GitHubA Claude Code plugin that denies risky deletes, commits and pushes on main, commits without a co-author line, and mail sending or deletion before they run, and lets a command through only after I confirm. It denies when it cannot decide.
TypeScript, Claude Code pluginA skill that labels a mailbox by an agreed scheme, reports the mail that matters first and drafts replies. It never sends or deletes; I do that.
Claude Code skill, Gmail connectorA skill that turns my experiences, from company work to my repositories and life, into English posts kept in a private blog only my laptop opens. Every post starts as a draft and only I change its status; LinkedIn and X versions come later.
Claude Code skillA Claude Code plugin that masks webhook tokens, API keys and private keys in what the screen draws, so a session can be watched from a phone or shared.
TypeScript, Claude Code pluginA Claude Code skill that owns everything I show on GitHub: the profile README, this organization and its page, and each public repository's README and visibility.
Claude Code skill, gh CLIA weekly plan for interview English: write answers to technical and computer-science questions three days a week, say them aloud the other three, and three quick questions every day.
MarkdownA small turn-based game in Kotlin: one month as a newcomer in Vancouver. Pick a room by its total monthly cost, then one action a day until a job offer or the money runs out. Claude writes the code and the tests; I play every version and decide what changes. It grew into a 3D town in the browser.
Kotlin, Kotlin Multiplatform, GradleCode on GitHubA skill for reviewing my English tutoring lessons between classes: recall drills from the lesson cards on a review schedule, my recordings compared with the lesson script and the tutor's corrections, and each new lesson filed into Drive.
Claude Code skill, Python, MarkdownA skill that keeps my schedule and the 05:00 morning plan true: it changes a coming day, adds reminders to the morning message, checks the next two weeks for clashes and saves events to the calendar.
Claude Code skill, Python, Google Calendar connectorA skill that audits my own Claude Code skills: mechanical checks, tests with the network blocked, sixty days of use, rule conflicts and overlaps, reported as a document. Then it makes the fixes I approve.
Claude Code skill, PythonA weekly routine with a place and a time slot for each part of the day, and a cloud routine that posts the day's plan to Discord at 05:00 with three Canadian English expressions, plus a study guide page built from the same data.
Python, HTML, Discord webhook, Claude cloud routineOne ledger of what is true about my engineering career, a derived fact sheet that other skills read instead of re-analysing sources, and the only skill allowed to write either.
Claude Code skill, MarkdownA skill that runs a mock interview in English for one role, one stage and one interviewer persona, then debriefs in Korean.
Claude Code skillA skill that checks a prepared self-introduction or answer against my recorded facts, Canadian interview norms and how it sounds spoken.
Claude Code skillA skill that scans LinkedIn, Job Bank and company boards for new developer postings, removes what was already seen, ranks the rest and posts a phone-readable board to Discord.
Claude Code skill, Python, Discord webhookA scheduled task that reads the career pages of a few game studios every day and reports new postings to Discord and Drive.
Claude scheduled task, Python, Discord webhookSilent listening, retelling, dictation and shadowing with one TV drama, scheduled by weekday and by where I can make noise. Eight weeks from 2026-09.
Markdown, HTMLShown under the code name IDEA-2026-3. Only the title, stack, stage and dates are public.
Python, Google SheetsA daily digest of AI developer news to Discord, collected from RSS, Hacker News, GitHub trending and Reddit and written by a Claude cloud routine.
Python, Claude cloud routine, Discord webhookCode on GitHubA skill that reads a job description or a recruiter message, judges the employment structure first, records it in a numbered ledger and builds a tailored résumé per application, reviewed twice before it is published as a document.
Claude Code skill, Python, Gemini CLI, Google DocsA skill that keeps diary-style entries about life in Vancouver exactly as told, backfills past days, checks settling-in progress and keeps a separate list of writing seeds.
Claude Code skill, MarkdownPlanned · 6
Keep each answer cs-prep has checked as one card file: the question, a short English answer, sources and version, traps, and a pointer to the record behind it, read from the career dashboard.
Markdown, claude.ai DashboardEnglish posts about work I actually did, planned as a public repository that stands in for a portfolio site. On hold since 2026-10: the posts are written in my private writing desk first.
Markdown, GitHubA Claude Code skill that takes an adopted idea through the same build steps every time: a plan with recommended defaults, a repository, the smallest version I can try, my reaction, a work board, and publishing when I decide. Written down from how Vancouver Month was built.
Claude Code skill, MarkdownEach week, pick one popular agent skill from my AI trend digest, try its method on one of my own skills and keep a one-page note: what to take, what to drop and how long it took. The first teardown went into a skill the day it was adopted.
Claude Code skill, MarkdownA five-minute solo game on the phone built from real public outage reports: each case is cut into frozen scenes (a log line, a graph, a chat) and I pick the chain of causes from cards. Every clue is quoted from its report, with the source.
Bring one of my 2011 to 2017 games to the phone browser with the old build as the judge: it records the input and every position each tick, and tests check that the new version reaches the same state. First pick: PackMan plus from 2012.
Idea · 8
An idea for a service with today's news, recent AI stories and recommended content: Reddit and live trend topics in, NotebookLM for analysis, Obsidian to keep it, Claude tying them together.
Claude, NotebookLM, ObsidianSince AI assistants read blogs too, publish an ad-supported blog and post to every social network at once. A 2026 note.
ClaudeA one-line note from 2026: analyze my blog's data. Which analysis was not written down.
A one-line note from 2026: draw the structure of Dooray documents as a picture.
A small library that regularly compares the state my database records with the real state at outside services such as payments and shipping, and reports what drifted. The same problem came up five times in my work. Shaped in a debate meeting, then set aside for the game.
A course or study group that teaches Korean developers how to work with Claude Code, built from my own skills, guards and public repositories. Paused after a debate meeting.
Record my English phone calls, score each one and compare it with the next to track my level. Past calls were scored once; no repeating setup was built.
Give it a YouTube or Reels link and get the English transcript with a Korean translation, kept in one place; study-method videos become HTML notes. Done by hand inside sessions, never built.
Finished · 4
A 51-item checklist in seven groups, planned backwards from a departure date: luggage by bag, documents, things to cancel, expiry dates while abroad, and a checked-baggage weight budget.
Google Sheets, MarkdownShown under the code name IDEA-2026-1. Only the title, stack, stage and dates are public.
Lovable, React, Vertex AI, SupabaseMy GitHub profile rebuilt to show how I work with Claude Code: five public repositories, a map of how they connect, and a page of five working rules with evidence.
Markdown, SVG, PythonCode on GitHubOn my own initiative, I turned recurring parts of my work at NHN into nine Claude Code skills and shared them with the department. Eight of them chain into a bug-analysis flow from issue to fix, with a required developer review step.
Claude Code, LSPRunning · 14
My Claude Code setup as code: instructions, skills, hooks, scripts, memory and launchd jobs in a private git repository, restored onto a new machine by one bootstrap script.
git, Python, Shell, launchdA Claude Code skill for computer-science and software-engineering questions: answers checked against primary sources, drills from a question bank with three kinds of follow-up pressure, and capture of the questions a real interview asked.
Claude Code skill, Markdown question bankA rule and a check: everything Claude produces for me goes into one Drive folder tree, readable from any device, and a command scans every session transcript for documents that were left outside it.
Google Drive, Python, gitA Claude Code skill for everyday Canadian English: free talk, drills and message checks, with every correction and suggested phrase kept in a Drive corpus. A phone route lets a chat on the go land in the same corpus.
Claude Code skill, Markdown corpusA private knowledge wiki that Claude reads and maintains: topic, entity and source pages built from YouTube, the web and keyword research, cross-checked before they are written, with a lint script.
Markdown, Python, gitA Claude Code skill that takes a URL or a topic through capture, a skeptic's cross-check and composition, with two human review gates, and adds the result to the wiki.
Claude Code skill, Python, yt-dlp, subagentsActual spending kept as one CSV per month (date, currency, amount, category, item, payment method, note) with rules for the columns, compared against the plan.
CSV, MarkdownShown under the code name IDEA-2026-2. Only the title, stack, stage and dates are public.
Markdown, HTMLA method for developing an idea in a meeting of job-based personas with me in the room, scored later against what actually happened. The method, the roster and the counts are public; the transcripts are not.
Claude Code skill, Python, GitHub Actions, subagentsCode on GitHubA personal app for people who visit skin clinics: treatment records, passes, points, payments and treatment cycles in one place, with a skin quiz and three languages. Someone else's app; my part was a security review and the Play release preparation.
React, TypeScript, Vite, Supabase, CapacitorA personal knowledge archive where Claude wrote articles from links or my notes; phase one finished in 2026-06 and was never deployed. Since 2026-10 it is my private writing desk: Claude drafts posts about my experience as files, every post starts as a draft, and only I change its status.
Next.js, TypeScript, Supabase, Drizzle, Vitest, PlaywrightThis page: my ideas, works and content from 2011 to today, rebuilt every day from data files. Started in 2026-03 as an empty ideas document and became a site in 2026-10.
Python, GitHub Pages, GitHub ActionsCode on GitHubSlash commands for the branch, pull-request and commit rules I kept repeating: push a branch the right way, clean up merged branches. A README-update command was retired in 2026-10.
Claude Code command, gh CLIA slash command that sends outside content to NotebookLM through a CLI and returns a structured analysis.
Claude Code command, NotebookLM CLIStopped · 1
A skill that turned my tutoring archive and a Canadian phrasebook into Leitner review cards and watched their quality. Card-making stopped in 2026-10; the archive continues.
Claude Code skill, Python, Leitner boxesRetired · 6
A personal start page I opened every morning on the laptop and the phone: city clocks and weather, an exchange rate, wiki search, spaced-repetition cards for English and CS, countdown banners and an expiry radar. I folded it in 2026-10, once I no longer used it, and turned its servers off.
Next.js, TypeScript, Drizzle, PostgreSQL, Auth.js, TailwindA slash command that creates Dooray tasks with content written to a set of rules.
Claude Code commandA way to send Claude work from a portable laptop to an always-on one at home, with machine identification hooks. Retired when the second laptop was sold.
Tailscale, SSH, Shell, tmuxA Claude Code skill that pulls Dooray tasks and wiki pages through a CLI, keeps the originals and writes an insight analysis of each.
Claude Code skill, dooray CLIA plan to rebuild the structure of a company knowledge system on my laptop. Only the first stage was done; it was dropped the day the LLM wiki started.
Markdown, Claude Code skillA hook that posted the project, branch, time taken, last request and changed files to Discord when a Claude session finished. Removed after a few days.
Claude Code hook, Shell, Discord webhookStopped · 1
Three service skeletons in one go, a core API, a webhook receiver and a web app, one commit each. What LMK stands for is not recorded.
Kotlin, Spring Boot, WebFlux, Remix, TailwindIdea · 1
A diary note from 2025: game development was my childhood dream and one reason I joined a game company; maybe Canada is where I try it. No concrete plan.
Finished · 1
An office event I designed and ran: a darts tournament on an in-office Monday with random teams by skill level, four-player brackets, and two rounds of sign-ups.
NotionStopped · 2
Developer friends formed a pretend company and split an app into Android, iOS and backend. I owned the authentication API for Google and Apple sign-in: project setup, test endpoints, and the Exposed and PostgreSQL wiring.
Kotlin, Spring Boot, Exposed, PostgreSQLA drawing and coloring service at a friend's company. I helped unpaid for a few months on the coloring AI model, the Kakao login setup and a server improvement plan.
Vue.js, Node.js, Express, TypeScript, TypeORMIdea · 1
A note from a side team in 2024: build one base Android app with a convention plugin, billing and login modules, then offer in-app purchase, ads, chat, push, web-app and launch help to others.
Android, KotlinStopped · 2
Shown under the code name IDEA-2023-1. Only the title, stack, stage and dates are public.
Remix, TypeScript, Kotlin, Spring BootA Spring server skeleton that receives Discord bot requests. Three commits and a sample that echoes a path value; what it was for is not recorded.
Kotlin, Spring Boot, WebFluxPlanned · 2
One hand-drawn page: users, a front end, an external coin API, and inside AWS a login and security layer, API servers, a queue, a database and a cache. What the service was for is not recorded.
AWSA four-week study plan on semantic HTML, cloning a design and modern JavaScript, with weekly missions. Week four was left undecided; whether it ran is not recorded.
HTML, CSS, JavaScriptIdea · 1
A square on a 2022 goal chart: take contract work and run personal projects. No contract followed.
Stopped · 1
A theme-park app someone else started, with attraction guides and wait-time statistics. I did the backend and led the move from a Node monolith to Spring Boot services; my part ended in 2022.
Java, Kotlin, Spring Boot, MongoDB, AWS EC2, JenkinsFinished · 2
A take-home assignment for a technical product role at a game company: sequence diagrams and script problems, answered in a slide deck.
PowerPointFound Spring Auto REST Docs for a Nexon project that had no tests, wired it into CI so the API docs come from tests, and presented it to the team. Another project adopted it.
Spring Boot, Spring Auto REST Docs, JUnit 5Code on GitHubStopped · 2
A personal survey service meant to explore personalization, with a roadmap in Jira and Confluence. The code stopped at a user entity and its service.
Java, Spring Boot, JPAA repository meant to collect computer-science notes in AsciiDoc. Only the table of contents was written.
AsciiDocIdea · 4
One line on a 2021 list of things I wanted to do. No subject or format was written down.
An entry on a 2021 side-income plan: run a store on a marketplace. An online course was in progress; the store never opened.
An entry on a 2021 side-income plan, marked not started.
An entry on a 2021 side-income plan, marked not started. What TLI stood for was not written down.
Finished · 2
A small Spring Boot module over Apache POI for Excel downloads: typed cells with a theme, data type and size, header and body layers, merges and blank rows, so a report is written as named fields and records instead of cell indexes and style objects. A sample controller shows it.
Spring Boot, Apache POI, JPACode on GitHubA Notion system I designed to run an English shadowing study group: notices, rules with fines and vocabulary tests, schedules, a test archive and drama-script materials.
NotionStopped · 1
The skeleton of a shop-style service: a JWT login server, a product API and a Vue client, with notes on setting up the server on AWS.
Spring Boot, JWT, Vue.js, AWS EC2Finished · 7
Shown under the code name IDEA-2019-3. Only the title, stack, stage and dates are public.
JavaScriptShown under the code name IDEA-2019-4. Only the title, stack, stage and dates are public.
EvernoteShown under the code name IDEA-2019-5. Only the title, stack, stage and dates are public.
Java, Spring Boot, FreeMarker, Redis, SQL Server, Chart.jsTwo team talks on HTTP/2 (frames, streams, head-of-line blocking, server push, priority trees, header tables) with a written follow-up for the questions asked, after a month of network basics: Wireshark captures of the TCP handshake and a CORS block reproduced on a test server.
PowerPoint, Wireshark, FiddlerA team talk on ASCII, code pages, Unicode and UTF-8 and UTF-16 with C++ experiments on Korean text, given 2019-04-22; the notes grew into a four-part glossary (summary, source, translation, references).
C++, PowerPointShown under the code name IDEA-2019-2. Only the title, stack, stage and dates are public.
C++ Win32An in-house cafe menu app with ratings, comments and a rating chart, built by a team of four in a Nexon bootcamp.
Vue.js, Node.js, Express, MySQLCode on GitHubRunning · 1
Shown under the code name IDEA-2019-1. Only the title, stack, stage and dates are public.
Java, Spring MVC, Vue.js, JPA, MySQL, Redis, AWSStopped · 2
A bulletin board in plain JavaScript; only an index page and one script survive.
JavaScript, HTMLMy first task on a team at Nexon: a C# console app and a SQL Server container in a CentOS VM to see how a date stored in one time zone reads in another. Set up and documented; the final comparison was never finished.
C#, SQL Server, Docker, VirtualBoxFinished · 1
A bootcamp exercise in my first week at Nexon: used five PC game launchers side by side and wrote up what each did well and badly.
ConfluenceFinished · 2
Eleven days of courses and 23 online lessons in the summer of 2018: OpenStack installed with DevStack up to an instance I could ping and SSH into, a Heroku deploy, Cloud Foundry on BOSH-lite up to cf push, a three-node Ansible lab and Docker Swarm. Course exercises, not production.
OpenStack, Cloud Foundry, Ansible, Docker, Vagrant, HerokuTranslated OpenStack docs, the dashboard and a white paper into Korean, reviewed typo fixes, and wrote the activity up in rst, as part of the 2018 contributhon.
Zanata, Gerrit, rstIdea · 1
A Netty ping-pong server and client, an edited version of the Netty user guide example, plus a July 2018 design memo on packet framing, log levels and broadcast for an exchange feed. No exchange code was ever written.
Java, NettyFinished · 3
An open-source talk at university, a six-session winter job-search programme, a blockchain day with geth and Solidity, Naver Cloud's CI/CD and serverless class, the Samsung Security Tech Forum, if(kakao) 2018 and the Open SW Governance Academy, each with notes.
EvernoteA peer-to-peer rental site that connects people who have things to lend with people who need them, the first product of a small startup where I worked part time and led development.
Spring Boot, Spring MVC, MyBatis, JSP, jQuery, Bootstrap, MySQL, AWS EC2, AWS S3Slides, notes, mind maps and an English-Korean glossary for teaching object-oriented basics in Java: classes and objects, variables and methods, constructors, overloading, recursion. Eleven revisions of chapter one.
PowerPoint, XMindStopped · 4
A hand-linked index of about 25 notes on REST, HTTP, GC, OSI, TCP, DNS, design patterns and ORMs, built for 2018 interviews on top of a 2017 glossary of 90 terms; the same idea as the wiki I keep now.
EvernoteAn unfinished real-time card battle prototype for Android by a student team; I wrote the battle screen.
Java, AndroidCode on GitHubA study blog in two generations: first on Tistory, then a Jekyll static site with notes from Kotlin in Action. Last post in 2020.
Tistory, Jekyll, GitHub PagesAlgorithm practice in Java on Baekjoon Online Judge: DP recurrences, graph searches, two pointers and heaps, kept as idea notes rather than code.
JavaPlanned · 4
A proposal to promote a rural county on a five-day rail trip with friends who were job hunting, with a day-by-day route. Whether it was selected is not recorded.
PowerPointA contest entry: help residents get through summer with campsites, cooling shelters, festivals, food safety alerts, free fan and air-conditioner lending and repair, and a sharing board for people in need.
Public dataA public-data app: the time window of the next gas inspection visit, live and expected power usage, and a comparison with homes of the same size nearby.
Public dataA public-data site that shows where the national budget goes, with the spending record and a question board.
Public dataIdea · 8
One of five contest idea candidates in 2017. Only the title survives.
A couples' SNS or blog, one of five contest idea candidates in 2017. Only the title survives.
One of five contest idea candidates in 2017. Only the title survives.
One of five contest idea candidates in 2017, and my third parking idea after 2011 and 2015. Only the title survives.
Keep track of belongings with a phone, one of five contest idea candidates in 2017. Only the title survives.
One app over the province's open data sets, the seed that became the summer survival app.
Public dataA line from a job application draft: the stock apps on my phone were clumsy, and I wanted to join the maker and rebuild them.
Start a bowling club at my first job, and open a bowling alley after retiring. From the hobby field of a job application.
Finished · 2
A 3D maze escape game in C++ and OpenGL with three camera views, made by a team of three; I wrote the game code.
C++, OpenGL, GLUTCode on GitHubMy graduation thesis: a comparison of smartphone games centred on their user interface, among the factors behind a game's success and staying power, meant to help later game development. Three drafts; the submitted copy is not kept.
Stopped · 2
A site to try fonts in the browser, change size and colour, and save the result as a PNG, with a searchable font list and recent picks. Free fonts only.
Node.js, Express, EJS, MySQL, jQueryAn Android chat prototype that tried AWS Cognito Sync to keep a comment and chat list in step with a server. One screen and an adapter; what it was for is not recorded.
Android, Java, AWS Cognito SyncPlanned · 1
A big-data class plan: mine Amazon co-purchase metadata with association rules to predict which media genres will rise, with review text analysis and a recommender sketched on top.
Association rules, CSVIdea · 8
A timer and cut-off for a gas stove left on too long.
A wardrobe and a fridge that know what is inside and suggest what to wear or cook.
Insoles and socks with sensors that nudge you when your posture or gait goes wrong.
Braille and sound guidance in elevators for blind passengers.
A power strip that measures each outlet and shows the electricity bill as it grows, with the app, the meter and the sensor as the three parts to build.
A device that plays a sound to train a dog where to go.
A social network where posts are tied to GPS and a hashtag, so an event has its own live feed.
Two goals written on a mind map in 2016: make a program everyone uses, and build a company everyone knows. Which program and which company was never written down.
Finished · 3
A first-person 3D exploration adventure on a penguin planet, built by a three-person university game club team. I led the Unity development.
Unity, C#, 3ds MaxCode on GitHubAn Android app that put Suwon's community-centre culture programs, from the city's open data, on the phone. Passed the first round of the city's open-data contest. A three-person team; I led development.
Android, Java, Suwon open dataShown under the code name IDEA-2015-1. Only the title, stack, stage and dates are public.
Android, Java, SQLitePlanned · 1
A paper stamp tour moved to a phone: a stamp is earned only by taking a photo within range of a sight, with routes, place information, sharing, completion points and photo spots suggested from earlier visitors' pictures. Screen mockups only.
Android, PhotoshopIdea · 6
One of six app candidates for a public-data contest in 2015. Only the title survives.
A nearby-food app, one of six public-data contest candidates in 2015. Only the title survives.
One of six public-data contest candidates in 2015. Only the title survives, and what it meant was not written down.
A route-finding app, one of six public-data contest candidates in 2015. Only the title survives.
A health app, marked lower priority among six public-data contest candidates in 2015. Only the title survives.
An infant-safety app, marked lower priority among six public-data contest candidates in 2015. Only the title survives.
Finished · 1
An Android side-scrolling action game, an unofficial student fan game. The characters and music are removed from the published code.
Java, AndroidCode on GitHubStopped · 1
Online basketball communities lived in cafes with no app, so this one matched teams and opponents by location, let players register and like courts, and kept pickup teams and friends for the next game. A five-person contest team; I led it.
Android, Java, Parse, Naver Maps APIFinished · 6
An Android class exercise: eight note images that play an mp3 when tapped.
Android, JavaA Java Swing maze game: eat every coin while robots roam, with items and three difficulty levels. The art was redrawn for this release.
Java, Java SwingCode on GitHubA menu-driven bash script that keeps a phone book in a file, in two versions.
ShellSign-up form, login, profile editing and duplicate checks for id and phone number, built step by step as a course report.
PHP, HTML, MySQLA Flash app for parents, new students and visitors: pick a start and a destination and a character walks the path to the building; it also finds restrooms, ATMs and departments. A five-person graduation project; I led the team.
Adobe Flash, ActionScriptCode written to learn, not to ship: C pointer and data-structure studies (where Teris started), a game club's Unity study, coding-test practice, a daily learning log, and book examples on Kotlin, Spring Batch, Spring REST Docs, Kafka, React and building an LLM.
C, Unity, Java, Kotlin, Spring, Kafka, React, PythonStopped · 2
A bookstore program with a login window and tabs to search, edit and add or remove books by ISBN, title, author, category, publisher and stock. The edit and add tabs stayed empty.
Java Swing, MySQLA Galaga-style shooter in C++ on the plain Win32 API with double-buffered GDI drawing; one stage is playable. The art was redrawn for this release.
C++, Win32 GDICode on GitHubPlanned · 1
A class design for a vending machine: pick candy, noodles, snacks or drinks, see the description, enter a quantity, watch the balance, get change at any time. Three or more classes required; no code is kept.
JavaFinished · 8
A console Tetris in C with hold, combos and a two-piece preview. In 2026 I came back to it and ported it to macOS; the port is kept private.
C, Windows console, ncursesCode on GitHubA web calculator with digits, operators, clear and backspace, evaluated with eval, plus a short write-up.
HTML, JavaScriptA lottery number picker written three times while learning each language: a VB.NET form for a class, then a Win32 window program, then a Java Swing version.
VB.NET, C++ Win32, Java SwingA small Windows form that converts numbers between bases.
VB.NETA cafe-style bulletin board built three times: an HTML frameset home page, a Classic ASP version with members and admin pages, and a PHP version with member ranks, per-rank read, write and delete rights, replies and password recovery.
HTML, Classic ASP, PHP, MySQLA two-player dice race on a 19-square board in Visual Basic 6, my first university team project (five students; I planned the program).
Visual Basic 6Code on GitHubThe class exercises behind the bigger projects: VB.NET forms, Flash pieces, OA and object-oriented examples, SQL for a registration system, VC++ assignments, Android basics, Java programs, ERwin data modelling, and C problems.
VB.NET, Adobe Flash, SQL, C++, Android, Java, CMy rule as a student, from a club senior's advice that the textbook for a new language is making a game: every new language gets a game with a made-up company logo on it. C, C++, Java, Android and Unity each got one.
Stopped · 2
An unfinished two-player property-trading board game in VB.NET by a team of three; I wrote the ranking and buy screens.
VB.NET, Windows FormsCode on GitHubA C++ console maze game from an OOP course: steer DB through the map and eat every piece of bread. Monsters and stage select were never finished. Its title screen already said BNI Tech.
C++, Windows consoleCode on GitHubPlanned · 1
Shown under the code name IDEA-2011-1. Only the title, stack, stage and dates are public.