SlideShare une entreprise Scribd logo
1  sur  125
Engineering Velocity 
Building Great Software 
Through Rapid Iteration
Matt Schemmel 
Engineering 
Resume Products
I help 
people 
get jobs.
Indeed 
#1 Job Site Worldwide 
More people find jobs on Indeed than anywhere 
else 
Over 140M monthly visitors 
Over 3B monthly searches
(other)
Late '90s Quality Products
High Performance 
Late '90s 
Early '00s 
Quality Products
High Performance 
Late '90s 
Early '00s 
Quality Products 
Late '00s High Scalability
High Performance 
Late '90s 
Early '00s 
Quality Products 
Late '00s High Scalability 
Early '10s Rapid Iteration
Rapid Iteration: 
Better Products 
Faster 
http://go.indeed.com/tdwi 
http://go.indeed.com/ddpd 
http://go.indeed.com/tdwi
Indeed Product Development Principles 
Measure Everything 
Test Everything (A/B Experiments) 
Iterate Quickly
Lean Startup Cycle 
Build 
Learn Measure
Indeed Product 
Development Cycle 
Deliver 
Learn Measure
Indeed Product 
Development Cycle 
Deliver 
Quickly! 
Learn Measure
Indeed Product 
Development Cycle 
Deliver 
Learn Measure
Engineering Velocity 
Deliver 
Learn Measure
Engineering Velocity (n) 
[ˌenjəˈni(ə)riNG vəˈläsətē] 
Our ability to quickly deliver implementations of 
ideas to job seekers and employers
Deliver Developer Productivity
Software Architecture 
Processes and Tools 
Risk Management 
Deliver
Software Architecture 
Processes and Tools 
Risk Management 
Deliver
Job Search 
Web App
STOP 
EVERY 
THING
Job Search 
Web App
Job Search 
Web App
Service Oriented Architecture: 
Technical Challenges
Challenge: High Performance 
● Speed is a feature 
● 100ms response time 
clicks 
time-to-render
Boxcar 
High Performance SOA Framework 
http://go.indeed.com/boxcar 
Image used with permission of O Scale Trains Magazine (oscalemag.com), photo credit Don McFall of Old Line Graphics
Boxcar 
Load Distribution without Middleware 
http://go.indeed.com/boxcar
http://go.indeed.com/boxcar
Challenge: Compatibility over Time 
● Any service can be updated at any time 
● Any client can be updated at any time 
● Any service or client can be rolled back 
unexpectedly 
Every service conversation must be forward 
and backwards compatible
Boxcar: API Compatibility 
Represent complex data types 
Extremely compact and performant 
Forwards and backwards compatible
Challenge: Deploy Independence 
Forward/backward-compatible API is great. 
But what about implementations?
Hard Scenarios 
New API 
Old server doesn't understand new client 
Same API, Different Behavior 
Old client doesn't understand new server 
New client doesn't understand old server
Proctor 
Efficient A/B Experiment Management 
http://indeedeng.github.io/proctor/
Proctor 
● Visitor segmentation 
● Population filters 
● Contextual allocation 
http://indeedeng.github.io/proctor/
Proctor: Filters 
"rule" : "loggedIn" 
"rule" : "smartphone && 
'JP' == country" 
"rule" : "ua.os == 'ios' && 
ua.version >= '6.0'"
Proctor: Visitor Allocation 
10% 10% 
Sign Up Activate 
25% 25% 
Sign Up Activate 
US 
UK
Proctor 
Manage Experiments → Manage Behavior
Job Search 
Web App 
Boxcar!
Decoupling 
Web Front-Ends
Each page has 
different features 
different data 
different operational requirements 
different owners 
Each page should be its own deliverable
Job Search 
Trends 
Company Info 
Forums 
Salary 
Indeed
Indeed Web Properties Goals 
Provide a consistent user experience 
One implementation of shared functionality 
Completely decoupled applications
Option: Shared Libraries? 
Reduced flexibility of technology decisions 
Requires a release of all projects 
Occasional inconsistent user experience
Option: Shared Resources? 
On every app, include: 
http://www.indeed.com/global/nav.js 
http://www.indeed.com/global/nav.css 
http://www.indeed.com/global/nav
Option: Common Resource 
Reduced flexibility of technology decisions 
Requires a release of all projects 
Occasional inconsistent user experience 
No shared services
Solution: Navshell 
Application-level Rewriting HTTP Proxy
Request 
Navshell 
HTTP 
Web App
<head> 
<title>Johnson & Johnson Careers</title> 
<link type="text/css" href="common.css"> 
<link type="text/css" href="comp.css"> 
</head> 
<body> 
<div id="page-header"> 
...... 
</div> 
<div id="page-body"> 
<div id="page-frame"> 
<div id="comp-header"> 
...... 
</div> 
</div> 
</div> 
</body>
<head> 
<title>Johnson & Johnson Careers</title> 
<link type="text/css" href="common.css"> 
<link type="text/css" href="comp.css"> 
</head> 
<body> 
<div id="page-header"> 
...... 
</div> 
<div id="page-body"> 
<div id="page-frame"> 
<div id="comp-header"> 
...... 
</div> 
</div> 
</div> 
</body>
<head> 
<title>Johnson & Johnson Careers</title> 
<link type="text/css" href="common.css"> 
<link type="text/css" href="comp.css"> 
</head> 
<body> 
<div id="page-header"> 
...... 
</div> 
<div id="page-body"> 
<div id="page-frame"> 
<div id="comp-header"> 
...... 
</div> 
</div> 
</div> 
</body>
REQUEST HEADERS 
Cookie, User-Agent, Referer, etc 
X-Indeed-Shell: 1 
X-Indeed-Logged-In: [01] 
X-Indeed-Email: chris@indeed.com 
X-Indeed-Locale: en_US 
X-Indeed-Geo: US 
Navshell 
Web App
Navshell 
RESPONSE HEADERS 
Set-Cookie 
X-Indeed-Page-Title: Indeed Careers 
X-Indeed-Include-Js-Footer: /js/app.js 
X-Indeed-Include-Css: /style/main.css 
Web App
Navshell 
No duplicate code 
Centralized navigation changes 
Plain HTTP with strong contract 
Decoupled front-ends
Requests 
Navshell 
Services Web Apps
Web-Based Delivery of 
Mobile App Features
Mobile 
Mobile Browser Mobile App
Mobile 
Mobile Browser Mobile App
Shared Code Across Platforms 
● One code base for mobile web, iOS, Android 
● Simultaneous release of features across 
platforms 
● No waiting for App Store approval 
● No waiting for job seekers to upgrade
Easy To Reuse Infrastructure 
● A/B testing in native apps challenging 
● Activity tracking challenging 
● Performance monitoring challenging 
We have battle-hardened solutions to all these.
Desktop 
Browsers 
Mobile 
Browsers 
Mobile 
Apps 
Job Search 
App
Software Architecture 
Processes and Tools 
Risk Management 
Deliver
Continuous Collaboration 
Product 
Eng QA
Continuous Deployment Toolchain 
Integration git 
Verification Jenkins 
JUnit, TestNG, Selenium, JaCoCo, … 
Deployment Rundeck
But what about the hard stuff? 
● Configuration changes 
● Resource re-allocation 
● Database schema updates 
● Internationalization
But what about the hard stuff? 
● Configuration changes 
● Resource re-allocation 
● Database schema updates 
● Internationalization 
http://go.indeed.com/i18n
<Indeed map of the world>
tek arama. bütün işler. 
one search. all jobs. 
uma busca. todos os empregos. 
één klik. alle vacatures. 
una búsqueda. todos los empleos. 
Ein Klick. Alle Jobs. 
一站搜尋,工作齊全 
Jedno vyhledávání. Všechna pracovní místa. 
あらゆる仕事まとめて検索 
una ricerca. tutti i lavori.
Before Internationalization 
Implement Commit 
Deploy to 
QA 
Deploy to 
Production 
Verify
Internationalization Process Overhead 
Implement Commit 
Translate 
Deploy to 
Verify Production 
Identify 
Deploy to 
QA 
Commit
+1 day
+1 day (20%)
+1 day (minimum)
<Indeed map of the world>
<Indeed map of the world> 
<but with only US in orange>
I help 
[English-speaking 
Americans] 
get jobs?
gettext utilities 
GNU Translation Project Tool Set 
http://www.gnu.org/software/gettext/
Template 
en.po 
Extract
gettext utilities (with some help) 
✓ Many text sources: jsp, ftl, soy, js, … 
✓ Dialects: en_US, en_CA, en_GB, … 
✓ Variable substitution 
✓ Complex plural forms
Machine Translation 
English 
Portuguese
Machine Translation 
Low quality translations are better than no 
translations 
But we needed something better
Human Translation Service
Combined Translation Service 
Extract Improve Release
Localization before Translation Automation 
Implement Commit 
Identify Translate 
Commit 
Deploy to 
Verify Production 
Deploy to 
QA
Localization with Translation Automation 
Implement Commit 
Deploy to 
Verify Production 
Extract 
Deploy to 
QA 
Improve
And if there just isn't enough time… 
"rule" : "language != 'es'" 
"rule" : "locale != 'en_GB'" 
"rule" : "country != 'IT'"
I help 
everyone 
get jobs!
Software Architecture 
Processes and Tools 
Risk Management 
Deliver
Risk 
Severity of issue 
Probability of issue 
Number of users affected
Smaller Releases 
Probability of issue 
More releases → less functionality per release
Proctor Feature Toggles 
Probability of issue 
"rule" : 
"endsWith(email,'@indeed.com')"
Manage Cross-Product Releases 
Probability of ISsue 
Deploy products then activate features
Decouple Features from Releases 
# of users affected 
Rollback features and releases independently
Incremental allocation changes 
Number of users affected 
1% → 5% → 25% → 50% → 100%
Embedded QA 
Probability of issue 
Severity of issue
Monitoring 
# of users affected
Monitoring and Alerting 
● Identify runtime issues 
● Alert Ops when an issue arises
Healthcheck Framework 
● Applications and services self-report 
internal state & health 
● Divert traffic away from unhealthy instances 
● Disable features for failing dependencies
Measure Everything
Software Architecture 
Processes and Tools 
Risk Management 
Deliver
Better Product 
● Emphasize goals over features 
● Fail faster, cheaper 
● Incremental progress live in production
Better Life 
● No deadline crunches 
● There's always another release coming 
● More transparent schedules = less stress
We built all of this 
incrementally, to meet 
our own challenges
Yours are different
Q&A 
Visit 
http://engineering.indeed.com/ 
and 
http://go.indeed.com/jobs

