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
- Award Info
- 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
over 50 thousand
times and is starred on github by
over 400
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.