Lessons Learned after 290M+ Lessons Served...Lessons Learned after 190M Lessons Served. 2...
Transcript of Lessons Learned after 290M+ Lessons Served...Lessons Learned after 190M Lessons Served. 2...
![Page 1: Lessons Learned after 290M+ Lessons Served...Lessons Learned after 190M Lessons Served. 2 Disclaimer. 3. Lesson 1 - Keeping a Culture Alive 4. Culture is a foundation 5 • Preserving](https://reader035.fdocuments.us/reader035/viewer/2022071219/605772cb65f6256db04d5290/html5/thumbnails/1.jpg)
1
Lessons Learned after 190M Lessons Served
![Page 2: Lessons Learned after 290M+ Lessons Served...Lessons Learned after 190M Lessons Served. 2 Disclaimer. 3. Lesson 1 - Keeping a Culture Alive 4. Culture is a foundation 5 • Preserving](https://reader035.fdocuments.us/reader035/viewer/2022071219/605772cb65f6256db04d5290/html5/thumbnails/2.jpg)
2
Disclaimer
![Page 3: Lessons Learned after 290M+ Lessons Served...Lessons Learned after 190M Lessons Served. 2 Disclaimer. 3. Lesson 1 - Keeping a Culture Alive 4. Culture is a foundation 5 • Preserving](https://reader035.fdocuments.us/reader035/viewer/2022071219/605772cb65f6256db04d5290/html5/thumbnails/3.jpg)
3
![Page 4: Lessons Learned after 290M+ Lessons Served...Lessons Learned after 190M Lessons Served. 2 Disclaimer. 3. Lesson 1 - Keeping a Culture Alive 4. Culture is a foundation 5 • Preserving](https://reader035.fdocuments.us/reader035/viewer/2022071219/605772cb65f6256db04d5290/html5/thumbnails/4.jpg)
Lesson 1 - Keeping a Culture Alive
4
![Page 5: Lessons Learned after 290M+ Lessons Served...Lessons Learned after 190M Lessons Served. 2 Disclaimer. 3. Lesson 1 - Keeping a Culture Alive 4. Culture is a foundation 5 • Preserving](https://reader035.fdocuments.us/reader035/viewer/2022071219/605772cb65f6256db04d5290/html5/thumbnails/5.jpg)
Culture is a foundation
5
• Preserving and passing it along is essential • A good onboarding process helps with that
• Get from developer to Udemy engineer in a short time • Automation makes life easy-ish • Standardized development environment (with VMs, Docker) • You can really deploy the app on day #1 (I did on week #1)
• Dogfooding - internal courses using our own platform • Communications - hundreds of people on 3 continents, all need to be on the same page
• Slack (we just moved from Hipchat) • Standups with hangouts • All meeting rooms hangout-capable
• Use automation to enforce it • Love for standards (PEP-8) and automated tests is enforced by our faithful robots • You can't push bad code • You can't merge questionable code
• We use custom tools to make accidents less likely • … even though it doesn’t always work
![Page 6: Lessons Learned after 290M+ Lessons Served...Lessons Learned after 190M Lessons Served. 2 Disclaimer. 3. Lesson 1 - Keeping a Culture Alive 4. Culture is a foundation 5 • Preserving](https://reader035.fdocuments.us/reader035/viewer/2022071219/605772cb65f6256db04d5290/html5/thumbnails/6.jpg)
Room for improvement
6
• We currently have a shared database used in some development and testing
• All kinds of odd side-effects
• We are moving to small individual DBs for everyone
• We constantly make small improvements to the dev environment, adding code that helps debugging etc
![Page 7: Lessons Learned after 290M+ Lessons Served...Lessons Learned after 190M Lessons Served. 2 Disclaimer. 3. Lesson 1 - Keeping a Culture Alive 4. Culture is a foundation 5 • Preserving](https://reader035.fdocuments.us/reader035/viewer/2022071219/605772cb65f6256db04d5290/html5/thumbnails/7.jpg)
7
Lesson 2 - Measure Everything, in bulk
![Page 8: Lessons Learned after 290M+ Lessons Served...Lessons Learned after 190M Lessons Served. 2 Disclaimer. 3. Lesson 1 - Keeping a Culture Alive 4. Culture is a foundation 5 • Preserving](https://reader035.fdocuments.us/reader035/viewer/2022071219/605772cb65f6256db04d5290/html5/thumbnails/8.jpg)
Metrics, metrics, metrics
8
• Applications collect relevant metrics all the time
• Measuring at scale - stop tracking individual events, start tracking trends.
• Sentry and Datadog
• Google Analytics
• A-B tests and feature flags
• *KNOW* how something will impact us
• and explore what-if scenarios
• Be mindful of distributions
• Measure quickly - large user bases can amplify trends
![Page 9: Lessons Learned after 290M+ Lessons Served...Lessons Learned after 190M Lessons Served. 2 Disclaimer. 3. Lesson 1 - Keeping a Culture Alive 4. Culture is a foundation 5 • Preserving](https://reader035.fdocuments.us/reader035/viewer/2022071219/605772cb65f6256db04d5290/html5/thumbnails/9.jpg)
9
Lesson 3 - Question Everything
![Page 10: Lessons Learned after 290M+ Lessons Served...Lessons Learned after 190M Lessons Served. 2 Disclaimer. 3. Lesson 1 - Keeping a Culture Alive 4. Culture is a foundation 5 • Preserving](https://reader035.fdocuments.us/reader035/viewer/2022071219/605772cb65f6256db04d5290/html5/thumbnails/10.jpg)
“They (Netscape) did (delay a new version by 3 years). They did it by making the single worst strategic mistake that any software company can make:They decided to rewrite the code from scratch”
–Joel Spolsky, “Things You Should Never Do, Part I”
10
![Page 11: Lessons Learned after 290M+ Lessons Served...Lessons Learned after 190M Lessons Served. 2 Disclaimer. 3. Lesson 1 - Keeping a Culture Alive 4. Culture is a foundation 5 • Preserving](https://reader035.fdocuments.us/reader035/viewer/2022071219/605772cb65f6256db04d5290/html5/thumbnails/11.jpg)
Moving from PHP
11
• A custom-built framework
• That new hires needed to be trained on
• Increasing onboarding costs
• Long ramp-up time
• Without adequate test support
• Maintenance becomes walking on a minefield
• Developers start to optimising for avoiding breakage rather than the best (most reliable, most readable, most performant) solution
![Page 12: Lessons Learned after 290M+ Lessons Served...Lessons Learned after 190M Lessons Served. 2 Disclaimer. 3. Lesson 1 - Keeping a Culture Alive 4. Culture is a foundation 5 • Preserving](https://reader035.fdocuments.us/reader035/viewer/2022071219/605772cb65f6256db04d5290/html5/thumbnails/12.jpg)
Choosing the way out
12
• Evaluated multiple options
• Laravel
• Node
• Django
• Rails
• Play
![Page 13: Lessons Learned after 290M+ Lessons Served...Lessons Learned after 190M Lessons Served. 2 Disclaimer. 3. Lesson 1 - Keeping a Culture Alive 4. Culture is a foundation 5 • Preserving](https://reader035.fdocuments.us/reader035/viewer/2022071219/605772cb65f6256db04d5290/html5/thumbnails/13.jpg)
13
This was a serious project
![Page 14: Lessons Learned after 290M+ Lessons Served...Lessons Learned after 190M Lessons Served. 2 Disclaimer. 3. Lesson 1 - Keeping a Culture Alive 4. Culture is a foundation 5 • Preserving](https://reader035.fdocuments.us/reader035/viewer/2022071219/605772cb65f6256db04d5290/html5/thumbnails/14.jpg)
What Udemy got in the end
14
• Django-based application
• Legacy-free
• Python 3
• Much shorter developer onboarding
• Great test coverage (88%)
• Lots of new features
• A consistent codebase
• And some scar tissue where PHP and Django coexisted
• Odd table names (that’s really a minor thing)
• Sometimes, we need to fight the opinionated framework we chose
![Page 15: Lessons Learned after 290M+ Lessons Served...Lessons Learned after 190M Lessons Served. 2 Disclaimer. 3. Lesson 1 - Keeping a Culture Alive 4. Culture is a foundation 5 • Preserving](https://reader035.fdocuments.us/reader035/viewer/2022071219/605772cb65f6256db04d5290/html5/thumbnails/15.jpg)
What Udemy learned
15
• It takes a while (2 years to complete)
• It’s a serious commitment (30% of the engineering team on it)
• Incremental (avoid tempting fate)
• It’s easy to lose sight of the goal and get demotivated
• Release early, release often (so that course can be changed quickly)
• Enforce good practices (flake8, testing, mandatory coverage)
![Page 16: Lessons Learned after 290M+ Lessons Served...Lessons Learned after 190M Lessons Served. 2 Disclaimer. 3. Lesson 1 - Keeping a Culture Alive 4. Culture is a foundation 5 • Preserving](https://reader035.fdocuments.us/reader035/viewer/2022071219/605772cb65f6256db04d5290/html5/thumbnails/16.jpg)
Lesson 4 - The Mission Matters
16
![Page 17: Lessons Learned after 290M+ Lessons Served...Lessons Learned after 190M Lessons Served. 2 Disclaimer. 3. Lesson 1 - Keeping a Culture Alive 4. Culture is a foundation 5 • Preserving](https://reader035.fdocuments.us/reader035/viewer/2022071219/605772cb65f6256db04d5290/html5/thumbnails/17.jpg)
17
Help anyone learn anything
![Page 18: Lessons Learned after 290M+ Lessons Served...Lessons Learned after 190M Lessons Served. 2 Disclaimer. 3. Lesson 1 - Keeping a Culture Alive 4. Culture is a foundation 5 • Preserving](https://reader035.fdocuments.us/reader035/viewer/2022071219/605772cb65f6256db04d5290/html5/thumbnails/18.jpg)
18
Anyone can teach something to someone else
![Page 19: Lessons Learned after 290M+ Lessons Served...Lessons Learned after 190M Lessons Served. 2 Disclaimer. 3. Lesson 1 - Keeping a Culture Alive 4. Culture is a foundation 5 • Preserving](https://reader035.fdocuments.us/reader035/viewer/2022071219/605772cb65f6256db04d5290/html5/thumbnails/19.jpg)
Impact
19
1 in 3 Udemy students are starting or growing their own businesses
Lots of instructors are full-time Udemy instructors
![Page 20: Lessons Learned after 290M+ Lessons Served...Lessons Learned after 190M Lessons Served. 2 Disclaimer. 3. Lesson 1 - Keeping a Culture Alive 4. Culture is a foundation 5 • Preserving](https://reader035.fdocuments.us/reader035/viewer/2022071219/605772cb65f6256db04d5290/html5/thumbnails/20.jpg)
20
Len has been with Udemy from the start. After a career in copywriting, he got involved with Udemy to keep busy, share his passion, and slide gracefully into semi-retirement. He’s now got a second career, having taught more than 50,000 students across his 11 courses.
This is Len
![Page 21: Lessons Learned after 290M+ Lessons Served...Lessons Learned after 190M Lessons Served. 2 Disclaimer. 3. Lesson 1 - Keeping a Culture Alive 4. Culture is a foundation 5 • Preserving](https://reader035.fdocuments.us/reader035/viewer/2022071219/605772cb65f6256db04d5290/html5/thumbnails/21.jpg)
21
By enabling this transformation in education, we empower
people to change their lives
![Page 22: Lessons Learned after 290M+ Lessons Served...Lessons Learned after 190M Lessons Served. 2 Disclaimer. 3. Lesson 1 - Keeping a Culture Alive 4. Culture is a foundation 5 • Preserving](https://reader035.fdocuments.us/reader035/viewer/2022071219/605772cb65f6256db04d5290/html5/thumbnails/22.jpg)
Thank you
22