How Sendwithus Created a Student Coding Event - HR Open Source

Who Are We                 

Our company, Sendwithus was founded in 2013 as a Y Combinator company in Victoria, BC. The mission of Sendwithus is to help companies create emails that their customers actually want to read. To accomplish this, Sendwithus designed a dashboard that extends an email service provider’s capabilities. This dashboard simplifies the code required to build an email, allowing product managers, marketers, and CEO’s to create and change the emails they want, when they want. The purpose of this dashboard’s design is to reduce the load on developers, decreasing the overall time required to construct company emails.

We have two offices: the developer team in Victoria, and the marketing and sales team in San Francisco. Sendwithus’ aim is for Victoria to become a major tech hub in Canada.       

Why We Did It

All of the local tech talent was moving away after university so we wanted to target something towards recruitment. We saw a need for an event that could connect University students to the local tech community to educate them on the job prospects within Victoria. A major contributor to the local talent pool are the students that graduate from the University of Victoria’s Computer Science and Engineering departments                        

Victoria has a small supply of developers, so competition is fierce. All companies are hiring, but we often get candidates that are too senior, or too junior. We noticed that the majority of students in the University of Victoria were moving away to other cities or taking remote positions when they graduated. The problems we face are:

  1. The Victoria tech community is hidden. It’s not so much that the tech sector is a secret from other people, you just have to know where to look. Not everyone knows that downtown is covered in startup tech companies. Only once you break into the scene, do you actually realize how many offices are hidden inside the old historic buildings of Victoria.

  2. Majority of students graduating lacked experience and side projects. More and more people are getting degrees, and technology is changing faster than schools can change their curriculum. While this does not mean that going to school is irrelevant, it does mean in order to keep up with the change, students have to also code outside of the classroom.

  3. Thus the idea of BattleSnake was born: an idea to play the long game. Get students started on projects outside of coursework early. Give them a directional push that will allow them to become assets to the Technology sector in a few years. Not only to our company, but the entire Technology sector in Victoria will benefit if we take charge in training our tomorrow’s developers.                        

Our Challenges

University is a busy place. A lot of advertising blends in with the noise on campus, and it’s hard to get students to look up from their laptops and mobiles. For us to break through, we had to find a different avenue than blast emails. Face to face is always is the best method, but it is expensive to send out developers and managers out to twenty classroom talks and club meetings. They have projects and customers that have a higher priority to the company. We had to find a way to communicate to the students with as little disruption to the day to day operations of the company.

What We Did

BattleSnake is a multi-team programming competition that pits students against their peers and local development teams. Our first year of BattleSnake was hacked together by our team of engineers, promoted through the university and run on a shoestring budget.

We got 150 students out, got them programming and competing. The aftershock success of BattleSnake was more than we could have asked for. Every time one of our team members showed up to the university at least a couple of students would ask them about BattleSnake and when the next one was. The buzz created by attendees the first year was amazing and definitely helped with our success the second year.

For our second year of BattleSnake we knew we had to make it bigger and better with some surprises thrown in for repeat competitors. We created a two tiered competition for new attendees and repeat competitors. We also involved developers from other companies to help us build out the platform for the competition.

Every Tuesday night developers who shared our vision of community engagement, came to our office and hacked away at the BattleSnake platform. While the programmers were building the game, our lovely co-op student was out in the community, talking to students, meeting with university clubs, getting in front of classes and connecting with local media to promote the event. The on the ground promotion worked wonders and the success of over 350 attendees for our second year of BattleSnake spoke to it.           

How We Did It        

Get Students Coding 

Our goal was to show students that learning outside of school can be fun and not as dry as textbooks. To do this, we had to hold something that was exciting, free, and provided some value. Student life is filled with challenges; from dealing with tight budgets, to coping with multiple deadlines and schedules. It was important for us to build something that easily plugged into their busy schedules.       

Coding is best learned by programming with your own hands in a team setting. We built our project with this hands-­on approach to get students to see their code come to life on a screen. That’s what led us to build this coding exercise.

BattleSnake Was Born

We created a full­-day event where students arrived in the morning, got a tutorial on how to use Github and Heroku, and then went off to code. The Sendwithus team developed the platform and the example snakes. Participants were tasked with programming how the snake moved using an AI algorithm which communicated with our game server telling it in which direction to move for each turn. A turn happens every second giving the snake a chance to communicate and decide its next moving given the information coming back from the server. The game board is a grid, that varies in size depending on the tier and number of snakes. The idea came from the old arcade game Snake. Snakes have to eat food or their health runs out, and they need to navigate an ever shrinking board as they, and their competitors grow larger. Base code for multiple clients was supplied for beginner developers.

