Hi, I’m Andrew Kim

I’m an IT professional specializing in cloud systems, web apps, and backend development.

  • 🚀 Graduate of British Columbia Institute of Technology (BCIT) — Computer Information Technology (CIT) Diploma
  • 🧠 Focus: Python, JavaScript, Cloud (eg. AWS), MySQL, Linux
  • 🎯 Passionate about cloud automation, scripting, and infrastructure reliability
  • 🌎 Based in Burnaby, BC Canada

Featured Projects

Real projects with structured detail — overview, tech stack, features, and what I learned.

Dice Game Simulator screenshot

Dice Game Simulator

📚 BCIT COMP 2132 — Academic Project

An interactive browser-based dice game built for BCIT's COMP 2132 course. Developed to apply core JavaScript concepts — DOM manipulation, event-driven logic, and real-time UI updates — in a hands-on project format.

FrontendJavaScript, HTML, CSS
ToolsGit, VS Code
  • Dice randomization with probability-based roll outcomes
  • Real-time DOM updates reflecting each roll without page reload
  • Score tracking and round management logic
  • Game reset and win condition detection
Problem Solving & Lessons Learned

Problem Solving

The initial challenge was managing game state across multiple rolls without losing track of scores. I resolved this by centralizing state in a single JavaScript object and updating the UI from that source of truth — avoiding inconsistencies from scattered variable updates.

Lessons Learned

Gained a solid understanding of event-driven programming and how the DOM responds to state changes. Learned to separate game logic from display logic, making the code easier to debug and extend.

Future Improvements

  • Add multiplayer support with turn-based flow
  • Animate dice rolls with CSS transitions
  • Persist high scores using localStorage
OpenAI Chat Learning App screenshot

OpenAI Chat Learning App

💼 Immersio — Internship Project

Private / NDA

An AI-powered language-learning chat platform built during my internship at Immersio. Designed to provide real-time conversational coaching by integrating the OpenAI API with a Django backend and Kafka for asynchronous message processing.

BackendPython, Django
APIOpenAI API
MessagingKafka
ToolsGit, Postman
  • OpenAI API integration for context-aware conversational responses
  • Kafka message queue for asynchronous, non-blocking chat flow
  • Django REST backend managing sessions and user context
  • Language-learning prompts tailored to learner level
Problem Solving & Lessons Learned

Problem Solving

Early on, synchronous API calls to OpenAI caused noticeable delays in the chat UI. The solution was to introduce Kafka to decouple the request and response cycle — the frontend sends a message and Kafka delivers the AI response asynchronously, keeping the UI responsive.

Lessons Learned

Learned how to integrate a third-party AI API into a production Django application, and how message queues solve real-time responsiveness issues in chat-based systems. Gained exposure to async architecture patterns used in real enterprise software.

Future Improvements

  • Add user progress tracking and vocabulary history
  • Support multiple languages and proficiency levels
  • Implement WebSocket for true real-time delivery

Screenshots

Loan Management System screenshot

Loan Management System

💼 Cypress Hills Partners — Internship Project

Private / NDA

A full-stack loan management dashboard developed during my internship at Cypress Hills Partners. Built to give staff a structured interface for managing client loan records — replacing manual tracking with a queryable, CRUD-enabled admin system.

BackendNestJS
FrontendReact, Refine
DatabasePostgreSQL
APIGraphQL
ToolsGit, Postman
  • GraphQL API with full CRUD operations for client loan records
  • React + Refine admin UI with sortable, filterable data tables
  • PostgreSQL schema designed for financial record integrity
  • Role-aware views for different staff access levels
Problem Solving & Lessons Learned

Problem Solving

GraphQL and the Refine framework were both new to me at the start of this project. To get up to speed quickly, I built a small throwaway prototype first to understand how resolvers and the Refine data provider connected — then applied that understanding to the real system. This reduced integration errors significantly.

Lessons Learned

Learned how GraphQL differs from REST in terms of query flexibility, and how Refine abstracts common admin UI patterns (CRUD, pagination, filtering) so developers can focus on business logic. Also gained experience working with a typed NestJS + PostgreSQL backend in a real client environment.

Future Improvements

  • Add dashboard-level analytics (loan status summaries, overdue alerts)
  • Export records to CSV/PDF for reporting
  • Implement audit logging for all record changes

Screenshots

Skills & Tools

Technologies I use to deliver durable, scalable solutions.

Contact

Want to collaborate or have a project in mind? Let’s talk.