Internship인턴십Team of 22인 팀Embedded / IoT임베디드 / IoTESP322022
Built as an IoT Engineer Intern at DoctorTool (PT Medifa Infoyasa
Suryantara).DoctorTool(PT Medifa Infoyasa Suryantara)에서 IoT 엔지니어 인턴으로
개발했습니다.
Developed an ESP32-based IoT gateway bridging medical instruments to
the cloud.의료 기기를 클라우드에 연결하는 ESP32 기반 IoT 게이트웨이를 개발했습니다.
Connects thermometers, oximeters, and biometric sensors.체온계, 산소포화도 측정기, 생체 신호 센서를 연결합니다.
Supports over six device categories.여섯 가지가 넘는 기기 유형을 지원합니다.
Built as a team of 2 people.2인 팀으로 진행했습니다.
6-DOF Robot Manipulator Simulation (OpenGL)6자유도 로봇 매니퓰레이터 시뮬레이션 (OpenGL)
Robotics course project로보틱스 수업 프로젝트Robot kinematics로봇 기구학C / OpenGLUniversitas Indonesia인도네시아대학교May 20232023년 5월
Built as a project for a robotics course at Universitas
Indonesia.인도네시아대학교 로보틱스 수업의 프로젝트로 만들었습니다.
Real-time 3D visualization of a 6-DOF robot arm, built in C with OpenGL
(GLUT).C와 OpenGL(GLUT)로 6자유도 로봇 팔을 실시간 3D로 시각화합니다.
Implements forward kinematics and Jacobian pseudoinverse-based inverse
kinematics for end-effector position control.엔드 이펙터의 위치 제어를 위해 순기구학과 자코비안 유사역행렬 기반 역기구학을 구현했습니다.
Generates linear point-to-point trajectories between commanded
poses.지정한 자세 사이를 잇는 직선 점대점 궤적을 생성합니다.
Streams joint commands to the physical robot over serial
communication.시리얼 통신으로 실제 로봇에 관절 명령을 전송합니다.
Built a computer-vision system for corrosion detection.부식을 탐지하는 컴퓨터 비전 시스템을 만들었습니다.
Shipped the Android app with Flutter (also runs on Windows and
Linux).Flutter로 안드로이드 앱을 출시했으며, 윈도우와 리눅스에서도 동작합니다.
Delivered within a one-month timeframe.한 달 안에 완성했습니다.
Won 1st place at SciHackfest 2023 (a hackathon held by PT Sucofindo) —
prize of 25 million IDR (~1,600 USD), as a team of 3.PT Sucofindo가 주최한 SciHackfest 2023에서 3인 팀으로 1위를 차지해 상금 2,500만
IDR(약 1,600달러)를 받았습니다.
Web Apps웹 앱
CanopyDiary
Web app웹 앱Vanilla JS바닐라 JSSupabasePWA
Lightweight, local-first diary web app with dated notes.날짜별로 기록을 남기는, 가볍고 로컬 우선으로 동작하는 일기 웹 앱입니다.
Date-sorted photo gallery kept separate from the written notes.글과는 따로, 날짜순으로 정렬되는 사진 갤러리를 함께 제공합니다.
Autosave and manual PDF export for selected date ranges.자동 저장을 지원하고, 원하는 기간을 골라 PDF로 내보낼 수 있습니다.
Optional cloud sync via Supabase + Google sign-in; built with vanilla
JavaScript, HTML, and CSS.Supabase와 구글 로그인으로 클라우드 동기화를 선택할 수 있으며, 바닐라 JavaScript와 HTML, CSS로
만들었습니다.
Web app웹 앱Vanilla JS바닐라 JSFirebaseOffline-first오프라인 우선
A fast, private place to keep favourite quotes alongside your own
thoughts.좋아하는 인용구와 자신의 생각을 함께 담아 두는, 빠르고 사적인 공간입니다.
Opens with no login and works offline; entries are saved on the
device.로그인 없이 바로 열리고 오프라인에서도 동작하며, 기록은 기기에 저장됩니다.
Optional Google sign-in syncs across devices, with each person seeing
only their own entries.구글 로그인을 선택하면 기기 사이에 동기화되며, 각자 자신의 기록만 볼 수 있습니다.
Every entry carries a date, an optional source, and a tag; the whole
collection exports to PDF as a backup.모든 기록에는 날짜와 선택적인 출처, 그리고 태그가 붙고, 전체를 PDF로 내보내 백업할 수 있습니다.
No framework and no web fonts — Firebase is downloaded only if sync is
configured.프레임워크도 웹 폰트도 쓰지 않으며, Firebase는 동기화를 설정한 경우에만 내려받습니다.
A water-fasting tracker: pick a goal, and a bowl fills with water hour
by hour.물 단식 기록 앱입니다. 목표를 정하면 시간이 지날수록 그릇에 물이 차오릅니다.
Names each stage as it passes — insulin falling, glycogen emptying,
ketosis, autophagy.인슐린 감소, 글리코겐 고갈, 케토시스, 자가포식처럼 지나가는 단계를 하나씩 알려 줍니다.
Fasts sync between devices in real time, and a streak calendar chains
consecutive days together.단식 기록이 기기 사이에서 실시간으로 동기화되고, 연속 달성 달력이 이어진 날들을 묶어 보여 줍니다.
Runs signed out and offline as an installable PWA; offline changes
queue and flush on reconnect.로그인하지 않아도, 오프라인에서도 설치형 PWA로 동작하며, 오프라인에서 바뀐 내용은 다시 연결될 때 반영됩니다.
About 40 KB of HTML, CSS, and JS, needing no fonts, frameworks, or
images to render the first screen.HTML과 CSS, JS를 합쳐 약 40 KB이며, 첫 화면을 그리는 데 폰트도 프레임워크도 이미지도 필요하지
않습니다.
A lite mode drops blur, glow, and ambient motion, and enables itself on
a slow connection, few CPU cores, or little RAM.라이트 모드는 블러와 광원 효과, 배경 움직임을 끄며, 느린 연결이나 적은 CPU 코어·메모리에서는 스스로 켜집니다.
A minimalist jungle focus timer, with a separate rest stopwatch that
keeps no records.정글 테마의 미니멀한 집중 타이머로, 기록을 남기지 않는 휴식용 스톱워치가 따로 있습니다.
A plant grows through each session, and every finished session adds one
tree to a weekly forest.한 세션 동안 식물이 자라고, 세션을 마칠 때마다 주간 숲에 나무가 한 그루씩 늘어납니다.
Focus history is editable and deletable, with stats for today and all
time.집중 기록은 수정하거나 삭제할 수 있고, 오늘과 누적 통계를 함께 보여 줍니다.
Works out of the box on local browser storage, with no setup and no
account.설정이나 계정 없이, 브라우저의 로컬 저장소만으로 바로 동작합니다.
Optional Supabase and Google sign-in sync records — and the running
timer — across devices, with row-level security keeping each user to their own.Supabase와 구글 로그인을 선택하면 기록은 물론 진행 중인 타이머까지 기기 사이에 동기화되고, 행 수준 보안으로 각자
자신의 데이터만 다룰 수 있습니다.