BattleSnake was designed to be a full day event with 6 hours of coding. This gave us enough time to teach students how to use applications that were not taught in school, such as Heroku, Github, and Cloud9. It also provided enough time for the student teams to troubleshoot and test their code before deploying onto the working screen.

Making the event open for all skill levels was a major challenge for us this year. Coding an entire AI program from scratch can be intimidating for a student just starting out, and a simple AI snake will not pose a difficult enough task for senior students or junior developers with work experience. We addressed this by providing a dual tier system at BattleSnake. Sendwithus developers created base programs for the snakes, but required the students to write the code telling the snake how to move; in addition to programming the snake for the multiplayer aspect. This helped beginners build off of a base and gave advanced participants a starting point to address the advanced rules placed upon them.

We Iterated And Improved       

We first tested BattleSnake in our office and we invited local tech companies and students to be involved with the initial project. Our outcome was 30 participants and, while it was a lot of fun, we wanted to grow bigger and target more students.                        

Changing the venue for the second annual BattleSnake, we moved to the Computer Science Building at the University of Victoria. Giving classroom talks, meeting with club leaders one-­on-­one and working with other local companies, resulted in tripling the amount of students to 100+ participants.

Although this was a great success we faced a new problem, very few women showed up to the event. In order to address this issue we asked women in tech why they did not go to the event. The candid feedback we received around the logo, branding and general language used around the first event as being very “male” centric gave us direction to create a new inclusive brand around BattleSnake.

We also received feedback about a general lack of support for participants that were new to technology and programming. All of this feedback allowed us to address the issue around the branding and add more support for less experienced participants. The rebrand and addition of more technical support lowered the barriers for attendance and showed we were open to feedback to create an inclusive event. All of which resulted in a significant increase in attendees this year.

2015 Battlesnake Logo

2015 Battlesnake Logo

2016 Battlesnake Logo

2016 Battlesnake Logo

How We Made This Year A Hit             

This year we wanted to go even bigger. We hired a kickass co-­op student, whose sole project was to organize BattleSnake. Who best to advertise to students than a fellow student? Our co­-op student was the face of the event. Everyone that was involved; sponsors, students, teachers, faculty, volunteers, contacted our designated co-­op coordinator. This allowed our regular team to focus on building BattleSnake and increased the amount of face to face time that Sendwithus was able to get in classrooms and with student clubs on campus.                        

We booked the entire first floor of the Computer Science Building to ensure that we had free range of the building. More sponsors came on board, so many that we actually had to turn away some of them.                         

Volunteers from local companies volunteered their time every Tuesday night for three months to build the platform for the tournament. We introduced a new Advanced mode, which allowed the BattleSnake Alumni participants and full­-time developers, to face new and unexpected challenges. Our Classic tier was targeted at first and second year students who were new to coding and working in teams, it had less variables for your Snake and was exclusive to beginner developers.

The biggest impact seen was sending our co-­op student or social ambassador out to all events. Club gatherings, coffee meetings, classroom talks, or just hanging around the school. Making this person well known, and out to help the community. The more our ambassador was out and talking to students, the louder the buzz around BattleSnake grew. The message was consistently promoted as “(c)ome to this awesome event to learn, network, compete, and get some food and swag while doing it”, from “(t)here is this event on a saturday, it is fun, you code and get stuff.”

Key Results

This year's effort turned out even better than expected. Over 350 participants came out, with sponsors giving $11,250 to make it happen. For many students, it was their first time working in a team environment, and to see their code come to life. They learned how to create direction for side projects, and how to collaborate with a team around projects.

After BattleSnake we have tracked a 60% increase in student applications for co-op positions and a 40% increase in applications to our junior engineering positions. The quality of the applications has also increased in that applicants, generally, have more experience and have educated themselves on our product and come more prepared to the interview process. This has allowed us to increase our applicant pipeline at all levels for co-op and junior positions.

My favorite part? The atmosphere at the end. 350 people, who are all strongly invested in the problems they’ve worked on all day. You could feel the excitement and tension for every game, even if your snake wasn’t in it, because you knew what people had gone through.
— 3rd Year University of Victoria student