Contenu connexe

Tendances

DevOps - It's About How We Work
DevOps - It's About How We WorkDevOps - It's About How We Work
DevOps - It's About How We Work
Randy Shoup
 
Sprinting for Success: Digital Transformation through Agile and DevOps
Sprinting for Success: Digital Transformation through Agile and DevOpsSprinting for Success: Digital Transformation through Agile and DevOps
Sprinting for Success: Digital Transformation through Agile and DevOps
Dynatrace
 

Tendances (20)

Keeping Your DevOps Transformation From Crushing Your Ops Capacity
Keeping Your DevOps Transformation From Crushing Your Ops Capacity Keeping Your DevOps Transformation From Crushing Your Ops Capacity
Keeping Your DevOps Transformation From Crushing Your Ops Capacity
 
Den Bosch Java User Group April 2020 - Better software, faster - Principles o...
Den Bosch Java User Group April 2020 - Better software, faster - Principles o...Den Bosch Java User Group April 2020 - Better software, faster - Principles o...
Den Bosch Java User Group April 2020 - Better software, faster - Principles o...
 
Deploying to Production with Your Eyes Open | SeaLights | Jason Wides
Deploying to Production with Your Eyes Open | SeaLights | Jason WidesDeploying to Production with Your Eyes Open | SeaLights | Jason Wides
Deploying to Production with Your Eyes Open | SeaLights | Jason Wides
 
