Overview

Map
Avatar
Introduction
Hi, I'm Linda!

Linda is a versatile software engineer with an emphasis on back-end development. From relational database entity modeling to API design and implementation.

Linda also has experience in front-end development, including frameworks such as Vue and Angular.

Although not part of her day-job, Linda also dabbles in data visualizations. A picture's worth a thousand words, and a graph is the best type of picture.

Skills

Backend Skills
Languages, Frameworks, etc.
  • Java, Spring Framework, SpringBoot
  • Python
  • Relational databases: MemSQL, PostgreSQL
  • Non-relational databases: Redis, MongoDB, ElastiCache
  • Docker
  • Kotlin (learning)
  • Go (learning)
Frontend Skills
Languages, Frameworks, etc.
  • JavaScript, TypeScript, HTML/CSS
  • NodeJS
  • Express, Restify
  • Angular 7
  • Vue 2
  • Flutter, Dart (Learning)
Data Skills
Analysis and Visualizations
  • R
  • RStudio
  • Python
  • Julia (learning)
Cloud Skills
Various AWS services
  • EC2, Security Groups, Load Balancers, Target Groups
  • S3
  • ECS
  • SQS
  • Route 53
  • Cloud Formation Templates

Projects

Simple War
Online, real-time, turn-based, strategic board game

Simple War is a two-player correspondance game. Players can find matches in the lobby of the game. Once a game has started, players take turns placing cards on a 5x5 board. Cards can either be a defensive Wall, or an offensive Troop. Walls are stationary and will defend a lane with their higher defensive stat. Troops advance forward one square per turn, obliterating any of the opponents' Walls or Troops in the way. Combine Troops on the battlefield for increased offensive strength.

Points are scored when a Troop moves all the way across the board, to the opponent's side. The first player to score 10 points wins.

The backend API and "game-engine" logic layer was written in Java, SpringBoot 2.0. Data for the game states and user data are stored using MongoDB.

There are three versions of the client:

  • Web-Client - Originally Angular 4, but recently upgraded to Angular 7
  • Mobile-Client - Took advantage of the Flutter Framework to write a single codebase for both Andoid and iPhone. Good opportunity to learn Flutter and Dart.
  • [CURRENT] Web-Client - Rewrote the whole game UI in Vue, and incorporated it on this website!

See "Simple War" tab.

Data Visualizations
Various Data Visualizations

R for cleanup, analysis, and visualizations. Python for scraping, collecting, and exporting to .csv.

Repositories:

See "Data Visualizations" tab.

Poporopo
Term Project for Advanced Computer Game Design

A competitive, real-time, cross-platform game combining the simple game mechanics of Doodle Jump, with the multi-player competitive racing nature of Mario Kart. Race your friends to the top by finding the best path up. Or, be lucky enough to encounter useful items.

Supports game sizes of one to four. Different maps have different terrains to race on. Try to find the best route!

Decoding Electrocorticographic Readings (Brain Data)
Undergraduate Thesis for Statistics Major

Electrocorticographic readings were taken along 96 frequencies for 70 different nodes on the brain in response to clear and noisy audio-visual stimulus of a woman saying ’rock’ and ’rain’. The project goal is to produce interpretable models that determines the stimulus based on these readings. Multiple dimensionality reduction methods were tried with an emphasis on partial least squares variants. The data was then projected into a lower dimension where classification methods were used to predict the stimulus. Overall, higher-order sparse partial least squares with linear discriminant analysis was found to be the best combination for accurately determining the stimulus. A sparse model-stacking of these models produced a more accurate, but less interpretable model.

See write-up.