SlideShare a Scribd company logo
1
Lessons Learned after 190M
Lessons Served
2
Disclaimer
3
Lesson 1 - Keeping a Culture Alive
4
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
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
7
Lesson 2 - Measure Everything, in bulk
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
9
Lesson 3 - Question Everything
“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
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
Choosing the way out
12
• Evaluated multiple options
• Laravel
• Node
• Django
• Rails
• Play
13
This was a serious project
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
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)
Lesson 4 - The Mission Matters
16
17
Help anyone learn anything
18
Anyone can teach something
to someone else
Impact
19
1 in 3 Udemy students are starting or growing their own businesses
Lots of instructors are full-time Udemy instructors
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
21
By enabling this transformation
in education, we empower
people to change their lives
Thank you
22
@udemy

www.udemy.com

importthis40
23

More Related Content

PPTX
Striving for zero bugs
TEST Huddle
 
PDF
What I wish colleges and bootcamps taught software developers
Andy Lester
 
PDF
Run your project like it's an OpenSource project
Ian Bull
 
PPTX
Agile Practices
Thatchaphol Saranurak
 
ODP
LibreOffice: What's important to you?
Heiko Tietze
 
PDF
The pragmatic programmer
Joel Corrêa
 
PDF
The pragmatic programmer
Nilesh Sharma
 
DOCX
General Tips
Prashant Kumar
 
Striving for zero bugs
TEST Huddle
 
What I wish colleges and bootcamps taught software developers
Andy Lester
 
Run your project like it's an OpenSource project
Ian Bull
 
Agile Practices
Thatchaphol Saranurak
 
LibreOffice: What's important to you?
Heiko Tietze
 
The pragmatic programmer
Joel Corrêa
 
The pragmatic programmer
Nilesh Sharma
 
General Tips
Prashant Kumar
 

What's hot (10)

PPTX
Kung fu Programming
Wisecube AI
 
PPT
Pragmatic programmer 2
Uday Pratap Singh
 
PPTX
Developing Better Software
Hean Hong Leong
 
PDF
Robots, Testing and LAST
Anne-Marie Charrett
 
ODP
Assorted TDD tips
Wojciech Bulaty
 
PDF
phxwebapp95
Thinkful
 
PDF
phxwebapp95
Thinkful
 
PPTX
TestWorksConf: Experience exploratory testing
Maaret Pyhäjärvi
 
PPTX
Envoy: an end user driven success story
Matt Klein
 
PDF
Anomaly detection made easy
Piotr Guzik
 
Kung fu Programming
Wisecube AI
 
Pragmatic programmer 2
Uday Pratap Singh
 
Developing Better Software
Hean Hong Leong
 
Robots, Testing and LAST
Anne-Marie Charrett
 
Assorted TDD tips
Wojciech Bulaty
 
phxwebapp95
Thinkful
 
phxwebapp95
Thinkful
 
TestWorksConf: Experience exploratory testing
Maaret Pyhäjärvi
 
Envoy: an end user driven success story
Matt Klein
 
Anomaly detection made easy
Piotr Guzik
 
Ad

Viewers also liked (8)

PDF
Anti-patterns
Ricardo Bánffy
 
ODP
Ganhando dinheiro com software livre
Ricardo Bánffy
 
PDF
Da persistência de idéias ruins
Ricardo Bánffy
 
ODP
Django para infográficos
Ricardo Bánffy
 
ODP
Extreme Programming
Ricardo Bánffy
 
PPTX
TDD with Python and App Engine
Ricardo Bánffy
 
Anti-patterns
Ricardo Bánffy
 
Ganhando dinheiro com software livre
Ricardo Bánffy
 
Da persistência de idéias ruins
Ricardo Bánffy
 
Django para infográficos
Ricardo Bánffy
 
Extreme Programming
Ricardo Bánffy
 
TDD with Python and App Engine
Ricardo Bánffy
 
Ad

Similar to Lessons learned after 190M lessons served (20)

PDF
HackYale 0-60 in Startup Tech
Daniel Doubrovkine
 
PPTX
30% faster coder on-boarding when you have a code cookbook
Gabriel Paunescu 🤖
 
PDF
GeneralAssemb.ly Summer Program: Tech from the Ground Up
Daniel Doubrovkine
 
PPTX
Software Development Demo:GDSC&UISS .pptx
JamesMushi3
 