Operations as a Service: Because Failure Still Happens
Operations as a Service: Because Failure Still Happens Operations as a Service: Because Failure Still Happens
Operations as a Service: Because Failure Still Happens
 
Fully Tested: From Design to MVP In 3 Weeks
Fully Tested: From Design to MVP In 3 WeeksFully Tested: From Design to MVP In 3 Weeks
Fully Tested: From Design to MVP In 3 Weeks
 
DevOpsDays Austin: Helping Horses Become Unicorns, Chef's Operations Maturity...
DevOpsDays Austin: Helping Horses Become Unicorns, Chef's Operations Maturity...DevOpsDays Austin: Helping Horses Become Unicorns, Chef's Operations Maturity...
DevOpsDays Austin: Helping Horses Become Unicorns, Chef's Operations Maturity...
 
Continuously Integrating Distributed Code at Netflix
Continuously Integrating Distributed Code at NetflixContinuously Integrating Distributed Code at Netflix
Continuously Integrating Distributed Code at Netflix
 
The "Ops" Side of DevSecOps
The "Ops" Side of DevSecOps The "Ops" Side of DevSecOps
The "Ops" Side of DevSecOps
 
Merging and Migrating: Data Portability from the Trenches
Merging and Migrating: Data Portability from the TrenchesMerging and Migrating: Data Portability from the Trenches
Merging and Migrating: Data Portability from the Trenches
 
