SlideShare a Scribd company logo
1 of 146
Download to read offline
How to Get a Job 35 Million Times a Day
Using RabbitMQ
Ketan Gangatirkar and Cameron Davison
One search. All jobs.
Aggregation gets jobs
Aggregation gets jobs so
Jobseekers get jobs
Aggregation != Spidering
Spiders see pages.
Aggregation sees jobs.
How spiders see job sites
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
How Indeed sees job sites
Start
Job List
Job Job Job
Job List
Job Job Job
Job List
Job Job Job
Navigation Navigation
Job
Job
Job
Aggregation != Spidering
Job sites have structure
Job pages have semantics
Navigation is more than following links
Remember
this
Agg
every
job
{
Url: http://www.applytracking.com/track.aspx/3VYzR
Title: Senior Erlang Engineer
Company: Machine Zone
Location: Palo Alto,CA,US, 94301
Source Type: Employer
Job Type: Full-time
...
Description: The Senior Erlang Engineer is an integral ...
...
Createdate: 2013-02-05 23:18:05
...
}
What's in a job
location
description
Company
Title
Title
salary
location
job type
description
Company
How we build products
simple
fast
comprehensive
relevant
Simple
Tough problems, simple solutions
Fast
Discover the jobs quickly
Get them to jobseekers in minutes
10% of jobseekers sort by date
Do you want only new jobs?
20% of jobseekers want only new jobs
Daily new job emails
Speed matters
Comprehensive
Get every job
Relevant
Semantic extraction
The job is still available
Ignore non-jobs
This is a hard problem
Flaky sites
Site redesigns
Javascript
Missing or bad information
Big N makes it even harder
Examine 38M jobs every day
Do this in minutes
Search
100M
Jobseekers
Aggregation
Employers
Job Boards
Staffing firms
Recruiters
Strawman* architecture
Datacenter B
MySQL
Engine
Datacenter A
Job site
Engine
Job site
Engine
Job site
Engine
Job site
Engine
Job site
Engine
Job site
Primary
Datacenter
Limitations
N connections
MySQL
Job siteJob siteJob siteJob siteJob siteJob site
Primary
Datacenter
EngineEngineEngineEngineEngineEngine
Datacenter BDatacenter A
N concurrent writers
MySQL
Job siteJob siteJob siteJob siteJob siteJob site
Primary
Datacenter
EngineEngineEngineEngineEngineEngine
Datacenter BDatacenter A
High latency
MySQL
Job siteJob siteJob siteJob siteJob siteJob site
Primary
Datacenter
EngineEngineEngineEngineEngineEngine
Datacenter BDatacenter A
Limitation: failure points
Datacenter B
MySQL
Engine
Datacenter A
Job site
Engine
Job site
Engine
Job site
Engine
Job site
Engine
Job site
Engine
Job site
Primary
Datacenter
X
X
Scaling Patterns
What has worked for us so far?
Service-Oriented Architecture
Engine
Engine
Engine
Job Write
Service MySQL
Remote
Datacenter
Primary
Datacenter
see http://go.indeed.com/boxcar
Standard Service Interaction
Client Service Database
Our Interaction
Client Service Database
Does this do what we need?
● Lots of workers...
● Sending lots of results...
● Over a long distance...
● That need to get processed fast...
● Reliably?
Engine Failure
Engine
Engine
Engine
Job Write
Service MySQL
Remote
Datacenter
X
Primary
Datacenter
Engine failure fix:
Buffer to disk
Engine
Engine
Engine
Job Write
Service MySQL
Remote
Datacenter
disk
disk
disk
Primary
Datacenter
X
Network Failure
Engine
Engine
Engine
Job Write
Service MySQL
Remote
Datacenter
X
Primary
Datacenter
Network failure fix:
Disks solve that too
Engine
Engine
Engine
Job Write
Service MySQL
Remote
Datacenter
disk
disk
disk
X
Primary
Datacenter
Write Service Failure
Job Write
Service MySQL
Remote
Datacenter
X
Engine
Engine
Engine
Primary
Datacenter
Write Service Failure fix:
Disks solve that too
Job Write
Service MySQL
Remote
Datacenter
X
Engine
Engine
Engine
Primary
Datacenter
disk
disk
disk
Write Service Failure fix:
Redundancy
Job Write
Service
MySQL
Remote
Datacenter
Primary
Datacenter
X
Engine
Engine
Engine
Job Write
Service
Job Write
Service
Database Failure
Job Write
Service MySQL
Remote
Datacenter
X
Engine
Engine
Engine
Primary
Datacenter
Database Failure fix:
Buffer to disk
Job Write
Service
MySQL
Remote
Datacenter
X
Engine
Engine
Engine
disk
Primary
Datacenter
Our new architecture
Job Write
Service
MySQL
Remote
Datacenter
Primary
Datacenter
Engine
Engine
Engine
disk
disk
disk
Job Write
Service
Job Write
Service
disk
disk
disk
We could build this...
Job Write
Service
MySQL
Remote
Datacenter
Primary
Datacenter
Engine
Engine
Engine
disk
disk
disk
Job Write
Service
Job Write
Service
disk
disk
disk
... maybe someone already has
Job Write
Service
MySQL
Remote
Datacenter
Primary
Datacenter
Engine
Engine
Engine
disk
disk
disk
Job Write
Service
Job Write
Service
disk
disk
disk
We should use a message queue
Cameron Davison
Aggregation Requirements
● Durable
● Multi-Data Center (latency)
● 38 million jobs a day
● 2KB average job size
○ 76 GB a day
● Target peaks of 1000 jobs / second
● Programming language agnostic
Selection
What we found
High Availability
Open Source/Free
Self-hosted
Performant
Out-of-the-box Experience
Advanced Message Queuing
Protocol (AMQP)
● Open Standard
● Wire protocol
● Existing Clients in Multiple Languages
Concepts
● Confirmation and Ack
● At least once
● Asynchronous Confirms
● Persistent
● Clustering
Confirmation and Ack
MQ
Producer Consumer
m
sg
confirm
ack
m
sg
1
2 3
4
At least once
MQ
At most once
Consumer
Message
Ack
MQ
Consumer
Message
Auto Ack
Asynchronous Confirms
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Producer
m
essages
confirm #6
Persistent
MQ
Producer Consumer
Persistent
MQ
Producer Consumer
Persistent
MQ
Producer Consumer
X
Persistent
MQ
Producer Consumer
Persistent
MQ
Producer Consumer
Clustering
SlaveMaster
Producer
1
2
3
4
Testing
Test RabbitMQ
● Send millions of 2KB messages
● 20 producers and 20 consumers
● 1000 messages / second
● Simulate multiple failures
Test Consistency
Producers
Rabbit
MQ
Rabbit
MQ
Consumers
Slave
Master
Test Consistency
Producers
Rabbit
MQ
Rabbit
MQ
Consumers
Master
Slave
Test Consistency
Producers
Rabbit
MQ
Rabbit
MQ
Consumers
Master
Slave
Test Consistency
Producers
Rabbit
MQ
Rabbit
MQ
Consumers
X
Master
Test Consistency
Producers
Rabbit
MQ
Rabbit
MQ
Consumers
X
Master
Test Consistency
Producers
Rabbit
MQ
Rabbit
MQ
Consumers
Master
Slave
RabbitMQ Clustering
Master Slave
RabbitMQ Clustering
Master Slave
RabbitMQ Clustering
Master
X
RabbitMQ Clustering
Master
X
RabbitMQ Clustering
MasterSlave
RabbitMQ Clustering
MasterSlave
RabbitMQ Clustering
MasterSlave
RabbitMQ Clustering
MasterSlave
RabbitMQ Clustering
MasterSlave
RabbitMQ Clustering
MasterSlave
RabbitMQ Clustering
Master
X
RabbitMQ Clustering
MasterSlave
RabbitMQ Clustering
MasterSlave
RabbitMQ Clustering
MasterSlave
RabbitMQ Clustering
Master
X
RabbitMQ Clustering
Master
XX
RabbitMQ Clustering
Master
X
RabbitMQ Clustering
Master
X
RabbitMQ Clustering
Master Slave
Non-persistent
15990 Messages / Second
30 MB/s
Persistent
2781 Message / Second
5.5 MB/s
Clustered and Persistent
1262 Message / Second
2.5 MB/s
Applying RabbitMQ
Unreliable High Latency
Connections
Engine
Engine
Engine
Job Write
Service
Remote DC Primary DC
MySQL
Replaced with RabbitMQ
Engine
Engine
Engine
Job Write
Service
Rabbit
MQ
Remote DC Primary DC
MySQL
Replaced with RabbitMQ
Engine
Engine
Engine
Job Write
Service
Rabbit
MQ
Remote DC Primary DC
Replaced with RabbitMQ
Engine
Engine
Engine
Job Write
Service
Rabbit
MQ
Remote DC Primary DC
Replaced with RabbitMQ
Engine
Engine
Engine
Job Write
Service
Remote DC Primary DC
Rabbit
MQ
Replaced with RabbitMQ
Engine
Engine
Engine
Job Write
Service
Remote DC Primary DC
Rabbit
MQ
Rabbit can talk to Rabbit
Shovel Plugin
Producer RabbitMQ 1 ConsumerRabbitMQ 2
Replaced with RabbitMQ
Engine
Engine
Engine
Job Write
Service
Rabbit
MQ
Rabbit
MQ
Rabbit
MQ
Rabbit
MQ
Remote DC Primary DC
Replaced with RabbitMQ
Engine
Engine
Engine
Job Write
Service
Rabbit
MQ
Rabbit
MQ
Rabbit
MQ
Rabbit
MQ
Primary DC
Rabbit
MQ
Remote DC
Parallelize
Job Write Service
RabbitMQ
Job Write
Service
Job Write
Service
Job Write
Service
Job A
Job B
Job C
Replaced with RabbitMQ
Engine
Engine
Engine
Job Write
Service
Rabbit
MQ
Rabbit
MQ
Rabbit
MQ
Rabbit
MQ
Primary DC
Rabbit
MQ
Job Write
Service
Remote DC
Replaced with RabbitMQ
Engine
Engine
Engine
Job Write
Service
Rabbit
MQ
Rabbit
MQ
Rabbit
MQ
Rabbit
MQ
Primary DC
Rabbit
MQ
Job Write
Service
Message Flow
Message Flow
Engine
Engine
Engine
Job Write
Service
Primary DC
Job Write
Service
Rabbit
MQ
Rabbit
MQ
Rabbit
MQ
Rabbit
MQ
Rabbit
MQ
Message Flow
Engine
Engine
Engine
Job Write
Service
Primary DC
Job Write
Service
Rabbit
MQ
Rabbit
MQ
Rabbit
MQ
Rabbit
MQ
Rabbit
MQ
Message Flow
Engine
Engine
Engine
Job Write
Service
Primary DC
Job Write
Service
Rabbit
MQ
Rabbit
MQ
Rabbit
MQ
Rabbit
MQ
Rabbit
MQ
Message Flow
Engine
Engine
Engine
Job Write
Service
Primary DC
Job Write
Service
Rabbit
MQ
Rabbit
MQ
Rabbit
MQ
Rabbit
MQ
Rabbit
MQ
Jobs/minute
Jobs/minute from one site
220,000 jobs
6 hours
611 jobs / minute
Jobs/minute from one site
251,000 jobs
20 minutes
12550 jobs / minute
Rabbit
MQ
Horizontal Scale
Engine
Engine
Engine Job Write
ServiceRabbit
MQ
Job Write
Service
Rabbit
MQ
Rabbit
MQ
Rabbit
MQ
Rabbit
MQ
Rabbit
MQ
Job Write
Service
Job Write
Service
Horizontal Scale
Horizontal Scale
Today 1000 messages / second
RabbitMQ 3
2486 Message / Second
5MB/s
RabbitMQ Configuration
● Confirmations - Fire and Forget
● Persistent Messages - Durable
● Shoveling - Multi-Data Center
● Mirrored Queues in Cluster - High Reliability
Can we do more with RabbitMQ?
Aggregation Viewer
Real-time browser-based view of job stream
● Almost real-time
● Exclusive queue
● Transient messages
Aggregation Viewer Architecture
Agg Jobs
Rabbit MQ
Cluster
Agg Viewer
Rabbit MQ
Agg
Viewer
Shovel* SubscribeJobs HTTP Browser
Resume Contacts Billing
Pay-per-contact: limited budget
Resume Contacts Billing
Original Path
P
a
c
i
f
i
c
Asia DC US DC
Log repoResume Search
MySQL
see http://go.indeed.com/logrepo
Resume Contacts Billing
Fast Path
P
a
c
i
f
i
c
Asia DC US DC
Rabbit
MQ
MySQL
Log repo
Rabbit
MQ
Resume Search
X
Company Page Edits
User-contributed content about companies
Company Page
Company Page Edits
Implementation
Writing data AND reading it back
Company Page Edits
Single Datacenter
Browser
Web Server
MySQL
Company Page Serving
Browser
Web Server
LSM Tree
Asia Datacenter
Memcached
see http://go.indeed.com/lsmtree
P
a
c
i
f
i
c
Company Page Edits
Browser
Web Server
RabbitMQ RabbitMQ MySQL
Primary US
Datacenter
Asia Datacenter EU Datacenter
A
t
l
a
n
t
i
c
[Et cetera]
Memcached
P
a
c
i
f
i
c
Company Page Reads
MySQL
LSM Tree
Builder
LSM Tree
Primary US
Datacenter
Asia Datacenter
LSM Tree
EU Datacenter
A
t
l
a
n
t
i
c
[Et cetera]
Memcached
P
a
c
i
f
i
c
Company Pages System
Browser
Web Server
RabbitMQ RabbitMQ MySQL
LSM Tree
Builder
LSM Tree
Primary US
Datacenter
Asia Datacenter
LSM Tree
EU Datacenter
A
t
l
a
n
t
i
c
[Et cetera]
Other applications
Company Pages
Recap: The jobs must flow
● Durability
● High throughput
● Low latency
● Partition-tolerance
● Efficient use of the database
● Minimal points of failure