For many students, it was their first time using a collaborative IT environment: Github or Cloud 9. In the end, 95 out of 100 teams deployed their BattleSnake within the 6 hours they got to code. Getting to see their hard work transformed onto the big screen.

Rebranding the event logo, and sending the social ambassador to every Women in Engineering and Computer Science (WECS) meeting resulted in over 50 women attending the competition. That’s over ten times the amount from the year before. The WECS club changed from last year having two members arrive and joining a team, to rolling out three separate WECS teams.

The effort the developers put into building the platform paid off. The competition ran faster than we expected and without technical errors. The platform is at a point where we can focus on adding to the Advanced tier for a more difficult challenge. Next year we hope to generate even more anticipation around the event that we hit the 500 mark of participants, with a new ambassador hitting the pavement at neighbouring colleges to diversify the attendees even more.

As a secondary outcome, we have seen an increase in our company brand awareness around the general tech community in Victoria. This has lead to more Intermediate and Senior developers who are aware of our company which has helped in our ability to build relationships with a wider range of developers within our city. As a complete bonus we have seen an increase in exposure in the Vancouver community as well, which has come strictly from a word of mouth campaign of students and developers who enjoyed the event so much.

What Went Wrong

BattleSnake 2016 turned out to be more popular than we had anticipated with 100 more participants than expected. In order to feed these extra participants we had to order Domino's Pizza last minute, and ran out of t-­shirts.

Our original aim was 200 people (150 students and around 50 developers). As the weeks went on, we kept adjusting as more people pre­registered. In total we had 377 people pre-­register. We had an ~80% show up rate, which was higher than usual.

The average attendance rate for previous free events was ~61%, so the expectation was 250 people would attend. With a higher turnout than expected we have started building out a better attendee tracking system with the goal of clarification around actual attendee numbers.

The logistics of running an event with 150 participants compared to 350 participants brings in a whole new set of expectations and problems. With the unexpected increase of participants, huge line­ups formed around the coffee booth, food tables, and for registration.

Having more teams competing brought in the problem of creativity around strict adherence to rules. We had some grey areas in the rules for BattleSnake that were taken advantage of that had never came up in previous years. This has prompted us to create a stricter set of rules with less area for interpretation.

We didn’t anticipate how popular the tutorial before registration would be. We expected about 40 students to show up to our tutorial. On the day of, we filled a 200 capacity classroom. We are brainstorming ideas on how to improve the tutorials. One idea is hosting tutorials in different classrooms, catering to two or three skill levels (beginner, intermediate, advanced).

Students only learn Java in their first year, and our platform did not support Java. This year it was cut out due to there being problems with how Java worked with the platform. This made it so students had to learn another programming language, and many did so on the day of the competition. We will be trying to build the platform to support Java for next year.

Sponsors want to be even more involved. This year we had sponsors help build test snakes, we called them Bounty Snakes. The purpose was so students could build their snake with the multiplayer aspect in mind. Sponsors also attached prizes to them so more participants won.

What we may do next year is do a warm up round with all the Bounty Snakes playing against each other. Just to give Sponsors (who all spent well over 6 hours coding) a chance to see their snake on the screen. It will also get more sponsors involved with the bonus of bragging rights over beating other companies.                        

Key Takeaways                       

  1. Face­-to­-face always wins. Being out and talking to your target audience will always get more people to come out than just blast emails.

  2. Have a clear direction. The ability to articulate why you are holding the event will bring others onboard a lot easier. Having them able to easily understand the value of your event speaks volumes.    

  3. Get others helping out. Don’t do it all on your own. The more companies and clubs that helped out, the more participants that came each year. Friends go to friend’s events.

BattleSnake was a great example of how engagement events help benefit the community. While it may not be perfect, the continuous “learn as you go” attitude makes each year better and better. We are already seeing employers recommend BattleSnake to students as a means to bolster their resumes. The goal of BattleSnake is to expose junior developers to the local Technology community and modern coding practices and frameworks. This will help the entire Technology sector in Victoria grow as a result.

Technologies Used

BattleSnake was built using Python, React, MongoDB, and deployed using Heroku. Our team used Github as a collaboration tool. We also built snake clients for students to use as a foundation for their AI using NodeJS, Ruby, Go, and Python. The landing page for was built using Javascript, HTML and CSS. We tracked registrants using wufoo forms and google docs.