DevoxxUK 2019 - Better software, faster.
DevoxxUK 2019 - Better software, faster.DevoxxUK 2019 - Better software, faster.
DevoxxUK 2019 - Better software, faster.
 
Testing in a DevOps team
Testing in a DevOps teamTesting in a DevOps team
Testing in a DevOps team
 
Devoxx Belgium 2019 - Better software, faster: Principles of Continuous Deliv...
Devoxx Belgium 2019 - Better software, faster: Principles of Continuous Deliv...Devoxx Belgium 2019 - Better software, faster: Principles of Continuous Deliv...
Devoxx Belgium 2019 - Better software, faster: Principles of Continuous Deliv...
 
DOES16 San Francisco - David Blank-Edelman - Lessons Learned from a Parallel ...
DOES16 San Francisco - David Blank-Edelman - Lessons Learned from a Parallel ...DOES16 San Francisco - David Blank-Edelman - Lessons Learned from a Parallel ...
DOES16 San Francisco - David Blank-Edelman - Lessons Learned from a Parallel ...
 
OpenValue Vienna meetup september 2020 - Better software, faster: Principles ...
OpenValue Vienna meetup september 2020 - Better software, faster: Principles ...OpenValue Vienna meetup september 2020 - Better software, faster: Principles ...
OpenValue Vienna meetup september 2020 - Better software, faster: Principles ...
 
Quality Jam 2017: Jesse Reed & Kyle McMeekin "Test Case Management & Explorat...
Quality Jam 2017: Jesse Reed & Kyle McMeekin "Test Case Management & Explorat...Quality Jam 2017: Jesse Reed & Kyle McMeekin "Test Case Management & Explorat...
Quality Jam 2017: Jesse Reed & Kyle McMeekin "Test Case Management & Explorat...
 
Api fundamentals
Api fundamentalsApi fundamentals
Api fundamentals
 
DevOps - It's About How We Work
DevOps - It's About How We WorkDevOps - It's About How We Work
DevOps - It's About How We Work
 
What’s new in VS 2015 and ALM 2015
What’s new in VS 2015 and ALM 2015What’s new in VS 2015 and ALM 2015
What’s new in VS 2015 and ALM 2015
 
