I'm a Northwestern graduate with a double major in Computer Science and Communications Studies. I'm an eclectic creative with a love for product management, programming, and design.
Invasion of the Energy Monsters is a project that I’ve been working on for two years now, first as work with a professor, and now as a free-time project.
Energy Monsters started as an educational game where two teams (Human Heros and Energy Monsters) faced off in a “haunted” house composed of individual room tiles. Energy Monsters played cards to attack, or turn on appliances in rooms and grow stronger on the “wasted electricity”. Humans could then turn the same appliances off to save electricity and turn the tides in their favor before their own attacks.
The lab saw some commercial potential in the game and I was told:
“Well right now it’s pretty fun, but it’s not really fun”.
I set out to make it really fun.
"Ampire loves doing things inefficiently. Watch out or Ampire will run the dishwasher when it's half empty."
I played Energy Monsters constantly, with every friend that I could recruit, and tweaked the rules. I gradually discovered that the game could be stalled out by either team, and there wasn’t enough speed to the game by having teams only play cards (often in far-away rooms) to shift the playing field. So, I implemented my first major rule change: when a monster entered the room, it automatically turned on the “lights” in that room and added 50 watts of wasted electricity. When a human entered a room, they automatically turned any “on” lights off, and reduced wattage by 50. Read my first updated version of the rules here.
This added chase element made the game much more exciting to play. Players always had a move they could make, even if it was just turning off or on some lights while they bided their time for a bigger play.
As with most things, with the new solution came a new problem. players were having to flip over multiples tiles every turn to signify that lights were on or off in specific rooms. This drastically slowed the game down and was annoying. Using tokens or the like to signify “lights on” was no better because it cluttered up the board. The new lights rule also meant that players had to be adding and subtracting small amounts of wattage to the spinner every turn, which was tedious. I set out to solve all of these problems.
My idea was to build a board that the tiles would sit on. I wanted to use magnets in the pieces to trigger LEDs in the board to turn on or off depending on whether the piece was a monster or a human. I set off learning about circuits, an area I knew nothing about, and finally came to a solution. Using magnetic-field-sensing hall effect sensors connected to an arduino, and magnets in the playing pieces oriented towards different polarities, I was able to make pieces turn on and off lights in each room, and automatically track the change in wattage with the arduino. The feedback was instant and very satisfying.
This process was a journey though. There aren’t enough pins in the Arduino to manage all of the sensors and lights on the 5x3 board. Once I managed my goal with just a couple rooms I had to learn about and implement multiplexors for the sensors. The LEDs needed different multiplexors because they need to hold their state even after the player’s magnetized piece moved to a different tile. Magnetizing the pieces themselves was also a challenge. I solved it by 3d-printing a hollow space into the token, droping the magnet in, and 3d-printing the space closed. Now the board tracks players paths as they move about, and dynamically updates the house wattage from the lights. I was published for my work with the board, and demoed it at the Games+Learning+Society Conference in Madison this past August, where our team won 1st prize.
Another prototype is already underway that will add wifi connectivity to the board. After that, I plan on approaching a way to track the use and play of the cards themselves. Using an RFID reader and an antennae array, I hope to identify individual pieces (by adding RFID chips to them) and where they are on the board when at rest. Because RFID takes a few seconds, the hall-effect systems will still be needed to track movement. I will also add RFID chips to the cards themselves, and create a discard section of the board where cards are played. This way, when a person plays a card, the board itself will be able to determine where the respective piece is, and if the play is legal. If it is, the board will be able to alter the wattage accordingly on the house. In this way, all of the wattage tracking will be taken care of automatically and digitally, and the players can focus on the fun of the game, and still get the satisfaction of spinning a real spinner, rolling real die, and moving real pieces. This connection of digital convenience with physical feedback and motion is where I think all boardgame design is destined to end up.
I have been a musician for my entire life. I've sung for presidents, with world-class orchestras, and on-stage with Beyoncé at the 77th Academy Awards. I write music for piano and guitar, and have a hobby of writing songs with comedy lyrics, or re-writing existing song's lyrics.
These are just a few of the many projects that I've had fun creating.
This was the menu theme song to the game
Here was the track for when the turtle Leveled Up (Thrilling!)
This is the track that played when the character's health completely ran out (Devestating). The small resulting grave would be added to the map for the player to pass on replays.
The play is memory.
Being a memory play, it is dimly lighted, it is sentimental, it is not realistic.
In memory everything seems to happen to music. That explains the fiddle in the wings.
I am the narrator of the play, and also a character in it. The other characters are my mother Amanda, my sister Laura and a gentleman caller who appears in the final scenes.
He is the most realistic character in the play, being an emissary from a world of reality that we were somehow set apart from. But since I have a poet's weakness for symbols, I am using this character also as a symbol; he is the long-delayed but always expected something that we live for. There is a fifth character in the play who doesn't appear except in this larger-than-life-size photograph over the mantel.
This is our father who left us a long time ago.He was a telephone man
who fell in love with long distances; he gave up his job with the telephone
company and skipped the light fantastic out of town. . . .The last we
heard of him was a picture postcard from Mazatlan, on the Pacific coast
of Mexico, containing a message of two words -
'Hello - Good-bye!' and no address.
I think the rest of the play will explain itself ...
[AMANDA's voice becomes audible through the portières.
This was the menu theme song to the game
Here was the track for when the turtle Leveled Up (Thrilling!)
This is the track that played when the character's health completely ran out. (Devestating)
Love Runs Out by One Republic
One of my favorite songs my a cappella group ever did, this arrangent focuses on a driving tenor melody with a sort of mystic support.
Jealous by Nick Jonas
Arranging modern pop songs for a cappella is always a bit of a challenge to get the right synth-like sounds. I am particularly proud of this arrangement's success with that.
Girl Crush by Little Big Town
I wanted to try an arrangement around a female vocalist, and picked Girl Crush. It was more difficult, and also the first country song I arranged. However, I think the country style really lends itself well to a cappella voices.
As just a small part of a project for a class, I was tasked with finding music to be played with the reading of a scene from Tennessee Williams' The Glass Menagerie. I was unable to find music that I felt fit the scene perfectly, so I arranged some of my own using GarageBand.
Bubble Turtle Adventure
As a way to explore Unity game design, two friends and I made a scrolling computer game called Bubble Turtle Adventure. I ended up becoming much more interested in designing sprite sheets and characters in Adobe Flash for the game, as well as writing and recording the music.
The game features a cute turtle in a desolate wasteland. Because the game is intended to poke fun at itself, I recorded all of the music and effects with only my voice (playing off of the opening menu scene in "Halo"). It was as hilarious as I had hoped.
Pianimals was a project done with a few friends to explore computer vision systems and how they could be used to create new kinds of interaction.
Our first prototype was a camera above a full keyboard that simply videotaped the user’s hands and displayed them in landscape under sheet music on an iPad. It also lit up on the sheet music what the next note to be played was. The goal was to prevent people from having to look back and forth from their hands to the sheet music as they learned. We were able to prototype this in incredibly low fidelity by holding a webcam above user’s hands and connecting the keyboard to an app called Synthesia.
We quickly leaned from this that users didn’t care much about being able to see their hands, and focused much more on the visual feedback from the notes they were playing, and the notes to come on the music staff.
We pivoted to a younger user population and focused on imparting an understanding of intervals and relative pitch instead of strict sight-reading. After a third prototype that added a learn-a-song mode, users began to give a lot of positive feedback, and research showed that a system like this could be very effective in teaching children some of the foundations of music.
Read our paper below!
In the beginning of my Sophomore year I started taking on paid website development projects. Aaron Packman is an Environmental Engineering professor, and his lab studies the environmental impacts of many facets of human life. Environmental sustainability has always been a passion of mine, so I happily took on the project. I've managed and continually updated and revised the website for the past few years.
Not every design choice is one I would have made were the website my own, but taking on this long-term project has given me a lot of experience in balancing the free reign I've had with design and creation with the specific choices and changes that the client wanted.
Because I managed the relationship and the needs of Packman labs so well, Professor Packman recommended me to the university to build the website for the new Water Research Center, which I did as well.
I've also built websites for production companies, student groups, startups, and more!
In winter of 2015 I co-founded a startup called BabyNinja. We learned that pediatricians require parents to track information about a baby's feeding, sleeping, and bowel movements. Seeing the need, we created an iPhone and Apple Watch app (right before the Apple Watch was released) that allowed parents to track all of these with only two taps on their Apple Watch.
Being a co-founder forced me to wear many different hats in the interaction design process. I conducted over a hundred interviews with new parents, pediatricians, and baby experts. I made and sent out marketing materials and press releases, and tweeted. I also built our website, made many decisions on app design, and designed and built our database.
Founding a startup was exhausting, but it gave me invaluable experience in the full interaction design process, from research, to user testing, to backend and frontend develelopment and final product.(And then more user testing!)
Read our one-pager below
Desperate to win my March Madness Bracket against my buddies from college, I decided to see if I could get an edge through some programming. Knowing how much statistical data there is on NCAA basketball games, I figured I could use machine learning to find new insights and make better choices on who would win my March Madness Games.
I worked with a friend who had some experience in the space, and he recommended starting with a simple Elo Scoring system, feeding in all of the game history, and getting a baseline ranking. This was successfully done! By the time the elo scoring model was functional, I had to make my pics (I didn't get last place, so something worked). Since then I've started the work on using some simple machine learning algorithms along with all game data and all player stats for all games, to hopefully find some unique correlations to affect my choices for this March. Here's to first place. Check out the code repo on the left.
When I first started work at IBM, I decided to start using Vim. My thought process was: all the best programmers I've seen use Vim, not an IDE, so the first step to becoming a pro is to switch to Vim. Maybe not the most sound logic, but I was undeterred.
I was coming from using the Brackets IDE, which I had become accostomed to the color scheme of. So I went about making a custom Vim color scheme to match it! The color scheme is downloadable from my github and easily switched to by adding a line to your .vimrc file.
As a commited member of the nerd community, I love Settlers of Catan. After playing with my friends one night I was struck with the idea that a computer could do it better. I recruited my buddy Mark Langer, and together we began the Catan-AI project.
Long before beginning any actual artificial intelligence, we needed to code in actual gameplay. We really wanted to make an AI that we could use to play actual Catan against human players at a table (not making people play Catan on a screen). So we've been building out the system as a state machine. As things happen on the board, we inform A.A.R.O.N. of them via terminal inputs. Then, when it's the AI's turn it will output a move (or purchase, trade proposal, etc.) A major challenge of this was coding in the board (which changes every game). We settled on a grid system with nodes at each location so that we could quickly type in a set of tiles (read from left to right and top down) which would inform properties of each node connected to the tile.
We recetly iterated on this node design and are putting another grid overtop of it, a broader ABC123 similar to Chess, to make entering updates easier on us.
The structure of the board and the objects that will be used have all been built. We're now nearing the end of programming in all actions that people can take. This is easier said than done. We need to be able to tell the AI when trades have been made, when exchanges happen, when longest road or largest army change hands, etc. The more we code the more we are learning the number of human nuances and actions in this game that we take for granted and aren't in the rules. All the more challenging and exciting.
To me, programming has always been about making machines do things for us so that we don't need to do them for ourselves. When I was studying for, and taking, coding interviews, I fould myself constantly referencing and re-building the same basic data structures, such as graphs or trees. I got tired of building the same directed graph class over and over again to solve a variety of different interview questions, so decided to make a package for it.
This immediately begs the question: "why didn't you just download one of the many existing data structures packages for python?" The answer is that they are all much too complicated for coding interviews. I wanted just the bare-bones objects that I could modify for each different question, and easily explain every part of to an interviewer. This is what I got with campyStructs.
I thought some interviewers wouldn't allow it, but it turns out most good interviewers tend to be more focused on the fact that you know the structure to use and how to use it than that you can build a Graph class as quickly as possible before actually solving the problem.