Curriculum Vitae

Education

September, 2014
Doctor of Philosophy (Ph.D.) in Computer Science
University of California, Santa Barbara
June, 2013
Master of Science (M.S.) in Computer Science
University of California, Santa Barbara
June, 2008
Bachelor of Science (B.S.) in Computer Science with Honors
University of California, Santa Barbara

Publications

Conferences
Computational Thinking for Physics: Programming Models of Physics Phenomenon in Elementary School (pdf)
Hilary Dwyer, Bryce Boe, Charlotte Hill, Diana Franklin, and Danielle Harlow
Proceedings of the 2013 Physics Education Research Conference (PERC 2013). Portland, OR, July 2013.
Hairball: Lint-inspired Static Analysis of Scratch Projects (paper pdf | slides pptx)
Bryce Boe, Charlotte Hill, Michelle Len, Greg Dreschler, Phillip Conrad, Diana Franklin
Proceedings of the 44th SIGCSE Technical Symposium on Computer Science Education (SIGCSE 2013). Denver, CO, March 2013.
Assessment of Computer Science Learning in a Scratch-Based Outreach Program (pdf)
Diana Franklin, Phillip Conrad, Bryce Boe, Katy Nilsen, Charlotte Hill, Michelle Len, Greg Dreschler, Gerardo Aldana, Paulo Almeida-Tanaka, Brynn Kiefer, Chelsea Laird, Felicia Lopez, Christine Pham, Jessica Suarez, Robert Waite
Proceedings of the 44th SIGCSE Technical Symposium on Computer Science Education (SIGCSE 2013). Denver, CO, March 2013.
Fear the EAR: Discovering and Mitigating Execution After Redirect Vulnerabilities (pdf)
Adam Doupé, Bryce Boe, Christopher Kruegel, and Giovanni Vigna
Proceedings of the 18th ACM Conference on Computer and Communications Security (CCS 2011). Chicago, IL, October 2011.
Organizing Large Scale Hacking Competitions (pdf)
Nick Childers, Bryce Boe, Lorenzo Cavallaro, Ludovico Cavedon, Marco Cova, Manuel Egele and Giovanni Vigna
Proceedings of the Seventh Conference on Detection of Intrusions and Malware & Vulnerability Assessment (DIMVA 2010). Bonn, Germany, July 2010.
User Interactions in Social Networks and their Implications (pdf)
Christo Wilson, Bryce Boe, Alessandra Sala, Krishna P. N. Puttaswamy and Ben Y. Zhao
Proceedings of ACM EuroSys 2009. Nuremberg, Germany, April 2009.
Workshops
Do Social Networks Improve e-Commerce?: A Study on Social Marketplaces (pdf)
Gayatri Swamynathan, Christo Wilson, Bryce Boe, Kevin C. Almeroth and Ben Y. Zhao
Proceedings of First Workshop on Online Social Networks (WOSN 2008). Seattle, WA, August 2008.

Teaching Experience

Fall 2016-2018 -- Scalable Web Services (CS291A)
Fall 2015 -- Scalable Web Services (CS290B)
Fall 2013 -- Problem Solving with Computers II (CS24)
Summer 2013 Session C -- Problem Solving with Computers II (CS24)
Summer 2012 Session B -- Object Oriented Design and Implementation (CS32)
Prepared and taught a class of 25 students. Covered a majority of ten weeks of material in six weeks. Created a challenging and fun card-game final project that effectively demonstrated the concept of polymorphism in C++.

Teaching Assistant Experience