Lean Canvas for Internal Product Owners
Lean Canvas for Internal Product OwnersLean Canvas for Internal Product Owners
Lean Canvas for Internal Product Owners
 
Sprinting for Success: Digital Transformation through Agile and DevOps
Sprinting for Success: Digital Transformation through Agile and DevOpsSprinting for Success: Digital Transformation through Agile and DevOps
Sprinting for Success: Digital Transformation through Agile and DevOps
 

En vedette

Documentary History & Modes
Documentary History & ModesDocumentary History & Modes
Documentary History & Modes
bjmoss
 
CV_Psychology_Asst.Prof_Vijaya Bhaskar
CV_Psychology_Asst.Prof_Vijaya BhaskarCV_Psychology_Asst.Prof_Vijaya Bhaskar
CV_Psychology_Asst.Prof_Vijaya Bhaskar
Dr. Vijay Bhaskr
 

En vedette (20)

Documentary History & Modes
Documentary History & ModesDocumentary History & Modes
Documentary History & Modes
 
1
11
1
 
American Meridian University_Force Field Analysis_ Quality Tools Series 2014
American Meridian University_Force Field Analysis_ Quality Tools Series 2014American Meridian University_Force Field Analysis_ Quality Tools Series 2014
American Meridian University_Force Field Analysis_ Quality Tools Series 2014
 
Kod Akış Kontrolü - Döngüler, Fonksiyonlar
Kod Akış Kontrolü - Döngüler, FonksiyonlarKod Akış Kontrolü - Döngüler, Fonksiyonlar
Kod Akış Kontrolü - Döngüler, Fonksiyonlar
 
Mti ppt
Mti pptMti ppt
Mti ppt
 
impress.js Framework
impress.js Frameworkimpress.js Framework
impress.js Framework
 
1. uu no. 44_th_2009_ttg_rumah_sakit
1. uu no. 44_th_2009_ttg_rumah_sakit1. uu no. 44_th_2009_ttg_rumah_sakit
1. uu no. 44_th_2009_ttg_rumah_sakit
 
shakuntalanivas
shakuntalanivasshakuntalanivas
shakuntalanivas
 
panchalingeswar tours & travels
panchalingeswar tours & travelspanchalingeswar tours & travels
panchalingeswar tours & travels
 
01.08030501
01.0803050101.08030501
01.08030501
 
CV_Psychology_Asst.Prof_Vijaya Bhaskar
CV_Psychology_Asst.Prof_Vijaya BhaskarCV_Psychology_Asst.Prof_Vijaya Bhaskar
CV_Psychology_Asst.Prof_Vijaya Bhaskar
 
PHP Temelleri
PHP TemelleriPHP Temelleri
PHP Temelleri
 
Itzik goldenberg koranga ceo at samurai venture in israel
Itzik goldenberg koranga ceo at samurai venture in israel Itzik goldenberg koranga ceo at samurai venture in israel
Itzik goldenberg koranga ceo at samurai venture in israel
 
Blogs manual v5
Blogs manual v5Blogs manual v5
Blogs manual v5
 
Sakuntalanivas Tours & Travels
Sakuntalanivas Tours & TravelsSakuntalanivas Tours & Travels
Sakuntalanivas Tours & Travels
 
Temel HTML Etiketleri - Text, Image, Link, List, Image
Temel HTML Etiketleri - Text, Image, Link, List, ImageTemel HTML Etiketleri - Text, Image, Link, List, Image
Temel HTML Etiketleri - Text, Image, Link, List, Image
 
SPMA AGM 2016
SPMA AGM 2016SPMA AGM 2016
SPMA AGM 2016
 
Matching Game In Java
Matching Game In JavaMatching Game In Java
Matching Game In Java
 
Balasore Tours and Travels
Balasore Tours and TravelsBalasore Tours and Travels
Balasore Tours and Travels
 
Problemas de optimización
Problemas de optimizaciónProblemas de optimización
Problemas de optimización
 

