SlideShare una empresa de Scribd logo
1 de 36
Descargar para leer sin conexión
source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed
Rolling Up Your Sleeves
jesse@thesourcespring.com
www.thesourcespring.com
1
source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed
Class Structure
Part 1 - Options: A whirlwind tour of languages and frameworks (30 mins)
Part 2 - Help: Getting development assistance and managing it (30 mins)
Part 3 - Scaling: Success is a risk (30 mins)
Part 4 - Q&A: Pick my brain (30 mins?)
2
source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed
About Me
3
source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed
Who Are You?
Introduce yourself.
What experience in software development do you already have?
What are you hoping to get out of today?
4
source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed
{let’s do this}
5
source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed
Options
A whirlwind tour of languages and frameworks
6
source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed
Architecture for client/server apps
7
source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed
Languages
Client-side vs Server-side
Interpreted vs Compiled
8
source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed
Languages
Perl
PHP
Javascript (client-side)
Node.js (server-side Javascript)
Java
Python
Ruby
C / C++ / Objective C
C#
9
source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed
Frameworks: terminology
What is a framework?
DRY (Don’t Repeat Yourself)
MVC (Model–View–Controller)
ORM (Object Relational Model)
Front Pattern (Routes)
10
source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed
Frameworks: server-side
Ruby on Rails
PHP + Symphony
PHP + Wordpress
Python + Django
Node.js + Express.js
Java + Spring/Hibernate/EE/???
C# + .Net
11
source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed
Frameworks: client-side
Javascript + JQuery / Ember / Angular
Objective C + iOS SDK
Java + Android SDK
12
source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed
Frameworks: mobile hybrids
HTML5 in a wrapper
PhoneGap
Titanium
Adobe AIR
13
source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed
Databases
SQL
Postgres, MySQL, Oracle
NoSQL
Mongo, Couch, Cassandra
Keystore
Memcache, Redis
14
source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed
Hosting
Bare Metal
Rack ’em up
Virtual Servers
Rackspace, Amazon
App Platforms
Heroku, Appfog, Railyard
15
source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed
Considerations
Performance (Speed vs Latency)
Agility
Maintainability
Cost of ownership
Owning your platform
What you know
What you can learn
Where you can learn it from
Your developers’ knowledge
Ease of finding developers
16
source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed
{breathe}
17
source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed
Help
Getting development assistance and managing it
18
source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed
Options
DIY
Technical Co-Founder
Hiring FTEs
Hiring Contractors
Outsourcing
(NB: This may or may not mean offshoring)
Volunteers
Open Source
19
source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed
Considerations
What you can offer: cash vs equity
Your savviness
Your ability to manage
Need for agility (how much work can you do
up front?)
20
source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed
Agreements
Statement of work
Intellectual property
Equity or cash
Warranty and maintenance
Handling disputes
Documentation
21
source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed
Finding Developers
Friends, LinkedIn and Facebook
AngelList, GitHub
ODesk, Guru, VWorker, ELance
Head hunters
Craigslist
22
source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed
Process
Agile / Scrum
The sprint cycle
Writing stories and documenting them
Velocity and points
Test Driven Development
Behavior Driven Development
23
source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed
Version Control
Why?
SVN vs Git
Github, Mercurial, Bitbucket, Sourceforge
24
source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed
QA
Painful: they will not do it all for you
Bug tracking
Automated testing
Continuous integration
25
source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed
{breathe}
26
source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed
Scaling
Success is a risk
27
source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed
Serving Assets
Minification
CDNs - Content Distribution Networks
28
source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed
Caches
Browser Caching
Page Caching
Fragment Caching
Data Caching (memory, Memcache, Redis)
In-database Caching
29
source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed
Background Tasks
Why do now what you can do later?
30
source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed
More Concurrency
Remember hosting?
Bare metal: add more servers behind a
load balancer
Virtual servers: add more virtual servers
behind a virtual load balancer
App platforms: press a button (in theory)
Failover
Geographic redundancy
Sticky Sessions
31
source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed
Database
Add indices
(or remove them)
Find and optimize slow queries
Avoid the N+1 problem
Eager loading
Add databases:
Master and slave (and slave and slave)
Clusters
Vertical partitioning
Horizontal partitioning (sharding)
32
source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed
Case Study
Instagram
http://www.slideshare.net/iammutex/scaling-instagram
33
source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed
{breathe}
34
source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed
Want more?
Startup Engineering: https://www.coursera.org/course/startup
UT on Rails: http://schneems.com/ut-rails
Contact me and ask about deep dives on other topics:
HTML, CSS, SQL, Rails, PHP, Wordpress, payment processing...?
35
source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed
Thanks! Any questions?
jesse@thesourcespring.com
www.thesourcespring.com
Liked this class? Please connect with me on LinkedIn and endorse me for teaching!
http://www.linkedin.com/in/jessejack
36