Winter 2014 -- Problem Solving with Computers II (CS24)
Winter 2012 -- Problem Solving with Computers II (CS24)
Adapted my automated feedback and assessment system to provide supplemental feedback crucial to first year students' success.
Student Evaluations -- 24 responses (1-5, 1 is best)
Overall evaluation of the TA: 1.3 (cs department average: 1.6)
2011-2012 Academic Year -- Computer Science Lead TA
Participated in the 2011 Lead TA Institute. Responsible for training first year teaching assistants in the fall through the CS501 seminar covering topics such as confidence in the classroom, grading, ethics, and teaching pedagogy. Additionally responsible for providing TA consulting, and ensuring all new TAs are video taped and attend a video consultation in the winter quarter. Finally each quarter I conducted midterm TA evaluations for all the courses.
Notable additions to the TA training program include the addition of a TA pairing program in which students of CS501 had to attend a current TAs laboratory, or discussion section as well as requiring CS501 students to create a Teaching Philosophy statement.
Spring 2011 -- Operating Systems (CS170)
An upper division course required for both Computer Science and Computer Engineering majors with 52 students. The projects were similar to when I taught the class in Spring 2009.
I was responsible for teaching one project oriented section a week and handling half the project grading.
Student Evaluations -- 10 responses (1-5, 1 is best)
Overall evaluation of the TA: 1.4 (cs department average: 1.6)
2009-2010 Academic Year -- Computer Science Lead TA
Participated in the 2011 2009 Lead TA Institute. Responsible for training first year teaching assistants in the fall through the CS501 seminar covering topics such as confidence in the classroom, grading, ethics, and teaching pedagogy. Additionally responsible for providing TA consulting, and ensuring all new TAs are video taped and attend a video consultation in the winter quarter. Finally each quarter I conducted midterm TA evaluations for all the courses. In attempt to make the midterm TA evaluation process more efficient I implemented an online system, taevals, which I launched in the spring quarter.
Spring 2009 -- Operating Systems (CS170)
An upper division course required for both Computer Science and Computer Engineering majors with 42 students. The projects involved writing a user level shell for Linux, adding real-time processes to the Minix scheduler, adding a semaphore server (service) to Minix, implementing the core dump functionality in Minix and finally adding immediate files to Minix's file system.
As the sole TA, I was responsible for teaching one project oriented section a week, in addition to handling the grading of the projects. Additionally I presented the lecture on memory management.
Student Evaluations -- 32 responses (1-5, 1 is best)
Overall evaluation of the TA: 1.3 (cs department average: 1.8)
Winter 2009 -- Compilers (CS160)
An upper division course required for Computer Science majors with 25 students. The projects had the students write a recursive decent parser for a calculator, followed by a much larger project where the students wrote a compiler for a language similar to C utilizing the tools flex and bison. The assembly produced by their compiler was for x86 machines.
I instructed one section a week, and graded 5 projects. During the course I wrote both a simple utility, turnin_helper and a more sophisticated automatic grading utility, auto_grade to reduce the time spent grading. The latter utility was tremendously beneficial to the students as they received immediate feedback for their submitted projects.
Student Evaluations -- 10 responses (1-5, 1 is best)
Overall evaluation of TA: 1.1 (cs department average: 1.9)

Organization

2010 Graduate Student Workshop on Computing -- Chair
Ensured the success of the 2010 GSWC by securing $4000 in funding and delegating tasks where appropriate. Improved organization efficiency by setting up both a HotCRP review service, and by creating a Google Sites page with all organizational information for future GSWC program committees.
2009 Graduate Student Workshop on Computing -- Co-Chair
Secured $3000 in funding for the event as well as participated in the paper review process and other conference organization subtleties.

Awards

Outstanding Computer Science Teaching Assistant Award, College of Engineering -- 2011-2012 Academic Year
Academic Senate Outstanding Teaching Assistant Award, UCSB, 2010-2011 Academic Year
Outstanding Computer Science Teaching Assistant Award, College of Engineering -- 2008-2009 Academic Year
Outstanding CS Teaching Assistant Award, Computer Science Department -- Spring 2009
Outstanding CS Teaching Assistant Award, Computer Science Department -- Winter 2009

Outreach Activities