Similaire à Engineering Velocity @indeed eng presented on Sept 24 2014 at Beyond Agile

Similaire à Engineering Velocity @indeed eng presented on Sept 24 2014 at Beyond Agile (20)

[@IndeedEng] Engineering Velocity: Building Great Software Through Fast Itera...
[@IndeedEng] Engineering Velocity: Building Great Software Through Fast Itera...[@IndeedEng] Engineering Velocity: Building Great Software Through Fast Itera...
[@IndeedEng] Engineering Velocity: Building Great Software Through Fast Itera...
 
Principles and Practices in Continuous Deployment at Etsy
Principles and Practices in Continuous Deployment at EtsyPrinciples and Practices in Continuous Deployment at Etsy
Principles and Practices in Continuous Deployment at Etsy
 
The Rationale for Continuous Delivery
The Rationale for Continuous DeliveryThe Rationale for Continuous Delivery
The Rationale for Continuous Delivery
 
I Know It Was MEAN, But I Cut the Cord to LAMP Anyway
I Know It Was MEAN, But I Cut the Cord to LAMP AnywayI Know It Was MEAN, But I Cut the Cord to LAMP Anyway
I Know It Was MEAN, But I Cut the Cord to LAMP Anyway
 
Job portal
Job portalJob portal
Job portal
 
Continuous Deployment at Etsy — TimesOpen NYC
Continuous Deployment at Etsy — TimesOpen NYCContinuous Deployment at Etsy — TimesOpen NYC
Continuous Deployment at Etsy — TimesOpen NYC
 
WinOps Conf 2016 - Michael Greene - Release Pipelines
WinOps Conf 2016 - Michael Greene - Release PipelinesWinOps Conf 2016 - Michael Greene - Release Pipelines
WinOps Conf 2016 - Michael Greene - Release Pipelines
 
Untangling Continuous Delivery
Untangling Continuous DeliveryUntangling Continuous Delivery
Untangling Continuous Delivery
 
Security with the Speed of Continuous Delivery
Security with the Speed of Continuous DeliverySecurity with the Speed of Continuous Delivery
Security with the Speed of Continuous Delivery
 
I Know It Was MEAN, But I Cut the Cord to LAMP Anyway
I Know It Was MEAN, But I Cut the Cord to LAMP AnywayI Know It Was MEAN, But I Cut the Cord to LAMP Anyway
I Know It Was MEAN, But I Cut the Cord to LAMP Anyway
 
The Quest for Continuous Delivery at Pluralsight
The Quest for Continuous Delivery at PluralsightThe Quest for Continuous Delivery at Pluralsight
The Quest for Continuous Delivery at Pluralsight
 
Continuous Deployment
Continuous DeploymentContinuous Deployment
Continuous Deployment
 
Resume 2 year
Resume  2 yearResume  2 year
Resume 2 year
 
All daydevops 2016 - Turning Human Capital into High Performance Organizati...
All daydevops   2016 - Turning Human Capital into High Performance Organizati...All daydevops   2016 - Turning Human Capital into High Performance Organizati...
All daydevops 2016 - Turning Human Capital into High Performance Organizati...
 
Continuous delivery is more than dev ops
Continuous delivery is more than dev opsContinuous delivery is more than dev ops
Continuous delivery is more than dev ops
 
Agile Development From A Developers Perspective
Agile Development From A Developers PerspectiveAgile Development From A Developers Perspective
Agile Development From A Developers Perspective
 
North east user group tour
North east user group tourNorth east user group tour
North east user group tour
 
Bdd with Cucumber and Mocha
Bdd with Cucumber and MochaBdd with Cucumber and Mocha
Bdd with Cucumber and Mocha
 
Scrum in Wonderland
Scrum in WonderlandScrum in Wonderland
Scrum in Wonderland
 
Stress Test as a Culture
Stress Test as a CultureStress Test as a Culture
Stress Test as a Culture
 

Dernier

%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
masabamasaba
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
chiefasafspells
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
masabamasaba
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
VictoriaMetrics
 