Más contenido relacionado

Destacado

Kadazandusun mentality
Kadazandusun mentalityKadazandusun mentality
Kadazandusun mentality
kombura
 
Profile kg tudan kiulu tuaran
Profile kg tudan kiulu tuaranProfile kg tudan kiulu tuaran
Profile kg tudan kiulu tuaran
kombura
 
Profesional sharing self-reliance
Profesional sharing   self-relianceProfesional sharing   self-reliance
Profesional sharing self-reliance
kombura
 
900 sp pengajian am modular
900 sp pengajian am modular900 sp pengajian am modular
900 sp pengajian am modular
kombura
 
Tongkuyu
TongkuyuTongkuyu
Tongkuyu
kombura
 

Destacado (16)

台大竹北產學大樓進度7月第5周 by 徐欣瑩社群
台大竹北產學大樓進度7月第5周 by 徐欣瑩社群台大竹北產學大樓進度7月第5周 by 徐欣瑩社群
台大竹北產學大樓進度7月第5周 by 徐欣瑩社群
 
Kolokium 31.1.2012
Kolokium 31.1.2012Kolokium 31.1.2012
Kolokium 31.1.2012
 
Kertas kerja lasabel
Kertas kerja lasabelKertas kerja lasabel
Kertas kerja lasabel
 
Kadazandusun mentality
Kadazandusun mentalityKadazandusun mentality
Kadazandusun mentality
 
Kadazandusun mentality
Kadazandusun mentalityKadazandusun mentality
Kadazandusun mentality
 
Profile kg tudan kiulu tuaran
Profile kg tudan kiulu tuaranProfile kg tudan kiulu tuaran
Profile kg tudan kiulu tuaran
 
Profesional sharing self-reliance
Profesional sharing   self-relianceProfesional sharing   self-reliance
Profesional sharing self-reliance
 
Sistem modular t6 2012
Sistem modular t6 2012Sistem modular t6 2012
Sistem modular t6 2012
 
966 sp sains sukan modular
966 sp sains sukan modular966 sp sains sukan modular
966 sp sains sukan modular
 
Penilaian kokum t6
Penilaian kokum t6Penilaian kokum t6
Penilaian kokum t6
 
Tajuk kajian penyelidikan siri 2 (likas square)
Tajuk kajian penyelidikan siri 2 (likas square)Tajuk kajian penyelidikan siri 2 (likas square)
Tajuk kajian penyelidikan siri 2 (likas square)
 
900 sp pengajian am modular
900 sp pengajian am modular900 sp pengajian am modular
900 sp pengajian am modular
 
Boros Kadazandusun
Boros KadazandusunBoros Kadazandusun
Boros Kadazandusun
 
Tongkuyu
TongkuyuTongkuyu
Tongkuyu
 
Markah kokum prau stpm2011
Markah kokum prau stpm2011Markah kokum prau stpm2011
Markah kokum prau stpm2011
 
Tongkuyu
TongkuyuTongkuyu
Tongkuyu
 

Similar a Rolling Up Your Sleeves

Functional Scala 2022 - scalajs Alexis.pdf
Functional Scala 2022 - scalajs Alexis.pdfFunctional Scala 2022 - scalajs Alexis.pdf
Functional Scala 2022 - scalajs Alexis.pdf
ssusercd195b
 
Develop With Pleasure Deploy With Fun Glass Fish And Net Beans For A Better...
Develop With Pleasure  Deploy With Fun  Glass Fish And Net Beans For A Better...Develop With Pleasure  Deploy With Fun  Glass Fish And Net Beans For A Better...
Develop With Pleasure Deploy With Fun Glass Fish And Net Beans For A Better...
railsconf
 

