Linda Chang

designer

developer

dork

Hi, I'm Linda.

Computer Science @ Brown University

I like creating cool things. :)

SKILLS

  • Java
  • HTML & CSS
  • JavaScript & JQuery
  • Node.js
  • Python
  • SQL
  • C
  • Swift & Objective-C
  • Unity
  • C#
  • C++
  • PHP

Projects

runDvous

Summer 2016

Prize: Winner of the Silicon Valley Innovation Academy 2016

Tools: Twilio API, Node.js, HTML/CSS/JS


Teammates: San Twist, Praseed Jagannathan, Kwok Yu Liu, Sreekavitha Parupalli


Description:

runDvous is a delivery logistics solution that aims to make package delivery more efficient by sending notifications to the customer before package arrival.

My teammates worked on the business and marketing side of the project, doing customer research. We have a blog here.

I worked on the technical side by myself. I created the MVP (minimum viable product), which was a website that allowed a delivery person to upload a .txt schedule of the day's deliveries. The server would parse the file and display the list of customers in a table. Once the "Request Status" button was clicked, each customer would receive a text message inquiring about whether they were free to receive their package. The website would update with their status in real time using socket.io.

I also created a home page detailing the initial concept and our team here.

P.S. the name is a play-on-words with "rendezvous". Also, the awards ceremony is at 1:52:00 in the YouTube video.

Tags: web, work

Gitbuddy

Spring 2016

Tools: GitHub API, Node.js, D3.js, HTML/CSS/JS


Teammates: Lucy Huang, Sophie Guo


Description:

Tags: web, classes

Brown Datathon

2017 (ongoing)

Tools: Bootstrap, particles.js, HTML/CSS/JS


Teammates: Katie Chu


Description:

I lead the web and design team for the Brown Data Science club. We're going to have a data hackathon in Spring 2017, so we created this website for information and registration purposes. The club also hosts workshops on different topics in data science.

P.S. yes, particles.js is a recurring motif in my work.

Tags: web, work

Jungo

Nov 7-8, 2015 @ YHack 2015

Tools: Pyramid, Facebook Graph API, MongoDB, Python, HTML/CSS/JS


Teammate: Ben Navetta


Description:

Jungo is a website that aims to connect people who share similar interests.

