Overview
Course Description¶
Startup engineering is critical to innovation. The skills required to effectively prototype, launch, and scale products are vital to engineers everywhere, from fledgling companies founded in dorm rooms to local mid-size companies to internal startups from multi-national tech giants. However, developing software in a startup environment poses unique engineering challenges. These challenges include making and justifying foundational architectural and technical decisions despite extreme uncertainty; rapidly prototyping and evaluating new ideas and features, while building minimum viable products; prioritizing engineering effort in severely constrained environments; and communicating effectively both within a small engineering team and with internal and external non-technical stakeholders. This course teaches the skills necessary to engineer successfully in a startup environment, through lectures, group projects, case study discussions, and guest speakers drawn from experienced, practicing startup engineers.
Course Overview¶
In this course, we will teach you the engineering skills necessary to succeed in the highly-uncertain environment associated with a technology startup. Our focus in this class is mostly technical, but we will cover some parts of the business side of the startup equation. If you're most interested in entrepreneurship, we encourage you to consider 15-390, Entrepreneurship for Computer Scientists.
This class will consist of:
- Lectures. Lectures will cover technical content, and be delivered by the professors or other instructors.
- Guest lectures and panels. We will hear from from practicing software engineers, technical and non-technical startup cofounders, and other individuals with practical expertise.
- Recitation. TAs will lead recitation, which consists of activities designed to help you apply your knowledge practically and prepare for the homework.
- Homework assignments. For the first half of the course, you will practice cloud-oriented development skills that we learn in class. Many of these skills focus things you need to do while working as a team.
- A project. During this course, you will develop an idea for a startup company from start to finish. You will work in teams to develop the startup's idea, understand its market, develop a prototype implementation, and learn to pitch the idea to recruit collaborators and raise funding. Most of this work will be structured as a series of Agile-style sprints, to simulate as much as possible the real startup experience.
There will be no exams. The final exam day will be used for final project presentations.