Similar a Rolling Up Your Sleeves (20)

Gamifying Agile Adoption - An experiment
Gamifying Agile Adoption  - An experimentGamifying Agile Adoption  - An experiment
Gamifying Agile Adoption - An experiment
 
Functional Scala 2022 - scalajs Alexis.pdf
Functional Scala 2022 - scalajs Alexis.pdfFunctional Scala 2022 - scalajs Alexis.pdf
Functional Scala 2022 - scalajs Alexis.pdf
 
Dojo 1.0: Great Experiences For Everyone
Dojo 1.0: Great Experiences For EveryoneDojo 1.0: Great Experiences For Everyone
Dojo 1.0: Great Experiences For Everyone
 
Server Add-ons for Front-end Developers
Server Add-ons for Front-end DevelopersServer Add-ons for Front-end Developers
Server Add-ons for Front-end Developers
 
Scaling 101 test
Scaling 101 testScaling 101 test
Scaling 101 test
 
Scaling 101
Scaling 101Scaling 101
Scaling 101
 
Are you ready for cloud-native java JavaCro2019
Are you ready for cloud-native java JavaCro2019Are you ready for cloud-native java JavaCro2019
Are you ready for cloud-native java JavaCro2019
 
Kickstarting Node.js Projects with Yeoman
Kickstarting Node.js Projects with YeomanKickstarting Node.js Projects with Yeoman
Kickstarting Node.js Projects with Yeoman
 
JDBC, What Is It Good For?
JDBC, What Is It Good For?JDBC, What Is It Good For?
JDBC, What Is It Good For?
 
Resume
ResumeResume
Resume
 
Measuring Web Performance - HighEdWeb Edition
Measuring Web Performance - HighEdWeb EditionMeasuring Web Performance - HighEdWeb Edition
Measuring Web Performance - HighEdWeb Edition
 
Ekoparty 2017 - The Bug Hunter's Methodology
Ekoparty 2017 - The Bug Hunter's MethodologyEkoparty 2017 - The Bug Hunter's Methodology
Ekoparty 2017 - The Bug Hunter's Methodology
 
[DevDay2018] Javascript on the Rise - By Trang Tran, Co-founder & Manager at ...
[DevDay2018] Javascript on the Rise - By Trang Tran, Co-founder & Manager at ...[DevDay2018] Javascript on the Rise - By Trang Tran, Co-founder & Manager at ...
[DevDay2018] Javascript on the Rise - By Trang Tran, Co-founder & Manager at ...
 
BackEnd-Roadmap.pdf
BackEnd-Roadmap.pdfBackEnd-Roadmap.pdf
BackEnd-Roadmap.pdf
 
Develop With Pleasure Deploy With Fun Glass Fish And Net Beans For A Better...
Develop With Pleasure  Deploy With Fun  Glass Fish And Net Beans For A Better...Develop With Pleasure  Deploy With Fun  Glass Fish And Net Beans For A Better...
Develop With Pleasure Deploy With Fun Glass Fish And Net Beans For A Better...
 
Springone2gx 2015 Cassandra and Grails
Springone2gx 2015 Cassandra and GrailsSpringone2gx 2015 Cassandra and Grails
Springone2gx 2015 Cassandra and Grails
 
Continuous Deployment: The Dirty Details
Continuous Deployment: The Dirty DetailsContinuous Deployment: The Dirty Details
Continuous Deployment: The Dirty Details
 
SQL Server PowerShell - Community Tools
SQL Server PowerShell - Community ToolsSQL Server PowerShell - Community Tools
SQL Server PowerShell - Community Tools
 
2019 StartIT - Boosting your performance with Blackfire
2019 StartIT - Boosting your performance with Blackfire2019 StartIT - Boosting your performance with Blackfire
2019 StartIT - Boosting your performance with Blackfire
 
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
 

Último

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Último (20)

MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 