It uses Facebook login and the Facebook Graph API as the source of interests, with search keywords locating corresponding Facebook pages. We used MongoDB to store user interests and hosted the site on Microsoft Azure (though it's no longer up).

I did most of the front-end design, as well as pulling information from the Facebook Graph API and integrating with Facebook login. My teammate hosted the website and handled the MongoDB database querying.

P.S. Jungo is Latin for "I join".

Tags: web, hackathons

Wikiverse

Oct 22-23, 2016 @ HackHarvard 2016

Tools: Unity, C#, Oculus Rift, Wikipedia API, espeak API, Node.js


Teammates: Nina Polshakova, Tim Guo, Jingru Guo


Description:

Wikiverse is a visualization of Wikipedia in virtual reality using the Oculus Rift.

We created it with the idea of trying to synthesize Wikipedia's information overload into a single experience for the user. After entering in a keyword, nodes of Wikipedia page titles appear in clusters in every direction, in a spherical constellation around the user. It is accompanied by text-to-speech audio using the espeak API and Interstellar music on a galactic virtual environment.

I assisted with setting up the Node.js server for getting the data from Wikipedia. In Unity, I created the nodes to display the text, as well as the inital screen to input a keyword and integrating the audio with the espeak API.

Tags: other, hackathons

SoundStock

Sep 19-20, 2015 @ HackMIT 2015

Prize: Winner of the Nasdaq Sponsor Prize

Tools: Nasdaq API, Python, Unity, C#


Teammates: Aaron Gokaslan, Laura Pang, Chen Ye


Description:

SoundStock converts Nasdaq stock market data into sound, mapping financial factors such as VWAP (volume-weighted average price), price, volatility, volume, bid offer to sound factors such as bass, volume, pitch, modulation, etc.

This process is known as sonification, and is used by NASA to convert information from space, such as the data from the sun's magnetic field, into sound, so that scientists can listen and detect trends in the data that they might not be able to spot visually.

Our team's story was featured in two articles at Brown, including one here and in the external link above.

I assisted with getting the data from the Nasdaq API into JSON format. I also got data from the FiscalNote API since we were initially thinking of converting the frequency of words in government documents to sound, but we didn't end up going through with this idea.

Our team was featured on Times Square and was invited to Nasdaq's MarketSite, which is where the photos come from.

Tags: other, hackathon

HerStory

Aug 27-28, 2016 @ CHIMEHACK 3 (Facebook HQ)

Tools: Twilio API, Django, Python, Node.js, HTML/CSS/JS


Teammates: Grace Newman, Melody Cao, Melissa Yip, Megan Kennedy, Monica Turrey


Description:

HerStory is about connecting survivors of abuse. We used the Twilio API to create an SMS service to send and receive text messages sharing stories, knowledge, and resources.

I worked on the technical side of things with two other teammates, who worked on the Django back-end and database. I created the Node.js server and connected to the Twilio API with a conversation decision tree.

My other teammates focused on the idea and information, researching stories and resources for survivors.

Tags: web, work

EventBox

Feb 6-7, 2016 @ Hack@Brown 2016

Tools: Gmail API, Google Calendar API, Jade, Node.js, HTML/CSS/JS


Teammates: Tim Guo, Chris Liu, Ze Li


Description:

Brown students receive daily emails about university events for that day called Morning Mail.

Tags: web, work

alsus

Summer 2015

Tools: Objective-C, Xcode, Pixelmator


Description:

alsus is an iOS app for users to tag interesting places they find. It features a home, search, add, and profile page, and filters by distance from the user.

I designed the thing and also wrestled with Xcode long enough to get everything to work. 'til we meet again, my nemesis.

P.S. Uh, turn your head sideways, I guess.

Tags: mobile, personal

Hope Cream

Jul 23, 2016 @ SVIA Innovation Sprint (Stanford University)

Tools: Zapier, Jotform, Facebook Graph API, Onfleet, Node.js


Teammates: 50+ people


Description:

The idea for the event was that we would collectively create a company within 8 hours from sales to marketing to engineering to logistics.

Hope Cream was an on-demand "uber for ice-cream" around Stanford's campus. The majority of students involved were on the sales and delivery team, selling and delivering ice-cream on the ground.

I was on the engineering team with about five other people. I used Zapier to link up a Jotform input form with Onfleet, a delivery logistics system. I also created a Facebook chatbot to handle customer inquiries.

My friend wrote a great blog post of the experience here.

Tags: web, work

Google Street View in VR

Fall 2016 (ongoing)

Tools: C++, YURT


Teammates: Heather Sha


Description:

Here, have a generic picture of Google Street View and pretend it's in virtual reality. This project in a nutshell.

The aim is to import the visuals and functionality of Google Street View into Brown's immersive 3D virtual environment room named YURT. The YURT has about 70 projectors, so it is confirmed to be about 10 times cooler than Brown's previous virtual reality room, the CAVE.

So far, we got the YURT to display the street view images in 360 degrees. Next: getting the room to respond to commands from the wand controller and move down the street.

Tags: other, work

Personal Website

2017 (ongoing)

Tools: HTML/CSS/JS



Description:

Is this too meta?

Not gonna lie, I'm pretty pleased with the design for this site. :) Web design and development is one of my favorite things, so it was nice to pull out all the stops and play with a bunch of different animation packages, which ranged from JavaScript plugins to CSS and SASS and LESS and HAML extensions (had a fun time compiling and integrating everything...not).

Thought I could get by with vanilla HTML and CSS since this site isn't too complicated, but I might look into switching to HAML and SASS or something in future if this proves more unmanageable.

P.S. check the page source.

Tags: web, personal

Snowly

Summer 2016 @ ENGR 145 (Stanford University)

Tools: Swift, Xcode, Sketch, Pixelmator


Teammates: Gala Gil Amat, Paulo Gregorin, Chris van der Meulen, Nikolai Ries, Taylor Clayton


Description:

The class was more focused on the business-side of tech entrepreneurship, looking at

Tags: web, classes

CS33 - Intro to Computer Systems

Fall 2016, Grade: A

Tools: C, x86 assembly language, UNIX


Description:

This was a class I took at Brown, which featured nine projects and twelve labs. The projects are listed in chronological order.

1. Maze: Implemented a maze generator and maze solver in C. The maze generator uses a drunken-walk algorithm and the solver uses depth-first search.

2. Data: Used bit manipulations to implement nine functions in C, including conditionals, the bang operator (!x), and the absolute value operator.

3. Bomb: Defused a binary bomb by stepping through the disassembled assembly code using gdb and figuring out what keywords to input. Includes five phases and a secret phase.

4. Buffer: Examined disassembled code to devise exploits to overflow the buffer with other code. Includes three phases and an extra credit phase.

5. Performance + Strings: In the Strings part of the assignment, I implemented seven library string functions, including strcspn(), strncmp(), and strtok(). Performance was about using Horner's Method to unroll a "for loop" to improve the performance of a polynomial function.

6. Shell 1: I created my own UNIX shell in C featuring file I/O, file redirection, forking, command line parsing, and some built-in shell commands.

7. Shell 2: I extended Shell 1 with signal handling, process groups, job lists with ability to switch between background and foreground jobs, and reaping child processes.

8. Malloc: Implemented init(), malloc(), free(), check_heap() and realloc() routines with a linked list of free blocks and cascading, trying to optimize space and performance.

9. Database: Implemented networking to handle multiple clients, fine-grained locking with mutex, and the ability to terminate client threads with SIGINT and exit the server with EOF.

Tags: other, classes

CS127 - Database Management Systems

Fall 2016, Grade: B

Tools: Java, SQL


Description:

There was homework every week on the theoretical aspects of database organization and processing, as well as four projects on the applied side of it, listed here in chronological order.

1. Yelp

2. ETL - Extract, Transform, Load

3. B+ Tree

4. SimpleDB

Tags: other, classes

CS132 - Creating Modern Web Apps

Spring 2016, Grade: A

Tools: Node.js, JQuery, AJAX, HTML/CSS/JS, SQL, MongoDB


Description:

We had four projects, six homeworks, and intermittent labs in this class. The projects are listed in chronological order.

1. HTML: This was a two-part assignment. In the first part, we used CSS to change the look of a bland HTML page to match a given design. In the second part, we created a portfolio website for ourselves (much simpler the one you're looking at here).

2. JavaScript: AKA TrumpFeed. This project was about streaming a live set of tweets from Donald Trump using AJAX. For my implementation, I also added

3. Chatroom: In this project, I created a chatroom by polling the Node.js server . Rooms were stored in a SQLite3 database,

4. Realtime:

Tags: web, classes

Bulki

Spring 2016 for CS32

Tools: Java, SQL, AngularJS, Ionic, HTML/CSS/JS


Teammates: Leslie Bresnahan, Adam DeHovitz


Description:

This was my final project for CS32. Problem: many grocery store customers in the United States purchase goods in bulk even when they don't need such a large quantity, since it saves costs. Bulki strives to solve this problem with an app that allows users to find others to split the costs of bulk goods, allowing them to purchase individual items at bulk prices.

The app features event creation, the ability to join and leave events, profiles, location services, real-time chat, notifications, and the ability to rate and comment on other users after splitting a purchase with them.

I worked on the database in the back-end, creating many-to-many relational tables and writing the numerous SQL queries that the front-end app required. I also implemented web sockets in Java to allow users to communicate using real-time chat.

My team members created the front-end layout using the AngularJS framework and Ionic to achieve a mobile appearance for the app, and implemented location services.

We presented our project with a slideshow here.

P.S. We thought that the idea was most suited for a native mobile app, but due to the limitations of the class criteria, we had to use Java in the back-end.

Tags: web, classes

CS32 - Intro to Software Engineering

Spring 2016, Grade: B

Tools: Java, HTML/CSS/JS, pain and tears


Description:

Tags: other, classes

CS15 - Intro to Object-Oriented Programming

Fall 2014, Grade: A

One of the top students in the class (see Cartoon below)

Tools: Java, Swing


Description:

Interestingly, the projects range in size from fairly short exercises (AndyBot to TASafeHouse) to full-fledged games (Cartoon to Pacman).

1. AndyBot: The goal is to move a robot to the end of a maze. It's very simple.

2. LiteBrite: With the given support code, I created a color palette.

3. TASafeHouse: With the given support code, I placed furniture in a house and made the lights turn on and off. This project was designed to teach the concepts of polymorphism and inheritance.

4. Cartoon: This was the only project that involved a competition where the best couple of projects were shown to the 300+ student class during lecture. My project was one of the few chosen and I also got lunch with the illustrious Andy van Dam. The project was very open-ended, and I created a click-and-drag game where players catch pikachu heads and drag them into a pokeball.

5. DoodleJump: I programmed a version of the game Doodle Jump. This included the basic features of platform scrolling, collision detection, character physics including gravity, platform generation, and game over functionality. For extra credit, I also included images for every element on the screen, movable platforms, a restart mechanic, and an animation for all the platforms to move off the screen after the player triggers game over.

6. Tetris: I programmed a version of the classic game. A random block would be selected and progressively fall down the screen as the player moved the block around and rotated it. As rows cleared, points were added, and the game ended when the stack of blocks hit the top of the screen. As extra credit, I added in the Tetris audio, a preview function so players could see what block was incoming, and a menu layer.

7. Pacman: I programmed a version of the classic game Pacman. This includes the behavior of the ghosts that chase Pacman, which each have a different version of the breadth-first search algorithm. As extra credit, I added Pacman audio, different levels, and animation, which includes blinking ghosts, Pacman's mouth, and a flashing READY label.

Tags: other, classes

CS16 - Intro to Algorithms and Data Structures

Spring 2015, Grade: A

Tools: Python, Java


Description:

Tags: other, classes

CS1971 - 2D Game Engines

Fall 2015

Tools: Java


Description:

In this class, I created both the game engine and an actual game on top of it.

1. Tic: In Tic, I actually created a Tic-Tac-Toe game. On the engine side, I

2. Tac:

3. Tou:

Tags: other, classes

High School

2012-2013, Grade: A+

Tools: HTML/CSS/JS, SQL, PHP


Description:

Feels so long ago already.

I took a two-year-long class in high school called Information Processing and Technology (IPT), where we learned the basics of JavaScript, HTML/CSS, PHP, and SQL, as well as the principles of HCI and the concept of expert systems.

I had projects, exams, and regular homework in this class, but I'm going to show two web-based projects here.

Yahtzee: I implemented the dice game named Yahtzee, including all the rules to determine the number of points each turn and the eventual winner.

Organism Expert System: I implemented an expert system on biological classification, where players would begin the game with an animal in mind and answer questions as the system progressively tries to narrow it down before guessing what animal the player was thinking about. This involved a fairly complex decision tree.

Tags: web, classes

Icons made by Dave Gandy from www.flaticon.com is licensed by CC 3.0 BY