SlideShare a Scribd company logo
Building Indeed Resume
Search
David Tulig
DAVID TULIG
TECH LEAD
JOB SEARCH TEAM
I help
people
get jobs.
Jobseekers Job
Jobseekers Job
We learned from
Job Search
The web evolved
PRINCIPLES
Simple
Fast
Comprehensive
Relevant
PRINCIPLES
Simple
Fast
Comprehensive
Relevant
GOALS
Responsive user
experience
javas
javas
javascript
javascript jquery
javascript html
javascript html css
javascript
javascript
javascript jquery
javascript html
javascript html css
Maintainable code
Re-usable
components
Separate presentation
and logic
Fast
GOALS
Responsive UX
Maintainable code
Fast
Library support
Google Closure Tools
Closure Library
array asserts async color crypt
cssom date disposable dom ds
editor events format functions fx
gears global graphics history i18n
iter json locale math messaging
module net positioning proto
proto2 pubsub result soy spell
stats storage string structs style
testing text tweak ui userAgent vec
array asserts async color crypt
cssom date disposable dom ds
editor events format functions fx
gears global graphics history i18n
iter json locale math messaging
module net positioning proto
proto2 pubsub result soy spell
stats storage string structs style
testing text tweak ui userAgent vec
Modular and
independent
Application
dom events style
Application
dom events style
arrayobject
Application
dom events style
arrayobject string
Application
dom events style
arrayobject string
Application
dom events style
arrayobject string
Application
dom
events
style
array
object
string
goog.provide('indeed.Search');
goog.require('goog.dom');
goog.require('goog.events');
/* Search */
indeed.Search.validateLocation =
function() {...};
goog.provide('indeed.Search');
goog.require('goog.dom');
goog.require('goog.events');
/* Search */
indeed.Search.validateLocation =
function() {...};
Application
dom events style
arrayobject string
Unit testing
Closure Templates
Closure Compiler
whitespace_only
simple_optimizations
advanced_optimizations
Type checking
Unused code removal
/** Alias for getElementById. If a DOM node is
passed in then we just return */
goog.dom.getElement = function(element) {...};
/** Looks up elements by both tag and class name,
using browser native functions */
goog.dom.getElementsByTagNameAndClass = function(opt_tag,
opt_class, opt_el) {...};
/** Returns an array of all the elements
with the provided className. */
goog.dom.getElementsByClass = function(className,
opt_el) {...};
/** Returns the first element with the provided className. */
goog.dom.getElementByClass = function(className, opt_el) {...};
/** Alias for getElementById. If a DOM node is
passed in then we just return */
goog.dom.getElement = function(element) {...};
/** Looks up elements by both tag and class name,
using browser native functions */
goog.dom.getElementsByTagNameAndClass = function(opt_tag,
opt_class, opt_el) {...};
/** Returns the first element with the provided className. */
goog.dom.getElementByClass = function(className, opt_el) {...};
/** Alias for getElementById. If a DOM node is
passed in then we just return */
goog.dom.getElement = function(element) {...};
/** Looks up elements by both tag and class name,
using browser native functions */
goog.dom.getElementsByTagNameAndClass = function(opt_tag,
opt_class, opt_el) {...};
/** Returns an array of all the elements
with the provided className. */
goog.dom.getElementsByClass = function(className,
opt_el) {...};
/** Returns the first element with the provided className. */
goog.dom.getElementByClass = function(className, opt_el) {...};
/** Alias for getElementById. If a DOM node is
passed in then we just return */
goog.dom.getElement = function(element) {...};
/** Looks up elements by both tag and class name,
using browser native functions */
goog.dom.getElementsByTagNameAndClass = function(opt_tag,
opt_class, opt_el) {...};
/** Returns the first element with the provided className. */
goog.dom.getElementByClass = function(className, opt_el) {...};
/** Alias for getElementById. If a DOM node is
passed in then we just return */
goog.dom.getElement = function(element) {...};
/** Returns an array of all the elements
with the provided className. */
goog.dom.getElementsByClass = function(className,
opt_el) {...};
Aggressive renaming
Let's build Resume
Search
Resume Search
architecture
Browser Server
q=javasc
Browser Server
q=javasc
{
"suggestions" : [
"javascript",
"javascript jquery",
"javascript html",
"javascript html css",
"javascript ajax"
]
}
AutoComplete
AutoComplete
Search
Preview
Autocomplete
Search
Preview
Location
Autocomplete
Search Preview
Query
Autocomplete
A Possible Approach: Tightly Coupled Modules
Use events
{
"suggestions" : [
"javascript",
"javascript jquery",
"javascript html",
"javascript html css",
"javascript ajax"
]
}
Autocomplete
Text Handler
Drop Down
Handler
RPC Handler
Autocomplete
Text Handler
Drop Down
Handler
RPC Handler
Autocomplete
Text Handler
Drop Down
Handler
RPC Handler
1.New
text"javasc"
Autocomplete
Text Handler
Drop Down
Handler
RPC Handler2.Getsuggestions
Autocomplete
Text Handler
Drop Down
Handler
RPC Handler3.Suggestions
Autocomplete
Text Handler
Drop Down
Handler
RPC Handler
4.Render
Autocomplete
Text Handler
Drop Down
Handler
RPC Handler
6.Clickon"javascript"
Autocomplete
Text Handler
Drop Down
Handler
RPC Handler
6.Settextto
"javascript"
Search App
AutoComplete
Text Handler
Drop Down
Handler
Search
RPC Handler
Search App
AutoComplete
Text Handler
Drop Down
Handler
Search
RPC Handler
Awesome
Search App
AutoComplete
Text Handler
Drop Down
Handler
Search
RPC Handler
Search App
AutoComplete
Text Handler
Drop Down
Handler
Search
RPC Handler
Search App
AutoComplete
Text Handler
Drop Down
Handler
Search
RPC Handler
User interface
Templates
Server or client?
indeed.com/resumes?q=java
indeed.com/resumes?q=java
HTML
Time
indeed.com/resumes?q=java
LOAD JSHTML
Time
indeed.com/resumes?q=java
AJAX RESULTSLOAD JSHTML
indeed.com/resumes?q=java
JS REQ JS RESP AJAX REQ AJAX RESPHTML + DATA AJAX RESULTSLOAD JS
Time
indeed.com/resumes?q=java
JS REQ JS RESPHTML + DATA LOAD JS
indeed.com/resumes?q=java
HTML + RESULTS
Time
indeed.com/resumes?q=java
HTML + RESULTS JS REQ JS RESPLOAD JS
indeed.com/resumes?q=java
HTML + RESULTS JS RESPLOAD JS
Server or client?
Server AND client!
Don't repeat yourself
Closure Templates
template.soy
Closure Template
Compilernew TofuRenderer()
template.js
one template. all requests.
/resumes?q=javascript Server Rendering
/resumes?q=javascript Server Rendering
Controller
/resumes?q=javascript
Controller
Model
Server Rendering
/resumes?q=javascript
Controller
Model
new TofuRenderer()
Server Rendering
/resumes?q=javascript
Controller
Model
new TofuRenderer()
HTML
Server Rendering
/instant?q=javascriptClient Rendering
/instant?q=javascript
Controller
Client Rendering
/instant?q=javascript
Controller
Model
Client Rendering
/instant?q=javascript
Controller
Model
JSON
Client Rendering
/instant?q=javascript
Controller
Model
template.js
JSON
Client Rendering
/instant?q=javascript
Controller
Model
template.js
JSON
Client Rendering
HTML
/resumes?q=javascript /instant?q=javascript
Controller
Model
new
TofuRenderer()
HTML
template.js
JSON
Don't repeat yourself
Application
Application
Browser
Library
Browser
Library
Browser
Templates
Library
Browser
Templates Application
HTML LIBRARY TEMPLATES APPLICATION
Time
COMBINED
Time
HTML
COMPILED
Time
HTML
Application size
whitespace_only 126k
whitespace_only 126k
simple_optimizations 108k
whitespace_only 126k
simple_optimizations 108k
49k advanced_optimizations
RESUME SEARCH
Re-usable components
Responsive UX
Fast initial load
[video of http://www.indeed.com/resumes]
We learned from
Resume Search
jobsearch.js
jobsearch.js 41k
jobsearch.js 41k
jobsearch_v2.js 35k
6K MATTERS
6K MATTERS
6k reduction
6K MATTERS
6k reduction
546 GB / month
6K MATTERS
6k reduction
546 GB / month
428 hours / month
david tulig
twitter: @dtulig
indeed.com/resumes
engineering.indeed.com

More Related Content

What's hot

Orchard Harvest 2014 - The Future of Widgets?
Orchard Harvest 2014 - The Future of Widgets?Orchard Harvest 2014 - The Future of Widgets?
Orchard Harvest 2014 - The Future of Widgets?
Steve Taylor
 
Enough with the javas cript already! de Nicholas Zakas
Enough with the javas cript already! de Nicholas ZakasEnough with the javas cript already! de Nicholas Zakas
Enough with the javas cript already! de Nicholas Zakas
Kubide
 
Java Script - A New Look
Java Script - A New LookJava Script - A New Look
Java Script - A New Lookrumsan
 
BrightonSEO 2019 - Edge SEO - Using CDNs To Perform SEO On The Edge
BrightonSEO 2019 - Edge SEO - Using CDNs To Perform SEO On The EdgeBrightonSEO 2019 - Edge SEO - Using CDNs To Perform SEO On The Edge
BrightonSEO 2019 - Edge SEO - Using CDNs To Perform SEO On The Edge
Dan Taylor
 
Ajax Overview by Bally Chohan
Ajax Overview by Bally ChohanAjax Overview by Bally Chohan
Ajax Overview by Bally Chohan
WebVineet
 
The Big Picture and How to Get Started
The Big Picture and How to Get StartedThe Big Picture and How to Get Started
The Big Picture and How to Get Started
guest1af57e
 
Building Your First App with MongoDB
Building Your First App with MongoDBBuilding Your First App with MongoDB
Building Your First App with MongoDB
MongoDB
 
Demystifying Keyword Driven Using Watir
Demystifying Keyword Driven Using WatirDemystifying Keyword Driven Using Watir
Demystifying Keyword Driven Using WatirHirday Lamba
 
Chatbot - The developer's waterboy
Chatbot - The developer's waterboyChatbot - The developer's waterboy
Chatbot - The developer's waterboy
Richard Radics
 
MeasureCamp IX (London) - 10 JavaScript Concepts for web analysts
MeasureCamp IX (London) - 10 JavaScript Concepts for web analystsMeasureCamp IX (London) - 10 JavaScript Concepts for web analysts
MeasureCamp IX (London) - 10 JavaScript Concepts for web analysts
Simo Ahava
 
Play with Angular JS
Play with Angular JSPlay with Angular JS
Play with Angular JS
Knoldus Inc.
 
Rob Tweed :: Ajax and the Impact on Caché and Similar Technologies
Rob Tweed :: Ajax and the Impact on Caché and Similar TechnologiesRob Tweed :: Ajax and the Impact on Caché and Similar Technologies
Rob Tweed :: Ajax and the Impact on Caché and Similar Technologiesgeorge.james
 
Morphing GA into an Affiliate Analytics Monster
Morphing GA into an Affiliate Analytics MonsterMorphing GA into an Affiliate Analytics Monster
Morphing GA into an Affiliate Analytics Monster
Phil Pearce
 
Beginning AngularJS
Beginning AngularJSBeginning AngularJS
Beginning AngularJSTroy Miles
 
TechSEO Boost 2018: Implementing Hreflang on Legacy Tech Stacks Using Service...
TechSEO Boost 2018: Implementing Hreflang on Legacy Tech Stacks Using Service...TechSEO Boost 2018: Implementing Hreflang on Legacy Tech Stacks Using Service...
TechSEO Boost 2018: Implementing Hreflang on Legacy Tech Stacks Using Service...
Catalyst
 
CTS Conference Web 2.0 Tutorial Part 2
CTS Conference Web 2.0 Tutorial Part 2CTS Conference Web 2.0 Tutorial Part 2
CTS Conference Web 2.0 Tutorial Part 2
Geoffrey Fox
 
GraphQL - when REST API is to less - lessons learned
GraphQL - when REST API is to less - lessons learnedGraphQL - when REST API is to less - lessons learned
GraphQL - when REST API is to less - lessons learned
MarcinStachniuk
 
Selenium - The page object pattern
Selenium - The page object patternSelenium - The page object pattern
Selenium - The page object pattern
Michael Palotas
 

What's hot (20)

Orchard Harvest 2014 - The Future of Widgets?
Orchard Harvest 2014 - The Future of Widgets?Orchard Harvest 2014 - The Future of Widgets?
Orchard Harvest 2014 - The Future of Widgets?
 
Enough with the javas cript already! de Nicholas Zakas
Enough with the javas cript already! de Nicholas ZakasEnough with the javas cript already! de Nicholas Zakas
Enough with the javas cript already! de Nicholas Zakas
 
Java Script - A New Look
Java Script - A New LookJava Script - A New Look
Java Script - A New Look
 
BrightonSEO 2019 - Edge SEO - Using CDNs To Perform SEO On The Edge
BrightonSEO 2019 - Edge SEO - Using CDNs To Perform SEO On The EdgeBrightonSEO 2019 - Edge SEO - Using CDNs To Perform SEO On The Edge
BrightonSEO 2019 - Edge SEO - Using CDNs To Perform SEO On The Edge
 
Ajax Overview by Bally Chohan
Ajax Overview by Bally ChohanAjax Overview by Bally Chohan
Ajax Overview by Bally Chohan
 
The Big Picture and How to Get Started
The Big Picture and How to Get StartedThe Big Picture and How to Get Started
The Big Picture and How to Get Started
 
Building Your First App with MongoDB
Building Your First App with MongoDBBuilding Your First App with MongoDB
Building Your First App with MongoDB
 
Demystifying Keyword Driven Using Watir
Demystifying Keyword Driven Using WatirDemystifying Keyword Driven Using Watir
Demystifying Keyword Driven Using Watir
 
Chatbot - The developer's waterboy
Chatbot - The developer's waterboyChatbot - The developer's waterboy
Chatbot - The developer's waterboy
 
สปริงเฟรมเวิร์ค4.1
สปริงเฟรมเวิร์ค4.1สปริงเฟรมเวิร์ค4.1
สปริงเฟรมเวิร์ค4.1
 
MeasureCamp IX (London) - 10 JavaScript Concepts for web analysts
MeasureCamp IX (London) - 10 JavaScript Concepts for web analystsMeasureCamp IX (London) - 10 JavaScript Concepts for web analysts
MeasureCamp IX (London) - 10 JavaScript Concepts for web analysts
 
Play with Angular JS
Play with Angular JSPlay with Angular JS
Play with Angular JS
 
Rob Tweed :: Ajax and the Impact on Caché and Similar Technologies
Rob Tweed :: Ajax and the Impact on Caché and Similar TechnologiesRob Tweed :: Ajax and the Impact on Caché and Similar Technologies
Rob Tweed :: Ajax and the Impact on Caché and Similar Technologies
 
Morphing GA into an Affiliate Analytics Monster
Morphing GA into an Affiliate Analytics MonsterMorphing GA into an Affiliate Analytics Monster
Morphing GA into an Affiliate Analytics Monster
 
Beginning AngularJS
Beginning AngularJSBeginning AngularJS
Beginning AngularJS
 
TechSEO Boost 2018: Implementing Hreflang on Legacy Tech Stacks Using Service...
TechSEO Boost 2018: Implementing Hreflang on Legacy Tech Stacks Using Service...TechSEO Boost 2018: Implementing Hreflang on Legacy Tech Stacks Using Service...
TechSEO Boost 2018: Implementing Hreflang on Legacy Tech Stacks Using Service...
 
CTS Conference Web 2.0 Tutorial Part 2
CTS Conference Web 2.0 Tutorial Part 2CTS Conference Web 2.0 Tutorial Part 2
CTS Conference Web 2.0 Tutorial Part 2
 
GraphQL - when REST API is to less - lessons learned
GraphQL - when REST API is to less - lessons learnedGraphQL - when REST API is to less - lessons learned
GraphQL - when REST API is to less - lessons learned
 
Ajax.ppt
Ajax.pptAjax.ppt
Ajax.ppt
 
Selenium - The page object pattern
Selenium - The page object patternSelenium - The page object pattern
Selenium - The page object pattern
 

Viewers also liked

Finding Your Next Great Hire With Indeed Resume
Finding Your Next Great Hire With Indeed ResumeFinding Your Next Great Hire With Indeed Resume
Finding Your Next Great Hire With Indeed Resume
Indeed
 
indeed Indeed - a presentation for Indeed なう -
indeed Indeed - a presentation for Indeed なう -indeed Indeed - a presentation for Indeed なう -
indeed Indeed - a presentation for Indeed なう -
Toru Ochiai
 
Welcome to Indeed Interactive 2015
Welcome to Indeed Interactive 2015 Welcome to Indeed Interactive 2015
Welcome to Indeed Interactive 2015
Indeed
 
[@IndeedEng] Redundant Array of Inexpensive Datacenters
[@IndeedEng] Redundant Array of Inexpensive Datacenters[@IndeedEng] Redundant Array of Inexpensive Datacenters
[@IndeedEng] Redundant Array of Inexpensive Datacenters
indeedeng
 
Indeed vs. AngelList - User Engagement Teardown
Indeed vs. AngelList - User Engagement TeardownIndeed vs. AngelList - User Engagement Teardown
Indeed vs. AngelList - User Engagement Teardown
Iterable
 
Resume Search Optimization
Resume Search OptimizationResume Search Optimization
Resume Search Optimization
HPI, LLC
 
Inform, Delight and Engage with Talent on Company Pages
Inform, Delight and Engage with Talent on Company PagesInform, Delight and Engage with Talent on Company Pages
Inform, Delight and Engage with Talent on Company Pages
Indeed
 
Employer Brand vs. Recruitment Marketing: Why the Difference Matters
Employer Brand vs. Recruitment Marketing: Why the Difference MattersEmployer Brand vs. Recruitment Marketing: Why the Difference Matters
Employer Brand vs. Recruitment Marketing: Why the Difference Matters
Indeed
 
Linda J. Marshall Resume 2016
Linda J. Marshall Resume 2016Linda J. Marshall Resume 2016
Linda J. Marshall Resume 2016Linda Marshall
 
smAlbany 2013 power resume_search presentation times union monster
smAlbany 2013 power resume_search presentation  times union monstersmAlbany 2013 power resume_search presentation  times union monster
smAlbany 2013 power resume_search presentation times union monster
Liberteks
 
2013 deel8-rotterdam-informatie
2013 deel8-rotterdam-informatie2013 deel8-rotterdam-informatie
2013 deel8-rotterdam-informatieChris Noordam
 
Commendation Letter
Commendation LetterCommendation Letter
Commendation LetterJunwei Li
 
How to Define, Measure and Ensure Workplace Happiness
How to Define, Measure and Ensure Workplace HappinessHow to Define, Measure and Ensure Workplace Happiness
How to Define, Measure and Ensure Workplace Happiness
Indeed
 
Job Search Gone Mobile
Job Search Gone MobileJob Search Gone Mobile
Job Search Gone Mobile
Argyle Executive Forum
 
The Science of Talent Attraction: Understanding What Makes People Click
The Science of Talent Attraction: Understanding What Makes People Click The Science of Talent Attraction: Understanding What Makes People Click
The Science of Talent Attraction: Understanding What Makes People Click
Indeed
 
Hiring Practices That Build Powerfully Diverse Teams
Hiring Practices That Build Powerfully Diverse TeamsHiring Practices That Build Powerfully Diverse Teams
Hiring Practices That Build Powerfully Diverse Teams
Indeed
 
Creating Top-Notch Job Content
Creating Top-Notch Job ContentCreating Top-Notch Job Content
Creating Top-Notch Job Content
Indeed
 
Experts Weigh In: Data Discoveries That Changed Our Businesses
Experts Weigh In: Data Discoveries That Changed Our BusinessesExperts Weigh In: Data Discoveries That Changed Our Businesses
Experts Weigh In: Data Discoveries That Changed Our Businesses
Indeed
 
Job Seekers & SWOT Analysis
Job Seekers & SWOT AnalysisJob Seekers & SWOT Analysis
Job Seekers & SWOT Analysis
Nancy Robin Gillman
 

Viewers also liked (20)

Finding Your Next Great Hire With Indeed Resume
Finding Your Next Great Hire With Indeed ResumeFinding Your Next Great Hire With Indeed Resume
Finding Your Next Great Hire With Indeed Resume
 
indeed Indeed - a presentation for Indeed なう -
indeed Indeed - a presentation for Indeed なう -indeed Indeed - a presentation for Indeed なう -
indeed Indeed - a presentation for Indeed なう -
 
Welcome to Indeed Interactive 2015
Welcome to Indeed Interactive 2015 Welcome to Indeed Interactive 2015
Welcome to Indeed Interactive 2015
 
[@IndeedEng] Redundant Array of Inexpensive Datacenters
[@IndeedEng] Redundant Array of Inexpensive Datacenters[@IndeedEng] Redundant Array of Inexpensive Datacenters
[@IndeedEng] Redundant Array of Inexpensive Datacenters
 
Indeed vs. AngelList - User Engagement Teardown
Indeed vs. AngelList - User Engagement TeardownIndeed vs. AngelList - User Engagement Teardown
Indeed vs. AngelList - User Engagement Teardown
 
Resume Search Optimization
Resume Search OptimizationResume Search Optimization
Resume Search Optimization
 
Inform, Delight and Engage with Talent on Company Pages
Inform, Delight and Engage with Talent on Company PagesInform, Delight and Engage with Talent on Company Pages
Inform, Delight and Engage with Talent on Company Pages
 
Employer Brand vs. Recruitment Marketing: Why the Difference Matters
Employer Brand vs. Recruitment Marketing: Why the Difference MattersEmployer Brand vs. Recruitment Marketing: Why the Difference Matters
Employer Brand vs. Recruitment Marketing: Why the Difference Matters
 
Linda J. Marshall Resume 2016
Linda J. Marshall Resume 2016Linda J. Marshall Resume 2016
Linda J. Marshall Resume 2016
 
smAlbany 2013 power resume_search presentation times union monster
smAlbany 2013 power resume_search presentation  times union monstersmAlbany 2013 power resume_search presentation  times union monster
smAlbany 2013 power resume_search presentation times union monster
 
2013 deel8-rotterdam-informatie
2013 deel8-rotterdam-informatie2013 deel8-rotterdam-informatie
2013 deel8-rotterdam-informatie
 
Commendation Letter
Commendation LetterCommendation Letter
Commendation Letter
 
How to Define, Measure and Ensure Workplace Happiness
How to Define, Measure and Ensure Workplace HappinessHow to Define, Measure and Ensure Workplace Happiness
How to Define, Measure and Ensure Workplace Happiness
 
Job Search Gone Mobile
Job Search Gone MobileJob Search Gone Mobile
Job Search Gone Mobile
 
The Science of Talent Attraction: Understanding What Makes People Click
The Science of Talent Attraction: Understanding What Makes People Click The Science of Talent Attraction: Understanding What Makes People Click
The Science of Talent Attraction: Understanding What Makes People Click
 
Hiring Practices That Build Powerfully Diverse Teams
Hiring Practices That Build Powerfully Diverse TeamsHiring Practices That Build Powerfully Diverse Teams
Hiring Practices That Build Powerfully Diverse Teams
 
Creating Top-Notch Job Content
Creating Top-Notch Job ContentCreating Top-Notch Job Content
Creating Top-Notch Job Content
 
Experts Weigh In: Data Discoveries That Changed Our Businesses
Experts Weigh In: Data Discoveries That Changed Our BusinessesExperts Weigh In: Data Discoveries That Changed Our Businesses
Experts Weigh In: Data Discoveries That Changed Our Businesses
 
test
testtest
test
 
Job Seekers & SWOT Analysis
Job Seekers & SWOT AnalysisJob Seekers & SWOT Analysis
Job Seekers & SWOT Analysis
 

Similar to [@IndeedEng] Building Indeed Resume Search

Тарас Олексин - Sculpt! Your! Tests!
Тарас Олексин  - Sculpt! Your! Tests!Тарас Олексин  - Sculpt! Your! Tests!
Тарас Олексин - Sculpt! Your! Tests!
DataArt
 
J Query The Write Less Do More Javascript Library
J Query   The Write Less Do More Javascript LibraryJ Query   The Write Less Do More Javascript Library
J Query The Write Less Do More Javascript Libraryrsnarayanan
 
Agile NCR 2013 - Gaurav Bansal- web_automation
Agile NCR 2013 - Gaurav Bansal- web_automationAgile NCR 2013 - Gaurav Bansal- web_automation
Agile NCR 2013 - Gaurav Bansal- web_automationAgileNCR2013
 
Testing in AngularJS
Testing in AngularJSTesting in AngularJS
Testing in AngularJS
Peter Drinnan
 
Laurens Van Den Oever Xopus Presentation
Laurens Van Den Oever Xopus PresentationLaurens Van Den Oever Xopus Presentation
Laurens Van Den Oever Xopus PresentationAjax Experience 2009
 
Wt unit 5
Wt unit 5Wt unit 5
Wt unit 5
team11vgnt
 
J Query(04 12 2008) Foiaz
J Query(04 12 2008) FoiazJ Query(04 12 2008) Foiaz
J Query(04 12 2008) Foiaztestingphase
 
J query b_dotnet_ug_meet_12_may_2012
J query b_dotnet_ug_meet_12_may_2012J query b_dotnet_ug_meet_12_may_2012
J query b_dotnet_ug_meet_12_may_2012
ghnash
 
前端概述
前端概述前端概述
前端概述
Ethan Zhang
 
jQuery
jQueryjQuery
jQuery
Vishwa Mohan
 
Agile web development Groovy Grails with Netbeans
Agile web development Groovy Grails with NetbeansAgile web development Groovy Grails with Netbeans
Agile web development Groovy Grails with NetbeansCarol McDonald
 
jQuery and Rails: Best Friends Forever
jQuery and Rails: Best Friends ForeverjQuery and Rails: Best Friends Forever
jQuery and Rails: Best Friends Forever
stephskardal
 
Introduction to Polymer and Firebase - Simon Gauvin
Introduction to Polymer and Firebase - Simon GauvinIntroduction to Polymer and Firebase - Simon Gauvin
Introduction to Polymer and Firebase - Simon Gauvin
Simon Gauvin
 
Javascript unit testing, yes we can e big
Javascript unit testing, yes we can   e bigJavascript unit testing, yes we can   e big
Javascript unit testing, yes we can e bigAndy Peterson
 
JavaOne 2008 - TS-5793 - Groovy and Grails, changing the landscape of Java EE...
JavaOne 2008 - TS-5793 - Groovy and Grails, changing the landscape of Java EE...JavaOne 2008 - TS-5793 - Groovy and Grails, changing the landscape of Java EE...
JavaOne 2008 - TS-5793 - Groovy and Grails, changing the landscape of Java EE...Guillaume Laforge
 
Prototype Js
Prototype JsPrototype Js
Prototype Js
Kivanc Kanturk
 
Jquery tutorial
Jquery tutorialJquery tutorial
Jquery tutorial
Bui Kiet
 

Similar to [@IndeedEng] Building Indeed Resume Search (20)

Тарас Олексин - Sculpt! Your! Tests!
Тарас Олексин  - Sculpt! Your! Tests!Тарас Олексин  - Sculpt! Your! Tests!
Тарас Олексин - Sculpt! Your! Tests!
 
Java scriptforjavadev part2a
Java scriptforjavadev part2aJava scriptforjavadev part2a
Java scriptforjavadev part2a
 
J Query The Write Less Do More Javascript Library
J Query   The Write Less Do More Javascript LibraryJ Query   The Write Less Do More Javascript Library
J Query The Write Less Do More Javascript Library
 
Javascript Design Patterns
Javascript Design PatternsJavascript Design Patterns
Javascript Design Patterns
 
Agile NCR 2013 - Gaurav Bansal- web_automation
Agile NCR 2013 - Gaurav Bansal- web_automationAgile NCR 2013 - Gaurav Bansal- web_automation
Agile NCR 2013 - Gaurav Bansal- web_automation
 
Testing in AngularJS
Testing in AngularJSTesting in AngularJS
Testing in AngularJS
 
Laurens Van Den Oever Xopus Presentation
Laurens Van Den Oever Xopus PresentationLaurens Van Den Oever Xopus Presentation
Laurens Van Den Oever Xopus Presentation
 
Wt unit 5
Wt unit 5Wt unit 5
Wt unit 5
 
J Query(04 12 2008) Foiaz
J Query(04 12 2008) FoiazJ Query(04 12 2008) Foiaz
J Query(04 12 2008) Foiaz
 
J query b_dotnet_ug_meet_12_may_2012
J query b_dotnet_ug_meet_12_may_2012J query b_dotnet_ug_meet_12_may_2012
J query b_dotnet_ug_meet_12_may_2012
 
前端概述
前端概述前端概述
前端概述
 
jQuery
jQueryjQuery
jQuery
 
Agile web development Groovy Grails with Netbeans
Agile web development Groovy Grails with NetbeansAgile web development Groovy Grails with Netbeans
Agile web development Groovy Grails with Netbeans
 
ReactJS.ppt
ReactJS.pptReactJS.ppt
ReactJS.ppt
 
jQuery and Rails: Best Friends Forever
jQuery and Rails: Best Friends ForeverjQuery and Rails: Best Friends Forever
jQuery and Rails: Best Friends Forever
 
Introduction to Polymer and Firebase - Simon Gauvin
Introduction to Polymer and Firebase - Simon GauvinIntroduction to Polymer and Firebase - Simon Gauvin
Introduction to Polymer and Firebase - Simon Gauvin
 
Javascript unit testing, yes we can e big
Javascript unit testing, yes we can   e bigJavascript unit testing, yes we can   e big
Javascript unit testing, yes we can e big
 
JavaOne 2008 - TS-5793 - Groovy and Grails, changing the landscape of Java EE...
JavaOne 2008 - TS-5793 - Groovy and Grails, changing the landscape of Java EE...JavaOne 2008 - TS-5793 - Groovy and Grails, changing the landscape of Java EE...
JavaOne 2008 - TS-5793 - Groovy and Grails, changing the landscape of Java EE...
 
Prototype Js
Prototype JsPrototype Js
Prototype Js
 
Jquery tutorial
Jquery tutorialJquery tutorial
Jquery tutorial
 

More from indeedeng

Weapons of Math Instruction: Evolving from Data0-Driven to Science-Driven
Weapons of Math Instruction: Evolving from Data0-Driven to Science-DrivenWeapons of Math Instruction: Evolving from Data0-Driven to Science-Driven
Weapons of Math Instruction: Evolving from Data0-Driven to Science-Driven
indeedeng
 
Alchemy and Science: Choosing Metrics That Work
Alchemy and Science: Choosing Metrics That WorkAlchemy and Science: Choosing Metrics That Work
Alchemy and Science: Choosing Metrics That Work
indeedeng
 
Indeed Engineering and The Lead Developer Present: Tech Leadership and Manage...
Indeed Engineering and The Lead Developer Present: Tech Leadership and Manage...Indeed Engineering and The Lead Developer Present: Tech Leadership and Manage...
Indeed Engineering and The Lead Developer Present: Tech Leadership and Manage...
indeedeng
 
Indeed Engineering and The Lead Developer Present: Tech Leadership and Manage...
Indeed Engineering and The Lead Developer Present: Tech Leadership and Manage...Indeed Engineering and The Lead Developer Present: Tech Leadership and Manage...
Indeed Engineering and The Lead Developer Present: Tech Leadership and Manage...
indeedeng
 
Improving the development process with metrics driven insights presentation
Improving the development process with metrics driven insights presentationImproving the development process with metrics driven insights presentation
Improving the development process with metrics driven insights presentation
indeedeng
 
Data-Driven off a Cliff: Anti-Patterns in Evidence-Based Decision Making
Data-Driven off a Cliff: Anti-Patterns in Evidence-Based Decision MakingData-Driven off a Cliff: Anti-Patterns in Evidence-Based Decision Making
Data-Driven off a Cliff: Anti-Patterns in Evidence-Based Decision Making
indeedeng
 
@Indeedeng: RAD - How We Replicate Terabytes of Data Around the World Every Day
@Indeedeng: RAD - How We Replicate Terabytes of Data Around the World Every Day@Indeedeng: RAD - How We Replicate Terabytes of Data Around the World Every Day
@Indeedeng: RAD - How We Replicate Terabytes of Data Around the World Every Day
indeedeng
 
Indeed My Jobs: A case study in ReactJS and Redux (Meetup talk March 2016)
Indeed My Jobs: A case study in ReactJS and Redux (Meetup talk March 2016)Indeed My Jobs: A case study in ReactJS and Redux (Meetup talk March 2016)
Indeed My Jobs: A case study in ReactJS and Redux (Meetup talk March 2016)
indeedeng
 
Data Day Texas - Recommendations
Data Day Texas - RecommendationsData Day Texas - Recommendations
Data Day Texas - Recommendations
indeedeng
 
Vectorized VByte Decoding
Vectorized VByte DecodingVectorized VByte Decoding
Vectorized VByte Decoding
indeedeng
 
[@IndeedEng] Imhotep Workshop
[@IndeedEng] Imhotep Workshop[@IndeedEng] Imhotep Workshop
[@IndeedEng] Imhotep Workshop
indeedeng
 
[@IndeedEng] Boxcar: A self-balancing distributed services protocol
[@IndeedEng] Boxcar: A self-balancing distributed services protocol [@IndeedEng] Boxcar: A self-balancing distributed services protocol
[@IndeedEng] Boxcar: A self-balancing distributed services protocol
indeedeng
 
[@IndeedEng] Managing Experiments and Behavior Dynamically with Proctor
[@IndeedEng] Managing Experiments and Behavior Dynamically with Proctor[@IndeedEng] Managing Experiments and Behavior Dynamically with Proctor
[@IndeedEng] Managing Experiments and Behavior Dynamically with Proctor
indeedeng
 
[@IndeedEng] From 1 To 1 Billion: Evolution of Indeed's Document Serving System
[@IndeedEng] From 1 To 1 Billion: Evolution of Indeed's Document Serving System[@IndeedEng] From 1 To 1 Billion: Evolution of Indeed's Document Serving System
[@IndeedEng] From 1 To 1 Billion: Evolution of Indeed's Document Serving System
indeedeng
 

More from indeedeng (14)

Weapons of Math Instruction: Evolving from Data0-Driven to Science-Driven
Weapons of Math Instruction: Evolving from Data0-Driven to Science-DrivenWeapons of Math Instruction: Evolving from Data0-Driven to Science-Driven
Weapons of Math Instruction: Evolving from Data0-Driven to Science-Driven
 
Alchemy and Science: Choosing Metrics That Work
Alchemy and Science: Choosing Metrics That WorkAlchemy and Science: Choosing Metrics That Work
Alchemy and Science: Choosing Metrics That Work
 
Indeed Engineering and The Lead Developer Present: Tech Leadership and Manage...
Indeed Engineering and The Lead Developer Present: Tech Leadership and Manage...Indeed Engineering and The Lead Developer Present: Tech Leadership and Manage...
Indeed Engineering and The Lead Developer Present: Tech Leadership and Manage...
 
Indeed Engineering and The Lead Developer Present: Tech Leadership and Manage...
Indeed Engineering and The Lead Developer Present: Tech Leadership and Manage...Indeed Engineering and The Lead Developer Present: Tech Leadership and Manage...
Indeed Engineering and The Lead Developer Present: Tech Leadership and Manage...
 
Improving the development process with metrics driven insights presentation
Improving the development process with metrics driven insights presentationImproving the development process with metrics driven insights presentation
Improving the development process with metrics driven insights presentation
 
Data-Driven off a Cliff: Anti-Patterns in Evidence-Based Decision Making
Data-Driven off a Cliff: Anti-Patterns in Evidence-Based Decision MakingData-Driven off a Cliff: Anti-Patterns in Evidence-Based Decision Making
Data-Driven off a Cliff: Anti-Patterns in Evidence-Based Decision Making
 
@Indeedeng: RAD - How We Replicate Terabytes of Data Around the World Every Day
@Indeedeng: RAD - How We Replicate Terabytes of Data Around the World Every Day@Indeedeng: RAD - How We Replicate Terabytes of Data Around the World Every Day
@Indeedeng: RAD - How We Replicate Terabytes of Data Around the World Every Day
 
Indeed My Jobs: A case study in ReactJS and Redux (Meetup talk March 2016)
Indeed My Jobs: A case study in ReactJS and Redux (Meetup talk March 2016)Indeed My Jobs: A case study in ReactJS and Redux (Meetup talk March 2016)
Indeed My Jobs: A case study in ReactJS and Redux (Meetup talk March 2016)
 
Data Day Texas - Recommendations
Data Day Texas - RecommendationsData Day Texas - Recommendations
Data Day Texas - Recommendations
 
Vectorized VByte Decoding
Vectorized VByte DecodingVectorized VByte Decoding
Vectorized VByte Decoding
 
[@IndeedEng] Imhotep Workshop
[@IndeedEng] Imhotep Workshop[@IndeedEng] Imhotep Workshop
[@IndeedEng] Imhotep Workshop
 
[@IndeedEng] Boxcar: A self-balancing distributed services protocol
[@IndeedEng] Boxcar: A self-balancing distributed services protocol [@IndeedEng] Boxcar: A self-balancing distributed services protocol
[@IndeedEng] Boxcar: A self-balancing distributed services protocol
 
[@IndeedEng] Managing Experiments and Behavior Dynamically with Proctor
[@IndeedEng] Managing Experiments and Behavior Dynamically with Proctor[@IndeedEng] Managing Experiments and Behavior Dynamically with Proctor
[@IndeedEng] Managing Experiments and Behavior Dynamically with Proctor
 
[@IndeedEng] From 1 To 1 Billion: Evolution of Indeed's Document Serving System
[@IndeedEng] From 1 To 1 Billion: Evolution of Indeed's Document Serving System[@IndeedEng] From 1 To 1 Billion: Evolution of Indeed's Document Serving System
[@IndeedEng] From 1 To 1 Billion: Evolution of Indeed's Document Serving System
 

Recently uploaded

FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 

Recently uploaded (20)

FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 

[@IndeedEng] Building Indeed Resume Search