Rolling Up Your Sleeves

  • 1. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed Rolling Up Your Sleeves jesse@thesourcespring.com www.thesourcespring.com 1
  • 2. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed Class Structure Part 1 - Options: A whirlwind tour of languages and frameworks (30 mins) Part 2 - Help: Getting development assistance and managing it (30 mins) Part 3 - Scaling: Success is a risk (30 mins) Part 4 - Q&A: Pick my brain (30 mins?) 2
  • 3. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed About Me 3
  • 4. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed Who Are You? Introduce yourself. What experience in software development do you already have? What are you hoping to get out of today? 4
  • 5. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed {let’s do this} 5
  • 6. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed Options A whirlwind tour of languages and frameworks 6
  • 7. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed Architecture for client/server apps 7
  • 8. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed Languages Client-side vs Server-side Interpreted vs Compiled 8
  • 9. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed Languages Perl PHP Javascript (client-side) Node.js (server-side Javascript) Java Python Ruby C / C++ / Objective C C# 9
  • 10. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed Frameworks: terminology What is a framework? DRY (Don’t Repeat Yourself) MVC (Model–View–Controller) ORM (Object Relational Model) Front Pattern (Routes) 10
  • 11. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed Frameworks: server-side Ruby on Rails PHP + Symphony PHP + Wordpress Python + Django Node.js + Express.js Java + Spring/Hibernate/EE/??? C# + .Net 11
  • 12. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed Frameworks: client-side Javascript + JQuery / Ember / Angular Objective C + iOS SDK Java + Android SDK 12
  • 13. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed Frameworks: mobile hybrids HTML5 in a wrapper PhoneGap Titanium Adobe AIR 13
  • 14. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed Databases SQL Postgres, MySQL, Oracle NoSQL Mongo, Couch, Cassandra Keystore Memcache, Redis 14
  • 15. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed Hosting Bare Metal Rack ’em up Virtual Servers Rackspace, Amazon App Platforms Heroku, Appfog, Railyard 15
  • 16. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed Considerations Performance (Speed vs Latency) Agility Maintainability Cost of ownership Owning your platform What you know What you can learn Where you can learn it from Your developers’ knowledge Ease of finding developers 16
  • 17. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed {breathe} 17
  • 18. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed Help Getting development assistance and managing it 18
  • 19. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed Options DIY Technical Co-Founder Hiring FTEs Hiring Contractors Outsourcing (NB: This may or may not mean offshoring) Volunteers Open Source 19
  • 20. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed Considerations What you can offer: cash vs equity Your savviness Your ability to manage Need for agility (how much work can you do up front?) 20
  • 21. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed Agreements Statement of work Intellectual property Equity or cash Warranty and maintenance Handling disputes Documentation 21
  • 22. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed Finding Developers Friends, LinkedIn and Facebook AngelList, GitHub ODesk, Guru, VWorker, ELance Head hunters Craigslist 22
  • 23. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed Process Agile / Scrum The sprint cycle Writing stories and documenting them Velocity and points Test Driven Development Behavior Driven Development 23
  • 24. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed Version Control Why? SVN vs Git Github, Mercurial, Bitbucket, Sourceforge 24
  • 25. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed QA Painful: they will not do it all for you Bug tracking Automated testing Continuous integration 25
  • 26. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed {breathe} 26
  • 27. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed Scaling Success is a risk 27
  • 28. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed Serving Assets Minification CDNs - Content Distribution Networks 28
  • 29. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed Caches Browser Caching Page Caching Fragment Caching Data Caching (memory, Memcache, Redis) In-database Caching 29
  • 30. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed Background Tasks Why do now what you can do later? 30
  • 31. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed More Concurrency Remember hosting? Bare metal: add more servers behind a load balancer Virtual servers: add more virtual servers behind a virtual load balancer App platforms: press a button (in theory) Failover Geographic redundancy Sticky Sessions 31
  • 32. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed Database Add indices (or remove them) Find and optimize slow queries Avoid the N+1 problem Eager loading Add databases: Master and slave (and slave and slave) Clusters Vertical partitioning Horizontal partitioning (sharding) 32
  • 33. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed Case Study Instagram http://www.slideshare.net/iammutex/scaling-instagram 33
  • 34. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed {breathe} 34
  • 35. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed Want more? Startup Engineering: https://www.coursera.org/course/startup UT on Rails: http://schneems.com/ut-rails Contact me and ask about deep dives on other topics: HTML, CSS, SQL, Rails, PHP, Wordpress, payment processing...? 35
  • 36. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed Thanks! Any questions? jesse@thesourcespring.com www.thesourcespring.com Liked this class? Please connect with me on LinkedIn and endorse me for teaching! http://www.linkedin.com/in/jessejack 36