Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Scaling Your Team
Search
Alex Gaynor
October 04, 2012
Programming
12
1.5k
Scaling Your Team
Talk presented at PyCon South Africa, 2012.
Alex Gaynor
October 04, 2012
Tweet
Share
More Decks by Alex Gaynor
See All by Alex Gaynor
Quantifying Memory Unsafety and Reactions to It
alex
0
74
Learning from Failure: Post-mortems
alex
2
270
The cobbler's children have no shoes, or building better tools for ourselves
alex
1
230
Techniques for Debugging Hard Problems
alex
1
530
Building Communities with Code Review
alex
4
250
Documenting Domain Specific Knowledge
alex
1
320
Pickles are for Delis, not for Software
alex
0
300
Code Review in Open Source Software
alex
4
730
Why Ruby isn't slow
alex
10
3.7k
Other Decks in Programming
See All in Programming
Внедряем бюджетирование, или Как сделать хорошо?
lamodatech
0
940
カンファレンス動画鑑賞会のススメ / Osaka.swift #1
hironytic
0
170
watsonx.ai Dojo #6 継続的なAIアプリ開発と展開
oniak3ibm
PRO
0
170
「とりあえず動く」コードはよい、「読みやすい」コードはもっとよい / Code that 'just works' is good, but code that is 'readable' is even better.
mkmk884
6
1.4k
React 19でお手軽にCSS-in-JSを自作する
yukukotani
5
560
Amazon Nova Reelの可能性
hideg
0
190
KMP와 kotlinx.rpc로 서버와 클라이언트 동기화
kwakeuijin
0
300
ESLintプラグインを使用してCDKのセオリーを適用する
yamanashi_ren01
2
230
선언형 UI에서의 상태관리
l2hyunwoo
0
270
PHPUnitしか使ってこなかった 一般PHPerがPestに乗り換えた実録
mashirou1234
0
420
情報漏洩させないための設計
kubotak
5
1.3k
functionalなアプローチで動的要素を排除する
ryopeko
1
190
Featured
See All Featured
Site-Speed That Sticks
csswizardry
2
270
The Language of Interfaces
destraynor
155
24k
Side Projects
sachag
452
42k
For a Future-Friendly Web
brad_frost
176
9.5k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
28
4.5k
It's Worth the Effort
3n
183
28k
Making the Leap to Tech Lead
cromwellryan
133
9k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
28
2.2k
Become a Pro
speakerdeck
PRO
26
5.1k
Bash Introduction
62gerente
610
210k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.4k
Building Better People: How to give real-time feedback that sticks.
wjessup
366
19k
Transcript
Friday, October 5, 12
Scaling Your Project Alex Gaynor PyCon South Africa, 2012 Friday,
October 5, 12
Me • Software Engineer at rdio.com • Python Software Foundation
member • Django software Foundation board member • Django, PyPy, and CPython core developer Friday, October 5, 12
What is scaling? Friday, October 5, 12
Scaling is not performance Friday, October 5, 12
Scalability is the ability of a project to handle more
users/traffic/customers linearly with resources Friday, October 5, 12
A website is scalable if adding N more server lets
it handle N times more traffic than adding one server Friday, October 5, 12
A software project is scalable if adding N more engineers
lets you ship code N times faster than adding one more engineer Friday, October 5, 12
“9 women can’t have a baby in one month” Friday,
October 5, 12
How to scale a project and a team? Friday, October
5, 12
“Bus factor” Friday, October 5, 12
One-click deployment Friday, October 5, 12
• fabric • Roll out any revision at any time
• Rollback to a known working state at any time Friday, October 5, 12
• Seems to be a relatively new idea. • Python
tools for this aren’t great yet. • Chef, puppet, salt One click infrastructure Friday, October 5, 12
New developer onboarding Friday, October 5, 12
$ git clone http://url.to/your/project $ mkvirtualenv your-project $ pip install
-r requirements.txt $ supervisord start Friday, October 5, 12
Developing for the web 5 years ago • HTTP server
• Database Friday, October 5, 12
Developing for the web now • HTTP server • Databases
• Queue workers • Custom daemons Friday, October 5, 12
Enter supervisord • It supervises processes • A good idea
in production • Potentially really useful in development Friday, October 5, 12
Automated Testing Friday, October 5, 12
How do we avoid breaking software? • Intuition about what
can break • Manual testing • Automated testing Friday, October 5, 12
Automated testing changes how we write software Friday, October 5,
12
Code Review Friday, October 5, 12
• Rietveld, github, phabricator • Code review every single patch
• Helps defeat the bus factor Friday, October 5, 12
Make new developers do code reviews Friday, October 5, 12
Embrace the community Friday, October 5, 12
Cost to implement yourself vs. Cost to learn something Friday,
October 5, 12
Community standards mean your developers come pre-trained Friday, October 5,
12
Maintain high code quality Friday, October 5, 12
Code Quality • PEP 8 • Good naming • Commenting
Friday, October 5, 12
Measure and Analyze Friday, October 5, 12
• Useful logging • Powerful error analysis (Sentry) • Measurements
(mmstats, statsd) Friday, October 5, 12
• Automate everything • Embrace the community • Make getting
started easy Recap Friday, October 5, 12
Thank you! Questions? https://speakerdeck.com/u/alex Friday, October 5, 12