[@IndeedEng] Engineering Velocity: Building Great Software Through Fast Iteration
- 6. Indeed
#1 Job Site Worldwide
More people find jobs on Indeed than anywhere
else
Over 100M monthly visitors
Over 3B monthly searches
- 35. High Performance SOA Framework
Boxcar
Image used with permission of O Scale Trains Magazine (oscalemag.com), photo credit Don McFall of Old Line Graphics
http://go.indeed.com/boxcar
- 37. Represent complex data types
Extremely compact and performant
Forwards and backwards compatible
Boxcar: API Compatibility
- 49. Each page has
different features
different operational requirements
different owners
Each page should be its own application
- 53. Option: Shared Code Libraries
Reduced flexibility of technology decisions
Requires a release of all projects
Occasional inconsistent user experience
- 57. <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>
- 58. <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>
- 59. <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>
- 60. 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
- 68. ● One code base for mobile web, iOS, Android
● Simultaneous release of features across
platforms
Shared Code Across Platforms
- 69. ● No waiting for App Store approval
● No waiting for job seekers to upgrade
Release On Our Own Schedule
- 70. Easy To Run Experiments
● A/B testing in native apps extremely
challenging
● Reuse existing infrastructure for performing
and evaluating experiments
- 73. one search. all jobs.
una búsqueda. todos los empleos.
Jedno vyhledávání. Všechna pracovní místa.
Ein Klick. Alle Jobs.
一站搜尋,工作齊全
tek arama. bütün işler.
uma busca. todos os empregos.
één klik. alle vacatures.
あらゆる仕事 まとめて検索
una ricerca. tutti i lavori.
- 94. Real-time monitoring with Datadog
● Agent reports summarized data
● System and customized business metrics
● Customizable dashboards
- 97. Proctor
● System for managing A/B experiments
● Segment visitors and assign test groups
● Manage feature visibility
- 104. Number of users affected
Small allocation changes
0% → 1% → 5% → 50% → 100%
- 116. We built all of this
incrementally, to meet our
own challenges