Hello, I'm devcomfort.
I've been programming since 2013, building expertise across frontend, backend, databases, infrastructure, and the broader development landscape.
I'm currently pursuing a Master's degree in AI Convergence at GIST (Gwangju Institute of Science and Technology), where I'm actively engaged in AI research.
Current Research Focus: RAG (Retrieval-Augmented Generation), Multi-Agent Systems
I have experience with Tabular Learning through my undergraduate graduation research and Procedural Content Generation through the GIST CILab internship. Feel free to reach out regardless of the fieldβI'm always open to discussions.
Over the past 12 years of programming, I've continuously explored ways to innovate both UX and DX.
As a result, I've recently developed and maintained open-source libraries and CLI tools including @devcomfort/text-transcoder, blob-to-url, and Ubuntu Disk Toolkit.
- π Master's Student in AI Convergence at GIST (September 2025 ~ Present)
- π¬ Completed GIST CILab Internship (January-February 2025) - Co-authored IPCGRL paper as 2nd author
- π± Currently learning: PyTorch, Graph Neural Networks, Reinforcement Learning
- π¨βπ» All projects available at https://devcomfort.me/projects
- π Blog posts: https://blog.devcomfort.me
- π¬ Welcome questions about career, development issues, and AI research
- π« Contact: im@devcomfort.me
- GIST CILab Internship (Jan-Feb 2025): Participated in reinforcement learning-based game map generation research in the PCG team
- IPCGRL Paper Co-author: "Language-Instructed Reinforcement Learning for Procedural Level Generation" (IEEE CoG 2025 Accepted)
- Graduation Research: "Categorical Data Processing in the AI Era β Analysis of Effectiveness of Entity Embedding and Cat2Vec"
- Discovered training data bias
- Optimized data normalization pipeline: Reduced RAM usage from 502GB+ β 150GB, processing time from 2 hours β 1 hour
I'm building a unified personal website that combines a tech blog and a portfolio at devcomfort.me.
- Merge the standalone blog (blog.devcomfort.me) and portfolio (devcomfort.me) into one cohesive site
- Share technical articles, research notes, and project showcases in one place
- Ensure fast page loads, great SEO, and a clean reading experience
| Category | Technology | Reason |
|---|---|---|
| Framework | Astro ^5.18.1 |
Static-first, island architecture, great for content sites |
| Styling | TailwindCSS ^3.4 |
Utility-first, already used in devcomfort.me |
| Content | MDX / Markdown | Flexible content authoring with component embedding |
| Blog features | @astrojs/mdx, RSS (@astrojs/rss), Sitemap (@astrojs/sitemap) |
Built-in Astro integrations |
| Package manager | pnpm | Disk-efficient, fast installs |
All packages used in the unified site, grouped by role. Managed with pnpm.
β οΈ Security note:astro@4.16.10(currently indevcomfort.me) exposes server source code when sourcemaps are enabled.astroversions β€ 5.15.6 are also vulnerable to a reflected XSS via the server islands feature (patched in5.15.8). Use^5.18.1minimum.
# Core + integrations + tooling
pnpm add astro@^5.18.1 \
@astrojs/mdx @astrojs/rss @astrojs/sitemap @astrojs/tailwind @astrojs/check \
tailwindcss @tailwindcss/typography \
sharp marked
# Dev dependencies
pnpm add -D typescript prettier prettier-plugin-tailwindcss| Package | Role | Notes |
|---|---|---|
astro |
Framework core | Use ^5.18.1 (XSS vuln patched in 5.15.8) |
@astrojs/mdx |
MDX/Markdown content | Blog posts, research notes |
@astrojs/rss |
RSS feed (/rss.xml) |
Subscriber-friendly content syndication |
@astrojs/sitemap |
sitemap.xml generation |
SEO β submitted to Google/Bing |
@astrojs/tailwind |
TailwindCSS integration | Applies base styles via Astro plugin |
@astrojs/check |
TypeScript type-checking | astro check command in CI |
tailwindcss |
CSS utility framework | ^3.4 β utility-first styling |
@tailwindcss/typography |
Prose styles | Essential for blog post body text |
sharp |
Image optimization | Astro's built-in image service backend |
marked |
Markdown β HTML utility | Used in dynamic content rendering |
typescript |
Type system | Shared by Astro, config files |
prettier |
Code formatter | Consistent code style |
prettier-plugin-tailwindcss |
Tailwind class sorting | Auto-sort class names on save |
The site navigation is configured in a single src/data/site-config.ts file (same pattern as devcomfort.me) and rendered by Nav.astro (header) and Footer.astro.
| Label | URL | Content |
|---|---|---|
| Home | / |
Hero intro, featured projects, recent posts |
| Blog | /blog |
Technical articles, research notes, dev logs |
| Projects | /projects |
Open-source libraries, portfolio work |
| Research | /research |
AI research interests, papers, achievements |
| About | /about |
Detailed bio, career history, skills |
| Label | URL | Content |
|---|---|---|
| Tags | /tags |
Blog posts grouped by tag |
| Contact | /contact |
Contact form / email |
| Label | Target |
|---|---|
| GitHub | https://github.com/devcomfort |
mailto:im@devcomfort.me |
|
| RSS | /rss.xml |
// src/data/site-config.ts
headerNavLinks: [
{ text: 'Home', href: '/' },
{ text: 'Blog', href: '/blog' },
{ text: 'Projects', href: '/projects' },
{ text: 'Research', href: '/research' },
{ text: 'About', href: '/about' },
],
footerNavLinks: [
{ text: 'Tags', href: '/tags' },
{ text: 'Contact', href: '/contact' },
],
socialLinks: [
{ text: 'GitHub', href: 'https://github.com/devcomfort' },
{ text: 'Email', href: 'mailto:im@devcomfort.me' },
{ text: 'RSS', href: '/rss.xml' },
],π‘ Design rationale:
/aboutis promoted to the header (previously footer-only indevcomfort.me) because the unified site serves as both a blog and a portfolio β visitors should be able to learn about the author in one click./researchis a new top-level section reflecting the active AI research work at GIST.
Contact details (email, phone, affiliation, etc.) are managed in a single source of truth file so they only ever need to be updated in one place:
// src/data/personal-info.ts
// βοΈ Edit this file to update your contact details across the entire site.
export const personalInfo = {
name: 'devcomfort',
email: {
personal: 'im@devcomfort.me',
},
// phone: '+82-10-XXXX-XXXX', // uncomment when ready
social: {
github: 'https://github.com/devcomfort',
rss: '/rss.xml',
},
affiliation: {
university: 'GIST (Gwangju Institute of Science and Technology)',
degree: "Master's in AI Convergence",
},
} as const;
export type PersonalInfo = typeof personalInfo;| File | What it uses |
|---|---|
src/data/site-config.ts |
email.personal β social link, social.github β social link |
src/pages/contact.astro |
email.personal β displayed contact details |
src/pages/about.astro |
affiliation.university, affiliation.degree β current role section |
src/components/Hero.astro |
email.personal β "Get in Touch" CTA href |
π‘ Why
as const: marks the object as deeply readonly, so TypeScript infers literal types (e.g.'im@devcomfort.me'instead ofstring). This catches typos when the value is used elsewhere.
- devcomfort/devcomfort.me β Current portfolio site (Astro + TailwindCSS)
- devcomfort/blog.devcomfort.dev β Previous blog (Next.js + contentlayer)
# Clone and install
git clone https://github.com/devcomfort/devcomfort
cd devcomfort
pnpm install
# Start dev server
pnpm dev
# Type-check + production build
pnpm build
# Preview production build locally
pnpm previewNode.js 18+ is required. Install pnpm via
npm install -g pnpmif needed.
-
combinatorial-config - Python library for automatically generating all combinations of experiment configurations. Useful for systematic hyperparameter exploration with Hydra and other configuration management tools.
-
file_type_detector - Python library for detecting file types based on content analysis and file signatures.
-
devcomfort-text-transcoder - Lightweight and efficient library for text encoding conversion in Node.js and browser environments. Supports multiple encodings including UTF-8, EUC-KR, and EUC-JP.
-
is-html-element - Utility library for HTML element type checking and validation.
-
ubuntu-disk-toolkit - CLI toolkit for Ubuntu disk management and operations (under development).
- chonkie-chunk-utils - Utility library for chunk processing and management (private repository).
TypeScript JavaScript Python
Usage: TypeScript/JavaScript for web frontend and backend development; Python for AI research, data analysis, and processing
Object-Oriented Functional Reactive
Approach: Extensible design using classes and interfaces; preference for functional programming (lodash, remeda); reactive programming for event streams and state management
React Svelte/SvelteKit SolidJS TailwindCSS
Focus: Web application development with emphasis on reactivity and performance
Node.js Express FastAPI Starlette
Usage: API development and server-side applications
PostgreSQL SQLite Prisma
Approach: Type-safe database access and modeling primarily using Prisma; PostgreSQL schema design and migration management; SQLite for local development environments
PyTorch JAX Flax Polars Pandas NumPy Matplotlib Seaborn
Usage: Model development and training (PyTorch); scalable ML systems (JAX, Flax); efficient data preprocessing and analysis (Polars, Pandas, NumPy); data visualization and experiment tracking (Matplotlib, Seaborn)
Docker GitHub Actions Vitest Pytest
Status: Docker usage; CI/CD pipeline setup using GitHub Actions; test writing with Vitest and Pytest
Tauri
Status: Interested in and learning Tauri for cross-platform development
- RAG (Retrieval-Augmented Generation) - Research on enhancing LLM capabilities through effective information retrieval and context augmentation
- Multi-Agent System - Research on designing and implementing collaborative AI agent systems for complex problem-solving
- Representation Learning - Research on exploring and validating efficient representation and transformation methods for various forms of data
- Tabular Learning - Research on effective learning methodologies for tabular data
- Graph Neural Networks (GNN) - Effective modeling and learning of graph-structured data
- Explainable AI (xAI) - Research on ensuring explainability of AI models
- GitHub Showcase Competition Excellence Award (November 2024)
- TOPCIT (Test of Practical Competency in IT) - 557 points (Level 3 - Proficient) (May 2024)


