Rolling Up Your Sleeves

417
-1

Published on

These are slides from a class I presented alumni and incoming students at the Austin Center for Design. The goal was to provide an over view of software application development (architecture, languages, frameworks), how to augment your development with other people of shops, and some basic techniques for scaling up.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
417
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Rolling Up Your Sleeves

  1. 1. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensedRolling Up Your Sleevesjesse@thesourcespring.comwww.thesourcespring.com1
  2. 2. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensedClass StructurePart 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. 3. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensedAbout Me3
  4. 4. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensedWho Are You?Introduce yourself.What experience in software development do you already have?What are you hoping to get out of today?4
  5. 5. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed{let’s do this}5
  6. 6. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensedOptionsA whirlwind tour of languages and frameworks6
  7. 7. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensedArchitecture for client/server apps7
  8. 8. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensedLanguagesClient-side vs Server-sideInterpreted vs Compiled8
  9. 9. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensedLanguagesPerlPHPJavascript (client-side)Node.js (server-side Javascript)JavaPythonRubyC / C++ / Objective CC#9
  10. 10. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensedFrameworks: terminologyWhat is a framework?DRY (Don’t Repeat Yourself)MVC (Model–View–Controller)ORM (Object Relational Model)Front Pattern (Routes)10
  11. 11. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensedFrameworks: server-sideRuby on RailsPHP + SymphonyPHP + WordpressPython + DjangoNode.js + Express.jsJava + Spring/Hibernate/EE/???C# + .Net11
  12. 12. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensedFrameworks: client-sideJavascript + JQuery / Ember / AngularObjective C + iOS SDKJava + Android SDK12
  13. 13. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensedFrameworks: mobile hybridsHTML5 in a wrapperPhoneGapTitaniumAdobe AIR13
  14. 14. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensedDatabasesSQLPostgres, MySQL, OracleNoSQLMongo, Couch, CassandraKeystoreMemcache, Redis14
  15. 15. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensedHostingBare MetalRack ’em upVirtual ServersRackspace, AmazonApp PlatformsHeroku, Appfog, Railyard15
  16. 16. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensedConsiderationsPerformance (Speed vs Latency)AgilityMaintainabilityCost of ownershipOwning your platformWhat you knowWhat you can learnWhere you can learn it fromYour developers’ knowledgeEase of finding developers16
  17. 17. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed{breathe}17
  18. 18. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensedHelpGetting development assistance and managing it18
  19. 19. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensedOptionsDIYTechnical Co-FounderHiring FTEsHiring ContractorsOutsourcing(NB: This may or may not mean offshoring)VolunteersOpen Source19
  20. 20. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensedConsiderationsWhat you can offer: cash vs equityYour savvinessYour ability to manageNeed for agility (how much work can you doup front?)20
  21. 21. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensedAgreementsStatement of workIntellectual propertyEquity or cashWarranty and maintenanceHandling disputesDocumentation21
  22. 22. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensedFinding DevelopersFriends, LinkedIn and FacebookAngelList, GitHubODesk, Guru, VWorker, ELanceHead huntersCraigslist22
  23. 23. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensedProcessAgile / ScrumThe sprint cycleWriting stories and documenting themVelocity and pointsTest Driven DevelopmentBehavior Driven Development23
  24. 24. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensedVersion ControlWhy?SVN vs GitGithub, Mercurial, Bitbucket, Sourceforge24
  25. 25. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensedQAPainful: they will not do it all for youBug trackingAutomated testingContinuous integration25
  26. 26. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed{breathe}26
  27. 27. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensedScalingSuccess is a risk27
  28. 28. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensedServing AssetsMinificationCDNs - Content Distribution Networks28
  29. 29. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensedCachesBrowser CachingPage CachingFragment CachingData Caching (memory, Memcache, Redis)In-database Caching29
  30. 30. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensedBackground TasksWhy do now what you can do later?30
  31. 31. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensedMore ConcurrencyRemember hosting?Bare metal: add more servers behind aload balancerVirtual servers: add more virtual serversbehind a virtual load balancerApp platforms: press a button (in theory)FailoverGeographic redundancySticky Sessions31
  32. 32. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensedDatabaseAdd indices(or remove them)Find and optimize slow queriesAvoid the N+1 problemEager loadingAdd databases:Master and slave (and slave and slave)ClustersVertical partitioningHorizontal partitioning (sharding)32
  33. 33. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensedCase StudyInstagramhttp://www.slideshare.net/iammutex/scaling-instagram33
  34. 34. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensed{breathe}34
  35. 35. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensedWant more?Startup Engineering: https://www.coursera.org/course/startupUT on Rails: http://schneems.com/ut-railsContact me and ask about deep dives on other topics:HTML, CSS, SQL, Rails, PHP, Wordpress, payment processing...?35
  36. 36. source spring — jesse jack — jesse@thesourcespring.com — 2013 CC licensedThanks! Any questions?jesse@thesourcespring.comwww.thesourcespring.comLiked this class? Please connect with me on LinkedIn and endorse me for teaching!http://www.linkedin.com/in/jessejack36
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×