Dernier (20)

%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 

Engineering Velocity @indeed eng presented on Sept 24 2014 at Beyond Agile

Notes de l'éditeur

  1. For the rest of this I’ll focus on how Indeed delivers new functionality to jobseekers and how we’ve increased our ability to do this quickly - something we’ve started calling ENGINEERING VELOCITY.
  2. Although the job search web app was large, it was structured well internally, with separate MODULES responsible for implementing specific pieces of functionality. This allowed individuals or small teams to focus on each MODULES and improve it’s capabilities. This wasn’t enough though - because the entire application was released as a single DELIVERABLE, it meant all of the teams needed to be ready to release at the same time.
  3. Before we could move the job search application to an SOA, there were some technical challenges that we needed to address. If the overhead of a service call was more than a few milliseconds, then the AGGREGATE COST of the overhead for the service calls would have a large negative impact on jobseekers.
  4. The logic to determine which behavior should be used for a request is dynamic and can incorporate any criteria needed to segment a visitor including * if a jobseeker is logged in * the device or browser they’re using, * or their country and language Proctor can also randomly determine the behavior to use for visitors who meet specific criteria.
  5. Industry Trends salary pages
  6. Each of these pages is different. * OFFER DIFFERENT FEATURES * ACCESS DIFFERENT DATA * DIFFERENT OPERATIONAL REQUIREMENT * HAD A DIFFERENT TEAM FOCUSED ON THEM Just like all of the components in the Job Search application, if we were to implement this functionality into separate components we can release them independently and on different schedules, allowing each product to deliver new functionality more quickly.
  7. Here is the a company information page, which is served by the company pages webapp via navshell The part in blue is generated by the company page webapp. The content in orange at the top of the page is generated by Navshell. Navshell assembles all of the content into a complete page and returns it to the browser.
  8. We typically only implement something in native code when it’s not possible for us to do it inside of the web view. Since we originally launched our mobile applications, the approach to deliver most of the functionality within the web view has become a strategic part of how we are able to deliver new functionality quickly for mobile users.
  9. We have shared infrastructure for implementing the desktop and mobile search applications. Myth of responsive design
  10. Eng: runs releases Product: available for game-day calls QA: balances engineering optimism
  11. The extra steps meant that user visible changes needed to be complete ONE DAY earlier than normal.
  12. With our short release cycles, ONE DAY meant 20% OR MORE.
  13. We first looked into a machine translation service. This seemed like the ideal - commit change to the UI, the user-visible strings would be immediately extracted and translated within seconds. The results were not as good as we hoped though and there were too many cases where the results were unacceptable. For example, we used the word “CADASTRADO” to ask someone if they were already registered with Indeed. A JOBSEEKER in Brazil would understand this, but a jobseeker from Portugal would wonder why we’re asking if they have a criminal record
  14. This has allowed us to QUICKLY DELIVER NEW FEATURES WORLDWIDE and increased our ENGINEERING VELOCITY. It also means we can make sure we’re building the best products for JOBSEEKERS all around the world.
  15. As Indeed recognized the value of rapid iteration and moved towards a decoupled architecture, the number of releases that were being done each week grew quickly. This meant we needed to be more deliberate about how we managed risk and avoided negatively impacting jobseekers. Source: deploy tickets in jira 2010, 2014 est
  16. Feature toggles allow us to have all of the functionality implemented and running in production, but in code paths that will not be exercised. For example we can use this to launch new features and test them internally in prod environment before making them available to jobseekers.
  17. Proctor has also allowed us to make lots of small changes to group allocations when rolling out tests or new features that are especially risky or resource intensive. We can enable a new feature for 1% of traffic, then up to 100% all within a day or even a few hours. This allows us to identify bugs or scalability issues when they’re only affecting a few users and quickly address them.
  18. Everything I’ve discussed tonight has been built incrementally just like our products, to meet the challenges we faced in increasing our Engineering Velocity.