SlideShare ist ein Scribd-Unternehmen logo
1 von 36
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Andere mochten auch

台大竹北產學大樓進度7月第5周 by 徐欣瑩社群
台大竹北產學大樓進度7月第5周 by 徐欣瑩社群台大竹北產學大樓進度7月第5周 by 徐欣瑩社群
台大竹北產學大樓進度7月第5周 by 徐欣瑩社群guest95ebb55
 
Kolokium 31.1.2012
Kolokium 31.1.2012Kolokium 31.1.2012
Kolokium 31.1.2012kombura
 
Kertas kerja lasabel
Kertas kerja lasabelKertas kerja lasabel
Kertas kerja lasabelkombura
 
Kadazandusun mentality
Kadazandusun mentalityKadazandusun mentality
Kadazandusun mentalitykombura
 
Kadazandusun mentality
Kadazandusun mentalityKadazandusun mentality
Kadazandusun mentalitykombura
 
Profile kg tudan kiulu tuaran
Profile kg tudan kiulu tuaranProfile kg tudan kiulu tuaran
Profile kg tudan kiulu tuarankombura
 
Profesional sharing self-reliance
Profesional sharing   self-relianceProfesional sharing   self-reliance
Profesional sharing self-reliancekombura
 
Sistem modular t6 2012
Sistem modular t6 2012Sistem modular t6 2012
Sistem modular t6 2012kombura
 
966 sp sains sukan modular
966 sp sains sukan modular966 sp sains sukan modular
966 sp sains sukan modularkombura
 
Penilaian kokum t6
Penilaian kokum t6Penilaian kokum t6
Penilaian kokum t6kombura
 
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)kombura
 
900 sp pengajian am modular
900 sp pengajian am modular900 sp pengajian am modular
900 sp pengajian am modularkombura
 
Boros Kadazandusun
Boros KadazandusunBoros Kadazandusun
Boros Kadazandusunkombura
 
Tongkuyu
TongkuyuTongkuyu
Tongkuyukombura
 
Markah kokum prau stpm2011
Markah kokum prau stpm2011Markah kokum prau stpm2011
Markah kokum prau stpm2011kombura
 
Tongkuyu
TongkuyuTongkuyu
Tongkuyukombura
 

Andere mochten auch (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
 

Ähnlich wie Rolling Up Your Sleeves

Gamifying Agile Adoption - An experiment
Gamifying Agile Adoption  - An experimentGamifying Agile Adoption  - An experiment
Gamifying Agile Adoption - An experimentAshish Parkhi
 
Functional Scala 2022 - scalajs Alexis.pdf
Functional Scala 2022 - scalajs Alexis.pdfFunctional Scala 2022 - scalajs Alexis.pdf
Functional Scala 2022 - scalajs Alexis.pdfssusercd195b
 
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 Everyoneslightlyoff
 
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 DevelopersAtlassian
 
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 JavaCro2019Jamie Coleman
 
Kickstarting Node.js Projects with Yeoman
Kickstarting Node.js Projects with YeomanKickstarting Node.js Projects with Yeoman
Kickstarting Node.js Projects with YeomanPatrick Buergin
 
JDBC, What Is It Good For?
JDBC, What Is It Good For?JDBC, What Is It Good For?
JDBC, What Is It Good For?VMware Tanzu
 
Measuring Web Performance - HighEdWeb Edition
Measuring Web Performance - HighEdWeb EditionMeasuring Web Performance - HighEdWeb Edition
Measuring Web Performance - HighEdWeb EditionDave Olsen
 
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 Methodologybugcrowd
 
[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 ...DevDay.org
 
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
 
Springone2gx 2015 Cassandra and Grails
Springone2gx 2015 Cassandra and GrailsSpringone2gx 2015 Cassandra and Grails
Springone2gx 2015 Cassandra and GrailsJeff Beck
 
Continuous Deployment: The Dirty Details
Continuous Deployment: The Dirty DetailsContinuous Deployment: The Dirty Details
Continuous Deployment: The Dirty DetailsMike Brittain
 
SQL Server PowerShell - Community Tools
SQL Server PowerShell - Community ToolsSQL Server PowerShell - Community Tools
SQL Server PowerShell - Community ToolsLars Platzdasch
 
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 BlackfireMarko Mitranić
 
(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...Amazon Web Services
 

Ähnlich wie 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...
 

Kürzlich hochgeladen

What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 

Kürzlich hochgeladen (20)

What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 

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