My name is Justin, and I graduated from the University of Puget Sound in 2017 as a computer science and theatre double major.
I am a software engineer at Snap, Inc. in Los Angeles, CA. I currently work on the chat UI for the Android platform of the company's flagship product.
Feel free to check out my Github page as well as the web application I built in college below....
In theatre, casting a show takes time. One of the most time consuming aspects of casting a show is creating a callback schedule.
Let me provide a bit of context. Typically, a show will hold two days of auditions:
This is the day when anyone who wants to audition for a play shows up and does so. They may do a monologue, sing a song, or read a pre-provided audition piece.
After general auditions, the director and assistant directors decide which actors they would like to see read for certain parts. For example, a director may want to see Actor A read for Romeo and Actor B read for Juliet. The director may also want to see Actor A read for Romeo again but with Actor C reading for Juliet instead of Actor B.
During callbacks, the director chooses which actors he or she wants to see at a given time. The director may only want to see one actor, maybe two actors, maybe four, etc.
These "groupings" are then organized into a callback schedule.
A single director casting for a single play isn't that difficult. It's more flexible; a director can change his or her mind and decide to see another grouping on the fly. But what if there are multiple directors simultaneously casting for multiple plays?
A theatre festival consists of multiple plays happening in a short amount of time. For example, a festival of 4 plays can go on for 4 weeks, with one play performed each weekend.
A festival will cast their shows from a pool of actors who all audition together on the first day. The next day gets tricky, because there will inevitably be scheduling conflicts between directors; some directors will want to see the same actors. Traditionally, creating a callback schedule for a festival is a slow process. The schedules are made by hand, and every director in the room tries their best to make sure they each see all or most of the actors they want to see.
Having been involved in one of these festivals - and being the savvy computer scientist that I am - I said to hell with that and wrote a script that created a callback schedule automatically. And it worked.
Due to popular demand, I decided to build a web application based on my callback scheduling algorithm.
I call it TheatreBot.