PDF
Surviving a Hackathon and Beyond
imoneytech
 
PPTX
Noman Khan Internship Report 2.pptx
NomanKhan869872
 
PPTX
Shut Up And Eat Your Veg
Garth Gilmour
 
PDF
Random thoughts and dev practices / advices to build a great product
Guillaume POTIER
 
PPTX
Future of software development - Danger of Oversimplification
Jon Ruby
 
PDF
The Lean Tech Stack
Bill Scott
 
PDF
Software Engineering at Google.pdf
Man_Ebook
 
PDF
Swiss Testing Day - Testautomation, 10 (sometimes painful) lessons learned
Michael Palotas
 
PPTX
Carrier guidance for tech
Mahesh Arali
 
KEY
How agile is rails
José Mota
 
PDF
"Startups, comment gérer une équipe de développeurs" par Laurent Cerveau
TheFamily
 
PDF
Lessons Learned About Software Development
Jeffrey Ryan Thalhammer
 
PPTX
SELF - Becoming a Rails Developer - The Rest of the Story
Nathanial McConnell
 
PPTX
Creating change from within - Agile Practitioners 2012
Dror Helper
 
PDF
Codemotion Berlin 2015 recap
Torben Dohrn
 
PDF
Good Coding Practices with JavaScript
🏁 Pierre-Henry Soria 💡
 
HackYale 0-60 in Startup Tech
Daniel Doubrovkine
 
30% faster coder on-boarding when you have a code cookbook
Gabriel Paunescu 🤖
 
GeneralAssemb.ly Summer Program: Tech from the Ground Up
Daniel Doubrovkine
 
Software Development Demo:GDSC&UISS .pptx
JamesMushi3
 
Surviving a Hackathon and Beyond
imoneytech
 
Noman Khan Internship Report 2.pptx
NomanKhan869872
 
Shut Up And Eat Your Veg
Garth Gilmour
 
Random thoughts and dev practices / advices to build a great product
Guillaume POTIER
 
Future of software development - Danger of Oversimplification
Jon Ruby
 
The Lean Tech Stack
Bill Scott
 
Software Engineering at Google.pdf
Man_Ebook
 
Swiss Testing Day - Testautomation, 10 (sometimes painful) lessons learned
Michael Palotas
 
Carrier guidance for tech
Mahesh Arali
 
How agile is rails
José Mota
 
"Startups, comment gérer une équipe de développeurs" par Laurent Cerveau
TheFamily
 
Lessons Learned About Software Development
Jeffrey Ryan Thalhammer
 
SELF - Becoming a Rails Developer - The Rest of the Story
Nathanial McConnell
 
Creating change from within - Agile Practitioners 2012
Dror Helper
 
Codemotion Berlin 2015 recap
Torben Dohrn
 
Good Coding Practices with JavaScript
🏁 Pierre-Henry Soria 💡
 

More from Ricardo Bánffy (7)

PDF
Continuous testing of a terminal font
Ricardo Bánffy
 
PDF
Monitoring and automation
Ricardo Bánffy
 
PDF
Measure everything you can
Ricardo Bánffy
 
PPTX
TDD com Python e App Engine
Ricardo Bánffy
 
PDF
Boredom comes to_those_who_wait
Ricardo Bánffy
 
PDF
Quem espera sempre cansa
Ricardo Bánffy
 
PPT
Faça seu próprio servidor pirata com OpenVZ
Ricardo Bánffy
 
Continuous testing of a terminal font
Ricardo Bánffy
 
Monitoring and automation
Ricardo Bánffy
 
Measure everything you can
Ricardo Bánffy
 
TDD com Python e App Engine
Ricardo Bánffy
 
Boredom comes to_those_who_wait
Ricardo Bánffy
 
Quem espera sempre cansa
Ricardo Bánffy
 
Faça seu próprio servidor pirata com OpenVZ
Ricardo Bánffy
 

Recently uploaded (20)

PPTX
AI ad its imp i military life read it ag
ShwetaBharti31
 
PDF
Slides: PDF Eco Economic Epochs for World Game (s) pdf
Steven McGee
 
PPT
Transformaciones de las funciones elementales.ppt
rirosel211
 
PDF
APNIC Update, presented at PHNOG 2025 by Shane Hermoso
APNIC
 
PPTX
The Internet of Things (IoT) refers to a vast network of interconnected devic...
chethana8182
 
