Scaling Up Scala: Why We Started a Bootcamp for New Developers - InformationWeek

InformationWeek is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them.Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

10:00 AM
Toby Matejovsky, Senior Director of Engineering, Tapad
Toby Matejovsky, Senior Director of Engineering, Tapad

Scaling Up Scala: Why We Started a Bootcamp for New Developers

When it's tough to find developers with experience and training in a specific programming language, consider doing an in-house boot camp.

Last summer we had a problem. Growing fast and building out a complex adtech product that handles more than one million requests per second, we needed to hire more engineers than ever before. However, since our core programming language -- Scala -- was still up-and-coming relative to incumbent languages, there wasn’t a deep market for developers with that background.

Not only did we have to onboard more than two dozen developers, but we also had to figure out a way to train them all in Scala. Assigning individual mentors to help these software engineers and data scientists translate their experience with C++ and Java into working in Scala was far from efficient. Training them fast, as a group, was our best option. So, we set up an internal bootcamp with a goal of giving our incoming class a jumpstart on their Scala skills.

Welcome to Scala School

Your company may face a similar challenge, especially if you’re running engineering at a start-up. Why? Developers have limited time to learn multiple programming languages, yet there are hundreds of such languages to choose from. Apple has Swift. Facebook has Hack. Google has Dart and Go, and could introduce more any day. With such a bounty of languages it’s all but guaranteed the developers you hire won’t have the precise skills your company needs on day one; if they do, it’s likely that your hiring funnel is far too constrained. We’ve seen first-hand that, with the right set-up and know-how, bringing the bootcamp experience in-house can alleviate these problems and open new doors for your engineers.

Toby Matejovsky
Toby Matejovsky

Starting your own Scala School

Since last summer, we’ve conducted three bootcamps for dozens of engineers. Four core lessons we learned may help you in the design of your bootcamp:

  1. Determine a realistic curriculum. Our first curriculum included six two-hour sessions covering a wide range of Scala-related topics, such as object-oriented programming, functional programming, type-level programming, and concurrency. In doing so, we introduced developers to Scala’s capabilities and traps, while also providing tools for them to continue learning independently. After the first week of three classes, we learned the pace was too fast for students to absorb the new programming concepts while also ramping up on Tapad’s business and systems. Internal "professors" like me had just as many deadlines. To balance the workload and still maintain the curriculum, we scheduled more classes over a longer period and assigned two senior engineers to attend: a leader and a contributor. Some would lecture while others would lead exercises and be available for questions.
  2. Work with your developers’ busy schedules. Unlike privately-run bootcamps, Scala School runs concurrently with the developers’ regular schedule; it does not take up 100% of their time. This provides time for them to put into practice information learned in the classroom. Adding online resources also gives developers freedom to go deeper and learn more in their own time.
  3. Recognize teaching is its own skill. I've been teaching programming for four years, most recently several courses in the computer science master’s program at New York University. Developing a curriculum and delivering information in such a way that students will learn isn't foreign to me, but it may be to some of you. Reach out to peers who have set up bootcamps. Look at other courses and study the design and resources made available. (For a practical example, here's a link to the Information Technology Projects course I help teach at NYU.)
  4. Use exercises and practical code samples as often as possible. Just as writers learn by writing prose, developers learn by writing code. If you do nothing else in setting up your bootcamp, write out the challenges you've faced in developing software, pull some sample code, and then turn the problem you solved into an exercise for your students. Not only will it help them better understand abstract concepts, they'll also have something to look back on when they're faced with similar problems outside the classroom. We also recommend building a library of training materials that students could use at any time to brush up.

And the report card says ...

A well-designed bootcamp can also become a fringe benefit for the participating developers. At Tapad, every engineer who’s joined us can add Scala -- and the functional coding skills that come with learning it -- to their resume without having to pay hundreds or thousands of dollars for similar training. We’re attracting better talent (and delivering better software) as a result. In the words of one of our participations, the program “provided a solid foundation that afforded me the skills needed to grow quickly and make a productive impact on our team.”There’s no reason your company can’t do the same.

Toby Matejovsky is Senior Director of Engineering at Tapad, where he has helped scale the ad-tech company to its current state. His other experience includes four years of teaching software development courses in professional settings, including NYU's Courant Institute of Mathematical Sciences.Connect with Toby on LinkedIn or follow him on Twitter, where he posts as@tobym.

The InformationWeek community brings together IT practitioners and industry experts with IT advice, education, and opinions. We strive to highlight technology executives and subject matter experts and use their knowledge and experiences to help our audience of IT ... View Full Bio
We welcome your comments on this topic on our social media channels, or [contact us directly] with questions about the site.
Comment  | 
Print  | 
More Insights
Newest First  |  Oldest First  |  Threaded View
User Rank: Apprentice
3/17/2017 | 5:36:59 AM
Development languages
Development, programming nowadays is very popular. Look at this research of most popular programming languages  - 
CIOs Face Decisions on Remote Work for Post-Pandemic Future
Joao-Pierre S. Ruth, Senior Writer,  2/19/2021
11 Ways DevOps Is Evolving
Lisa Morgan, Freelance Writer,  2/18/2021
CRM Trends 2021: How the Pandemic Altered Customer Behavior Forever
Jessica Davis, Senior Editor, Enterprise Apps,  2/18/2021
White Papers
Register for InformationWeek Newsletters
The State of Cloud Computing - Fall 2020
The State of Cloud Computing - Fall 2020
Download this report to compare how cloud usage and spending patterns have changed in 2020, and how respondents think they'll evolve over the next two years.
Current Issue
2021 Top Enterprise IT Trends
We've identified the key trends that are poised to impact the IT landscape in 2021. Find out why they're important and how they will affect you.
Flash Poll