Alan Jo Portfolio

Alan Jo Portfolio

MBTI GPT

2023.10 ~ 2024.2
  • Developed a GPT-based analyzer for evaluating Kakao Talk chats, offering insights with evidence-based scoring.
  • Innovated real-time RAG indexing to improve prompt efficiency and user experience, ensuring secure, accurate data retrieval.
  • Utilized OpenAI’s JSON mode and provided structured response to provide a novel AI app experience.
Chat upload & MBTI analysis request map
Chat upload & MBTI analysis request map
Distribution of MBTI result through OpenAI API
Distribution of MBTI result through OpenAI API
 
 
 
 

RTSum

2023.3 ~ 2023.8
  • Minimized AI hallucination by decomposing sentences into smaller units and recomposing them.
  • Boosted OpenIE5’s triple extraction speed by 300% combining a reverse proxy with container replica.
notion image
 
 

LLaMa2GPTQ

2023.6 ~ 2023.8
  • Optimized computing cost and memory by 75% by applying 4-bit GPTQ quantization to LLaMa2.
  • Attained a personalized AI app without external API, utilizing a localized vector database and chat UI.
 
 

Texonom

2020.6 ~ 2022.3
  • Integrated a recommender system into Web backend using ONNX & transformers.js for inference.
  • Embedded 30,000 pages in pgVector for RAG vector search, deployed to GPTs with an action API.
  • Published npm packages which enables several features like CLI Notion page export (packages).
While Googling is helpful for finding various information in real-time, it can be difficult to determine which information is true. To solve this problem, I needed a knowledge base where I could accumulate information that I judged to be true based on my experiences, thoughts, and research. I found the Notion platform to be ideal for this purpose; I organize my knowledge into three categories and use it to eliminate the repetition of finding the same knowledge. Since this storage has helped me increase my productivity, I wanted to make it accessible to everyone else.
 
 

Pointland

2020.3 ~ 2020.10
  • Implemented interactive 3D pointcloud based web experience harnessing Three.js and Potree.
  • Upon analyzing visitors, I recognized the imperative of mobile support given the high volume of mobile connections. Inspiration from mobile gaming, I implemented a mobile-friendly 3D smooth movement joystick, enabling joystick usage anywhere on the screen via touch.
  • By segregating functions based on the joystick's positioning (left, right, top), intuitive controls for forward, backward, left, right, up, and down movements were intuitively organized.
notion image
 
 
 

Seongland

2019.11 ~ 2021.3
All sounds in the video originate from within the webpage.
  • Created a 3D browsing experience with a scrolling method on the initial screen
  • Implemented interactive stars using camera movement for floating 3D stars
  • Optimized star interaction by changing the camera’s position instead of moving each stars
  • Added sound effects for toggling between dark mode to enhance user immersion and interaction
 
 

Intuiter

2019.10 ~ 2021.11
Effective use of keyboard shortcuts can significantly enhance work efficiency. The author identified shortcomings in common keyboard activities, particularly cursor movement during typing. Seeking a solution, they discovered Autohotkey (AHK) and aimed to optimize shortcut layouts for better productivity. This led to the development of Intutier, a user-friendly program with an arrow-shaped shortcut structure, improving typing and cursor movements. The project evolved into a Vue and Electron-based desktop application, distributed on Github and Winget, gaining popularity and positive reviews.
  • Redesigned shortcuts for improved intuitiveness by utilizing the alt key.
  • Created a core source in AHK, resembling Vim with enhanced usability.
  • Expanded project to a Electron-based desktop application by distributing on Winget.
notion image
 
 
 
 

To Spotify

2021.6 ~ 2021.7
I believe that the apps that dominate the domestic music streaming industry offer poor user experiences. Both Melon and Genie were error-prone and lacked functionality. When I tried Spotify, however, it provided a good user experience. I wanted to switch to Spotify, but I was stuck with my current platform because it was difficult to transfer my favorite artists, albums, and playlists from Genie to Spotify. Moving them one by one was too time-consuming, so I looked for a way to automate the process. Fortunately, Spotify provides a web API, which allowed us to develop a tool to transfer user data such as songs and followed artists. We also created a document page to make it easier for users to use the tool.
 
 
 
 
 

Screencast

2021.5 ~ 2021.8
When recording a screen, the viewer may not be aware of which key or mouse action the photographer is currently using. To address this, I developed an application that visualizes the current key or mouse action being entered on the screen. The name comes from VSCode's screencast. I customized the source code and wrapped it with Electron. The application has a structure similar to Intuiter, and is also distributed in Winget, making it easy to install and use.
notion image
notion image
screencast
seonglaeUpdated 2023 Dec 6 16:19
 
 
 
 
 
 

Experience

Vector Drawing Platform

2020.10 ~ 2022.9
I lead this project from planning and software architecture with full-stack development.
notion image
Database
  • Leveraged PostgreSQL's JSONB column to manage fluid data effectively, enabling easy change history and record access.
  • Reduced race conditions in the ORM by dynamically executing atomic SQL statements.
  • Implemented an ORM Restful API using Feather, organizing tables by grouping similar structures and managing common properties through abstract parent classes.
Optimization
  • Optimized data visualization by segregating common parts and utilizing native JS Array member functions (reduce, map, filter, every, some) for improved performance and code readability.
  • Enhanced 3D rendering performance by utilizing Chrome developer tools for optimization and fixing memory and processing inefficiencies.
Development
  • Refactored into Rust as Node.js NAPI binding from C++ module containing 3D projection algorithms.
  • Employed various JavaScript built-in objects like JS Set for deduplication, JS Proxy for intercepting property value changes, and added custom logic for centralized code management.
  • Utilized Nuxt/Next.js, mirroring Vue's Reactivity for similar functionality and logic implementation.
Backend & Infrastructure
  • Seamlessly managed backend and infrastructure, implementing caching strategies using Redis for frequently accessed data with minimal modifications.
  • Implemented caching methods with Redis, Nginx for immutable data, and client-side caching through cache-control headers, ensuring efficient caching based on the DB's instance ID as UUID to prevent duplication.
Logging & Monitoring
  • Leveraged InfluxDB as a logging database to record client errors, server errors, and API requests, facilitating job status management and error tracking.
  • Recorded request times, users, job sites, and visualized job statuses, enabling easy tracking and management.
 
 
 

Hardware capture application

2019.6 ~ 2019.10
notion image
  • Real-time Socket.io project controlling in-house hardware for planning and development
  • Socket.io server interacts with a C++ library for hardware control via events
  • Implementation of hardware and interface via C++ Node Addon within Node.js
  • Emphasis on smooth state management from backend to frontend for real-time hardware status updates
  • Optimized server performance by employing separate Node.js threads for real-time sensor data storage
  • Visualization component utilizing OpenLayers and Three.js for 3D, optimizing geographic data display
 
 

Capture Control Tower application

2019.6 ~ 2019.12
notion image
  • Software architecture for tracking hardware control vehicle's shooting location
  • Enhanced hardware control server to act as a client of the control tower's Socket.io server, enabling real-time vehicle information display
  • Enabled real-time control of multiple hardware units through web browsers
  • Optimized visualization performance by implementing a WMS/WMTS system using Geoserver to render PostGIS-stored data as images, reducing client-side rendering of large-scale geographic vectors
 
 
 
 
 

Recommendations