PPTX
Perkembangan Perangkat jaringan komputer dan telekomunikasi 3.pptx
Prayudha3
 
PPTX
Different Generation Of Computers .pptx
divcoder9507
 
PPTX
谢尔丹学院毕业证购买|Sheridan文凭不见了怎么办谢尔丹学院成绩单
mookxk3
 
PPTX
Blue and Dark Blue Modern Technology Presentation.pptx
ap177979
 
PDF
DNSSEC Made Easy, presented at PHNOG 2025
APNIC
 
PPTX
Parallel & Concurrent ...
yashpavasiya892
 
PPTX
The Monk and the Sadhurr and the story of how
BeshoyGirgis2
 
PPTX
Crypto Recovery California Services.pptx
lionsgate network
 
PPTX
原版北不列颠哥伦比亚大学毕业证文凭UNBC成绩单2025年新版在线制作学位证书
e7nw4o4
 
PPTX
The Internet of Things (IoT) refers to a vast network of interconnected devic...
chethana8182
 
PDF
Latest Scam Shocking the USA in 2025.pdf
onlinescamreport4
 
PPTX
Microsoft PowerPoint Student PPT slides.pptx
Garleys Putin
 
PPTX
Pengenalan perangkat Jaringan komputer pada teknik jaringan komputer dan tele...
Prayudha3
 
PPTX
办理方法西班牙假毕业证蒙德拉贡大学成绩单MULetter文凭样本
xxxihn4u
 
PPTX
Artificial-Intelligence-in-Daily-Life (2).pptx
nidhigoswami335
 
AI ad its imp i military life read it ag
ShwetaBharti31
 
Slides: PDF Eco Economic Epochs for World Game (s) pdf
Steven McGee
 
Transformaciones de las funciones elementales.ppt
rirosel211
 
APNIC Update, presented at PHNOG 2025 by Shane Hermoso
APNIC
 
The Internet of Things (IoT) refers to a vast network of interconnected devic...
chethana8182
 
Perkembangan Perangkat jaringan komputer dan telekomunikasi 3.pptx
Prayudha3
 
Different Generation Of Computers .pptx
divcoder9507
 
谢尔丹学院毕业证购买|Sheridan文凭不见了怎么办谢尔丹学院成绩单
mookxk3
 
Blue and Dark Blue Modern Technology Presentation.pptx
ap177979
 
DNSSEC Made Easy, presented at PHNOG 2025
APNIC
 
Parallel & Concurrent ...
yashpavasiya892
 
The Monk and the Sadhurr and the story of how
BeshoyGirgis2
 
Crypto Recovery California Services.pptx
lionsgate network
 
原版北不列颠哥伦比亚大学毕业证文凭UNBC成绩单2025年新版在线制作学位证书
e7nw4o4
 
The Internet of Things (IoT) refers to a vast network of interconnected devic...
chethana8182
 
Latest Scam Shocking the USA in 2025.pdf
onlinescamreport4
 
Microsoft PowerPoint Student PPT slides.pptx
Garleys Putin
 
Pengenalan perangkat Jaringan komputer pada teknik jaringan komputer dan tele...
Prayudha3
 
办理方法西班牙假毕业证蒙德拉贡大学成绩单MULetter文凭样本
xxxihn4u
 
Artificial-Intelligence-in-Daily-Life (2).pptx
nidhigoswami335
 

Lessons learned after 190M lessons served

  • 1. 1 Lessons Learned after 190M Lessons Served
  • 3. 3
  • 4. Lesson 1 - Keeping a Culture Alive 4
  • 5. 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
  • 6. 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
  • 7. 7 Lesson 2 - Measure Everything, in bulk
  • 8. 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
  • 9. 9 Lesson 3 - Question Everything
  • 10. “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
  • 11. 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
  • 12. Choosing the way out 12 • Evaluated multiple options • Laravel • Node • Django • Rails • Play
  • 13. 13 This was a serious project
  • 14. 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
  • 15. 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)
  • 16. Lesson 4 - The Mission Matters 16
  • 18. 18 Anyone can teach something to someone else
  • 19. Impact 19 1 in 3 Udemy students are starting or growing their own businesses Lots of instructors are full-time Udemy instructors
  • 20. 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
  • 21. 21 By enabling this transformation in education, we empower people to change their lives