November 2012, Programming Competition Teams' Coach
Identical responsibilities to those lised under the November 2011 description.
Summer 2012, Animal Tlatoque
Animal Tlatoque was a two-week, NSF funded, summer camp targeted towards middle school students that incorporates Latin American Culture, animals and computer science. As the graduate student organizer I was responsible for refining the scratch-based activities and ensuring the undergraduates' day-to-day preparation.
November 2011, Programming Competition Teams' Coach
As the coach for the three UCSB teams competing in the 2011 Southern California Region ACM International Collegiate Programming Contest, I was primarily responsible for ensuring the teams' preparation on the day of the competition. This task involved ensuring they were familiar with the official submission process as well as the process for asking for any needed clarifications. Additionally I was responsible for transporting the majority of the UCSB student participants between Santa Barbara and Riverside for the competition.
February 2011, FUSE (Family Ultimate Science Exploration) Volunteer
As a FUSE volunteer, I was tasked with leading the Homemade Speakers activity. In addition to experiment preparation and providing a general overview of the activity, I assisted the three groups of fifteen to twenty middle school students (plus their parents) in the construction of a speaker. I took great delight in observing the students' awe when they first heard music from their paper plate speakers.

Industry Work Experience

AppFolio -- Sept. 2017 - Present
Staff Software Engineer, Tech Lead.
AppFolio -- Jan. 2016 - Sept. 2017
Senior Software Engineer, Tech Lead.
AppFolio -- Sept. 2014 - Jan. 2016
Senior Software Engineer.
AppFolio -- June 2011 - Sept. 2011
Assisted in the redesign and re-implementation of the production level network architecture to reduce the application level memory overhead. Positive side affects of such changes resulted in a simpler deployment configuration, and lower network latencies between the client and application server.
AppFolio -- June 2009 - Sept. 2009
Improved continuous integration performance through parallelization for the purpose of reducing the time to run the entire test suite.
Google -- July 2008 - Sept. 2008
As a Platforms Engineering Intern I worked on writing multi-machine network tests for the autotest framework. This heavily involved core autotest modifications as it was not designed for multi-machine tests.
VCEL (sold to fotochatter.com) -- Aug. 2005 - Nov. 2006
Involved in the design and start-up of a first generation mobile social network service. Wrote a custom query based protocol for communication between J2ME enabled phones and the web server.
WorldViz -- Apr. 2005 - Present
Hired consultant for a variety of tasks. I began by working with web development in PHP, and eventually tasked with redesigning their internal network both at the physical level and virtual level. This task involved migrating and updating their Active Directory and Exchange servers from which I learned I never want to work with those products again. Most recently, I have continued to maintain their AWS-based web server after suggesting and relocating the web server to AWS around 2009.
Northrop Grumman -- Nov. 2003 - Sept. 2004
As a Computer Support Intern I helped support Windows 2000 and XP machines, printers, and other general technical problems.
Henry's Farmers Market -- Sept. 2003 - Jan. 2004
Paper or plastic?

Open Source Projects

CRAWL-E (source)
CRAWL-E is a web crawling framework that seamlessly supports distributed crawling across multiple threads as well as multiple machines. One of the primary advantages of CRAWL-E over other distributed crawlers is its continued use of a single socket to perform many HTTP requests thus drastically reducing the number of TCP handshakes required. I wrote CRAWL-E in order to collect data from both Overstock.com and Facebook when I was working in Professor Ben Zhao's lab. Since that time, I have continued to improve CRAWL-E as issues appear and features are requested.
Python Reddit API Wrapper (source)
The Python Reddit API Wrapper (PRAW) is python library that interfaces with the API provided the the social news site reddit. PRAW has been installed well over a million times and is starred on github by over 2800 developers. As the package maintainer and primary developer I regularly monitor reddit's source code for changes in order to add support for new API functionality when available. I also often communicate with users of PRAW to get a sense of what may be lacking or could use improvement. As a result of such communications I have personally contributed a number of improvements to reddit's source. These improvements in turn lead to improvements in PRAW's source.
me
email