More Related Content

Viewers also liked

Architecture | The Future of Messaging: RabbitMQ and AMQP | Eberhard Wolff
Architecture | The Future of Messaging: RabbitMQ and AMQP | Eberhard WolffArchitecture | The Future of Messaging: RabbitMQ and AMQP | Eberhard Wolff
Architecture | The Future of Messaging: RabbitMQ and AMQP | Eberhard WolffJAX London
 
[@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 Proctorindeedeng
 
Trends in Student Perspectives: Key Insights to Understanding Gen X&Y
Trends in Student Perspectives: Key Insights to Understanding Gen X&YTrends in Student Perspectives: Key Insights to Understanding Gen X&Y
Trends in Student Perspectives: Key Insights to Understanding Gen X&YGil Rogers
 
Performance Testing ISV Apps to Scale
Performance Testing ISV Apps to ScalePerformance Testing ISV Apps to Scale
Performance Testing ISV Apps to ScaleSalesforce Partners
 
Your 2017 Student Marketing Roadmap
Your 2017 Student Marketing RoadmapYour 2017 Student Marketing Roadmap
Your 2017 Student Marketing RoadmapGil Rogers
 
Dissecting the rabbit: RabbitMQ Internal Architecture
Dissecting the rabbit: RabbitMQ Internal ArchitectureDissecting the rabbit: RabbitMQ Internal Architecture
Dissecting the rabbit: RabbitMQ Internal ArchitectureAlvaro Videla
 
[@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...indeedeng
 
Taste Rabbitmq
Taste RabbitmqTaste Rabbitmq
Taste Rabbitmqjeff kit
 
新浪微博开放平台Redis实战
新浪微博开放平台Redis实战新浪微博开放平台Redis实战
新浪微博开放平台Redis实战mysqlops
 
高性能No sql数据库redis
高性能No sql数据库redis高性能No sql数据库redis
高性能No sql数据库redispaitoubing
 
Retargeting Your Best Match: New Methods for Reaching Students in China
Retargeting Your Best Match: New Methods for Reaching Students in ChinaRetargeting Your Best Match: New Methods for Reaching Students in China
Retargeting Your Best Match: New Methods for Reaching Students in ChinaGil Rogers
 
redis 适用场景与实现
redis 适用场景与实现redis 适用场景与实现
redis 适用场景与实现iammutex
 
Introduction to RabbitMQ | Meetup at Pivotal Labs
Introduction to RabbitMQ | Meetup at Pivotal LabsIntroduction to RabbitMQ | Meetup at Pivotal Labs
Introduction to RabbitMQ | Meetup at Pivotal LabsAlvaro Videla
 
A Technical Introduction to WiredTiger
A Technical Introduction to WiredTigerA Technical Introduction to WiredTiger
A Technical Introduction to WiredTigerMongoDB
 
[@IndeedEng] Large scale interactive analytics with Imhotep
[@IndeedEng] Large scale interactive analytics with Imhotep[@IndeedEng] Large scale interactive analytics with Imhotep
[@IndeedEng] Large scale interactive analytics with Imhotepindeedeng
 

Viewers also liked (17)

Architecture | The Future of Messaging: RabbitMQ and AMQP | Eberhard Wolff
Architecture | The Future of Messaging: RabbitMQ and AMQP | Eberhard WolffArchitecture | The Future of Messaging: RabbitMQ and AMQP | Eberhard Wolff
Architecture | The Future of Messaging: RabbitMQ and AMQP | Eberhard Wolff
 
[@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
 
Trends in Student Perspectives: Key Insights to Understanding Gen X&Y
Trends in Student Perspectives: Key Insights to Understanding Gen X&YTrends in Student Perspectives: Key Insights to Understanding Gen X&Y
Trends in Student Perspectives: Key Insights to Understanding Gen X&Y
 
Performance Testing ISV Apps to Scale
Performance Testing ISV Apps to ScalePerformance Testing ISV Apps to Scale
Performance Testing ISV Apps to Scale
 
Your 2017 Student Marketing Roadmap
Your 2017 Student Marketing RoadmapYour 2017 Student Marketing Roadmap
Your 2017 Student Marketing Roadmap
 
Dissecting the rabbit: RabbitMQ Internal Architecture
Dissecting the rabbit: RabbitMQ Internal ArchitectureDissecting the rabbit: RabbitMQ Internal Architecture
Dissecting the rabbit: RabbitMQ Internal Architecture
 
[@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...
 
Taste Rabbitmq
Taste RabbitmqTaste Rabbitmq
Taste Rabbitmq
 
新浪微博开放平台Redis实战
新浪微博开放平台Redis实战新浪微博开放平台Redis实战
新浪微博开放平台Redis实战
 
高性能No sql数据库redis
高性能No sql数据库redis高性能No sql数据库redis
高性能No sql数据库redis
 
Retargeting Your Best Match: New Methods for Reaching Students in China
Retargeting Your Best Match: New Methods for Reaching Students in ChinaRetargeting Your Best Match: New Methods for Reaching Students in China
Retargeting Your Best Match: New Methods for Reaching Students in China
 
redis 适用场景与实现
redis 适用场景与实现redis 适用场景与实现
redis 适用场景与实现
 
Redis介绍
Redis介绍Redis介绍
Redis介绍
 
Introduction to RabbitMQ | Meetup at Pivotal Labs
Introduction to RabbitMQ | Meetup at Pivotal LabsIntroduction to RabbitMQ | Meetup at Pivotal Labs
Introduction to RabbitMQ | Meetup at Pivotal Labs
 
RabbitMQ Messaging
RabbitMQ MessagingRabbitMQ Messaging
RabbitMQ Messaging
 
A Technical Introduction to WiredTiger
A Technical Introduction to WiredTigerA Technical Introduction to WiredTiger
A Technical Introduction to WiredTiger
 
[@IndeedEng] Large scale interactive analytics with Imhotep
[@IndeedEng] Large scale interactive analytics with Imhotep[@IndeedEng] Large scale interactive analytics with Imhotep
[@IndeedEng] Large scale interactive analytics with Imhotep
 

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-Drivenindeedeng
 
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 Workindeedeng
 
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 presentationindeedeng
 
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 Makingindeedeng
 
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 - Recommendationsindeedeng
 
Vectorized VByte Decoding
Vectorized VByte DecodingVectorized VByte Decoding
Vectorized VByte Decodingindeedeng
 
[@IndeedEng] Imhotep Workshop
[@IndeedEng] Imhotep Workshop[@IndeedEng] Imhotep Workshop
[@IndeedEng] Imhotep Workshopindeedeng
 
@IndeedEng: Tokens and Millicents - technical challenges in launching Indeed...
@IndeedEng:  Tokens and Millicents - technical challenges in launching Indeed...@IndeedEng:  Tokens and Millicents - technical challenges in launching Indeed...
@IndeedEng: Tokens and Millicents - technical challenges in launching Indeed...indeedeng
 
[@IndeedEng] Building Indeed Resume Search
[@IndeedEng] Building Indeed Resume Search[@IndeedEng] Building Indeed Resume Search
[@IndeedEng] Building Indeed Resume Searchindeedeng
 

More from indeedeng (12)

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
 
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: Tokens and Millicents - technical challenges in launching Indeed...
@IndeedEng:  Tokens and Millicents - technical challenges in launching Indeed...@IndeedEng:  Tokens and Millicents - technical challenges in launching Indeed...
@IndeedEng: Tokens and Millicents - technical challenges in launching Indeed...
 
[@IndeedEng] Building Indeed Resume Search
[@IndeedEng] Building Indeed Resume Search[@IndeedEng] Building Indeed Resume Search
[@IndeedEng] Building Indeed Resume Search
 

Recently uploaded

SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
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
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
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
 
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
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.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
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
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
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
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
 
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
 
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
 

Recently uploaded (20)

SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
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
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
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
 
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
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.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
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
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
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
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
 
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
 
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
 

[@IndeedEng] How to Get a Job 35 Million Times a Day Using RabbitMQ