Skip to content

Instantly share code, notes, and snippets.

@mu-hun
Last active January 28, 2026 08:15
Show Gist options
  • Select an option

  • Save mu-hun/1d9a9ac8b72485d77ff90cabed595a49 to your computer and use it in GitHub Desktop.

Select an option

Save mu-hun/1d9a9ac8b72485d77ff90cabed595a49 to your computer and use it in GitHub Desktop.
Personal Projects & Contribution Details – This document is intended to clarify ownership, technical depth, and decision-making responsibility behind each contribution.

Personal Projects & Contribution Details

Web Extensions & Web Applications

I started building small web tools as a hobby to improve usability issues I personally experienced while using university web services. Many of these projects began as minimal solutions and evolved through real usage and long-term maintenance.

Reflation – UX-Enhancing Browser Extension for dreamy.jejunu.ac.kr

Screenshot reflation

Left: before activation, Right: after activation.

https://github.com/reflation/extension

A browser extension that improves the login experience of “Dreamy (하영드리미)”, the academic record service of Jeju National University.

  • Core features include session reuse and persistence, fixing an issue where users were redirected to the login page even with a valid session
  • Replaced the entire original HTML markup with Preact-based UI components for better control and maintainability
  • Wrote integration tests for state management
  • Maintained the project for over 6 months, releasing versions 0.1.1 through 0.2.5

jejunu-bob-pwa – Campus Cafeteria Menu Viewer

https://github.com/mu-hun/jejunu-bob-pwa

A simple web app that displays the daily cafeteria menu for Jeju National University, built to avoid repeatedly navigating the official website.

  • Implemented Service Worker–based proxying and caching to enable offline usage
  • Initially built with Vue.js, later refactored to React and Redux Toolkit as a learning and maintenance exercise
  • Menu data was collected, normalized, and served via an AWS backend pipeline
AWS backend pipeline details

Data Collection and Normalization

image
from datetime import datetime
import boto3
import json
from jejunuMeals import JejunuMeals

Bucket = boto3.resource('s3').Bucket('jejunu.muhun.dev')


def lambda_handler(event, context):
    Dump = json.dumps(JejunuMeals().menus(), ensure_ascii=False)
    Bucket.put_object(
        Key='meals/index.json', Body=Dump)
image

The data is collected every Monday at 10:00 AM (KST) and stored in an S3 bucket.

  • UTC 01:00 = KST 10:00
  • The schedule is handled via a cron-triggered AWS Lambda function.
  • Data fetching and parsing are implemented using a custom module, jejunuMeals, which I developed and maintained: https://pypi.org/project/jejunuMeals/

Data Delivery

image
from flask import Flask
import boto3

app = Flask(__name__)

Bucket = boto3.resource('s3').Object('jejunu.muhun.dev', 'meals/index.json')

@app.route('/')
def lambda_handler(evt, context):
    return Bucket.get()['Body'].read()

if __name__ == '__main__':
    app.run()

When a request is made to the endpoint, the server responds with the cafeteria menu data stored in the S3 bucket.

  • The endpoint acts as a lightweight HTTP interface for clients.
  • This separation allows data collection and data serving to be independently managed.

Automation

Development Environment Automation – .dotfiles

https://github.com/mu-hun/.dotfiles

  • Created to avoid spending several hours reconfiguring development environments on new machines
  • Repository contains Bash scripts for automated installation and setup of essential tools and desktop preferences
  • Focused on reproducibility and minimal manual intervention

University Timetable → iCalendar Automation

https://github.com/mu-hun/jejunu-icalendar-server

  • Automatically converts timetable data from the university web portal into iCalendar format
  • Implemented using a test-driven approach: README.en.md#test-driven-implementation
  • Provides an HTTP iCal endpoint
  • Runs a cron job every weekday at 10 AM to keep data up to date

Debugging & Open Source Contributions

Fixing Runtime Errors in jodit-react

jodit/jodit-react#287

  • While working on a client project that integrated the Jodit WYSIWYG editor, discovered a runtime error in the official React wrapper
  • Investigated the root cause through debugging
  • Submitted a patch with a detailed explanation, which was merged into the official repository

type-challenges – Filter (Type-Level Programming)

18220 – Medium – Filter · type-challenges

This type-level Filter utility was designed based on a real need to reason about conditional selection and narrowing at the TypeScript type level.

After implementing and validating the solution, I proposed this challenge to type-challenges as a new quiz, so others could practice similar patterns in type-level programming.

MDN Web Docs Contribution – box-sizing Defaults

mdn/content#3795

  • Identified that certain HTML elements default to border-box behavior
  • Verified the behavior against W3C and WHATWG specifications
  • Contributed documentation updates to MDN while improving button accessibility in an open-source project

Additional Open Source Work – WYSIWYG Plugin

jodit-table-border-adjuster

https://github.com/mu-hun/jodit-table-border-adjuster

A plugin that allows to adjust the border-width of a table and cells in the Jodit WYSIWYG editor.

  • Built to meet a specific client requirement during a web integration project
  • Designed and implemented as a standalone plugin for reuse

Professional Experience

Planetarium

Participated as an intern during the transition from a prototype Electron launcher to a production product.

Onboarding Task

libplanet-explorer

Contributed to a blockchain explorer web service and its GraphQL-based frontend during the first two weeks after joining.

9c-launcher

Participated as an intern during the transition from a prototype Electron launcher to a production product.

Writing & Knowledge Sharing

Penxle Company

Cross-Browser Compatibility Fixes

Resolved layout issues caused by problematic markup structures through refactoring and simplification.

For additional details, please refer to the link below (Korean):
https://frontend.moe/posts/penxle-company-works/


Most of my work exists as:

  • Long-term maintained personal tools
  • Open-source contributions where authorship and responsibility are clearly traceable
  • Company projects where I proposed, implemented, and documented changes that were later adopted
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment