Scaling PostgreSQL at Thumbtack: Load Balancing And Health Checks

7,114

By Marco Almeida, Site Reliability Engineer at Thumbtack.


Introduction

Running PostgreSQL on a single primary master node is simple and convenient. There is a single source of truth, one instance to handle all reads and writes, one target for all clients to connect to, and only a single configuration file to maintain. However, such a setup usually does not last forever. As traffic increases, so does the number of concurrent reads and writes, the read/write ratio may become too high, a fast and reliable recovery plan needs to exist, the list goes on…

No single approach solves all possible scaling challenges, but there are quite a few options for scaling PostgreSQL depending on the requirements. When the read/write ratio is high enough, there is fairly straightforward scaling strategy: setup secondary PostgreSQL nodes (replicas) that stream data from the primary node (master) and split SQL traffic by sending all writes (INSERT, DELETE, UPDATE, UPSERT) to the single master node and all reads (SELECT) to the replicas. There can be many replicas, so this strategy scales better with a higher read/write ratio. Replicas are also valuable to implement a disaster recovery plan as it’s possible to promote one to master in the event of a failure.

Context

In 2014, Thumbtack was running PostgreSQL 9.1 on two servers: a basic master – slave setup leveraging PostgreSQL’s built-in streaming replication. Our infrastructure was comprised of a few dozen physical machines on SoftLayer running RHEL 5 and we were using HAproxy with Keepalived for load balancing. The future, already being planned for, would be powered by EC2 instances on AWS, running Debian 7 behind Elastic Load Balancers.

As traffic grew, we knew we would need to scale out PostgreSQL further. Thumbtack’s SQL traffic was (and still is) quite read-intensive, with less than 3% of all queries being executed on the master node. This was good news as it meant we could scale out by sending SELECT statements to a cluster of read-only replicas and leaving the master alone to process DML commands.

In order to properly implement this we would need:

  • an arbitrary number of read-only replicas behind a load balancer;
  • the load balancer itself could not be a single point of failure;
  • a way of performing health checks on each server, executed from the load balancer, so that failed nodes would be taken in and out of rotation automatically;
  • to support SoftLayer and AWS environments during the transition period.

Replication, high-availability, and load-balancing

We knew what we wanted the infrastructure to look like from a high-level perspective and had the tools available to implement almost all of it on both providers (Fig. 1).

Thumbtack Postgres Acrhictecture

One critical detail, however, was far from being a solved problem: health checks.

A basic ping on port 5432 was not enough. Performance and replication lag were (and still are!) very important factors to us — if a given replica is lagging behind by more than N (varying according to the database and the cluster we’re connecting to) seconds, we prefer not to use it until it recovers as it would otherwise lead to stale reads.

Custom health checks

Not having found an open source tool that implements powerful enough health-checks for PostgreSQL, we decided to write our own. These were the requirements:

  1. Work equally well on both environments — RHEL 5/HAproxy on Softlayer and Debian 7/ELBs on AWS
  2. Check basic TCP connectivity, on an arbitrary port, with a configurable timeout
  3. Check server availability by running a test query with a time limit — if a server is under load, it may be responding to TCP but not able to process a simple query (SELECT 1). We need to distinguish between these two scenarios, and potentially take different actions
  4. Check replication lag (time elapsed since the last transaction was replayed)
  5. Support custom health checks in the form of SQL queries — extensible and future-proof
  6. Low memory footprint — avoid “stealing” memory from PostgreSQL
  7. Minimal list of external dependencies

A web service, exposing a simple HTTP endpoint, would work in any environment and easily be able to test TCP connectivity. Simple queries and testing replication lag are just a special case of running arbitrary SQL queries as a health check, so we just focused on this one and implemented the others as a form of syntactic sugar.

Programming languages One important decision for delivering a platform independent solution with low memory footprint and minimal dependencies was the choice of the programming language. We considered a few from Python (there was already a reasonably large Python code base at Thumbtack), to Go (we were taking our first steps with it), and even Rust (too immature at the time).

We ended up writing it in C. It was easy to meet all requirements with only one external dependency for implementing the web server, clearly no challenges running it on any of the Linux distributions we were maintaining, and arguably the implementation with the smallest memory footprint given the choices above.

The final result

We named the project pgDoctor and made it publicly available on our Github repository. It uses microhttpd to implement a very simple web service that listens on port 8071, logs to the local7 syslog facility (configurable), and provides a reasonably rich set of configuration parameters. The behavior is quite simple: an HTTP GET request to :8071 returns 200 if all checks pass, 500 otherwise. All errors are logged.

pgDoctor has been running flawlessly on all our PostgreSQL replicas for roughly 3 years now, having gone through two major upgrades (9.1 –> 9.4 –> 9.6). As of now, there are 18 streaming replicas, all running pgDoctor alongside PostgreSQL, and distributed among 4 clusters. Each cluster supports different use cases and requires slightly different health checks.

PostgreSQL replicas are sometimes taken out of rotation. The most common reasons are temporary high replication lag or some transient issue with the underlying EC2 instance. As expected, they are added back to the cluster without any intervention once normality is restored and the health checks succeed.

Figure 2 shows a diagram of (a downsized version of) our production environment:

  • Three availability zones;
  • One master node and two hot-standby instances on different availability zones;
  • Three clusters of read-only replicas, streaming from the master, each with its own load balancer;
  • Several clients, on all availability zones, reading from one or more clusters and writing to the master.

Thumbtack Postgres Architecture 2

Does this sound interesting? There is a lot more to be done. Join Thumbtack and help us build, scale, and operate a high reliability service!

Related work

http://www.severalnines.com/mysql-load-balancing-haproxy-tutorial#issues https://www.digitalocean.com/community/tutorials/how-to-use-haproxy-to-set-up-mysql-load-balancing--3 http://www.severalnines.com/mysql-load-balancing-haproxy-tutorial#issues


Originally posted on Thumbtack Engineering

Tools mentioned in article
Open jobs at Thumbtack
Backend Engineer, Marketplace Trust a...
, United States
<div class="content-intro"><p><span style="font-weight: 400;">A home is the biggest investment most people make, and yet, it doesn’t come with a manual. That's why we’re building the only app homeowners need to effortlessly manage their homes —&nbsp; knowing what to do, when to do it, and who to hire. With Thumbtack, millions of people care for what matters most, and pros earn billions of dollars through our platform. And as one of the fastest-growing companies in a $500B industry — we must be doing something right.&nbsp;</span></p> <p><span style="font-weight: 400;">We are driven by a common goal and the deep satisfaction that comes from knowing our work supports local economies, helps small businesses grow, and brings homeowners peace of mind. We’re seeking people who continually put our purpose first: advocating for pros and customers, embracing change, and choosing teamwork every day.</span></p> <p><span style="font-weight: 400;">At Thumbtack, we're creating a new era of home care. If making an impact and the chance to do good inspires you, join us. Imagine what we’ll build together.&nbsp;</span></p> <p><strong>Thumbtack by the Numbers</strong></p> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">Available nationwide in all 3,143 U.S. counties</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">70 million projects started on Thumbtack</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">More than 4 million customers in the last 12 months</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Pros earn billions on our platform</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">More than 8 million 5-star reviews for our stellar pros&nbsp;</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">1000+ employees and $3.2 billion valuation (June, 2021) </span></li> </ul></div><h2><strong>About the Marketplace Trust and Safety Team</strong></h2> <p><span style="font-weight: 400;">Our Trust and Safety engineering team is responsible for building machine learning models and scalable backend systems to prevent, detect and mitigate platform abuse and fraud. Our mission is to protect our pros and customers and establish trust in using Thumbtack. The team builds the tools to help protect the platform from spam, fraud and abusive behaviors.</span></p> <h2><strong>Challenge&nbsp;</strong></h2> <p><span style="font-weight: 400;">Our challenges are deeply technical and span a wide range of domains from infrastructure, to data, to product. Examples of projects include: Payment fraud prevention, preventing spam in pro accounts, customer requests etc To read more about the problems that our team is taking on, visit our <a href="https://www.thumbtack.com/engineering/">engineering blog</a>.</span></p> <h2><strong>Responsibilities</strong></h2> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">Collaborate with other engineers, designers and product managers to execute on a broad range of projects. This could include building new features to improve the experience of our users, architecting infrastructure to support a fast-­growing user base, or optimizing our marketplace mechanics to make better matches between customers and professionals</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Drive engineering projects to completion, with a tenacious focus on the business impact of those projects. Skilled at prioritizing tasks to deliver on goals with a sense of urgency.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Solve tough technical problems at any level of the stack, and be persistent in getting to the solution, whether it involves front-end, back-end, or infrastructure work.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Collaborate with cross-functional teams to plan and execute on engineering projects</span></li> </ul> <h2><strong>What you'll need&nbsp;</strong></h2> <p><em><span style="font-weight: 400;">If you don't think you meet all of the criteria below but still are interested in the job, please apply. Nobody checks every box, and we're looking for someone excited to join the team.</span></em></p> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">Minimum of 5+ years of industry experience in engineering.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Experience in trust and safety, payments fraud prevention etc.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Fluent in at least one major programming language and would be able to switch between multiple languages. In our stack. We mainly use Go, Python, Php, with Swift, Kotlin and Java for our mobile apps.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Solid experience building software on top of relational databases such as Postgres or MySQL.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Write high quality, maintainable, testable code, and you enjoy doing it.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Curious, data-driven, and a critical problem solver. Break down complex problems rigorously and understand the tradeoffs necessary to deliver great, impactful products.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Hands on experience in one or more of the areas: machine learning, deep learning, pattern recognition, anomaly detection, data mining, NLP or content understanding</span></li> </ul> <h2><strong>Bonus points if you have&nbsp;</strong></h2> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">Experience using AWS and/or GCP and its suite of technologies such as DynamoDB, Elastic Beanstalk, etc</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Familiarity with the big data ecosystem (Hadoop/HDFS, Hive, Spark, etc).</span></li> </ul> <p><span style="font-weight: 400;">Thumbtack is a virtual-first company, meaning you can live and work from any one of our approved locations across the United States, Canada or the Philippines.* Learn more about our virtual-first working model </span><a href="https://careers.thumbtack.com/virtual-first"><span style="font-weight: 400;">here</span></a><span style="font-weight: 400;">. </span></p> <p><span style="font-weight: 400;">#LI-Remote</span></p><div class="content-conclusion"><div class="p-rich_text_section"><strong data-stringify-type="bold">Benefits &amp; Perks</strong></div> <ul class="p-rich_text_list p-rich_text_list__bullet" data-stringify-type="unordered-list" data-indent="0" data-border="0"> <li style="font-weight: 400;"><span style="font-weight: 400;">Virtual-first working model coupled with quarterly in-person events and Camp Thumbtack</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">20+ company-wide holidays including two week-long shutdowns&nbsp;</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Libraries (collaborative workspaces) in San Francisco, Toronto, and Manila&nbsp;</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Stipends for remote work support, home office set-up and Thumbtack services</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Cell phone and WiFi reimbursements&nbsp;</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Subscriptions and Employee Assistance Program for mental health and well-being&nbsp;</span></li> </ul> <p><span style="font-weight: 400;"><strong>Learn More About Us </strong></span></p> <ul> <li><a href="https://medium.com/life-thumbtack"><span style="font-weight: 400;">Life @ Thumbtack Blog </span></a><span style="font-weight: 400;">&nbsp;&nbsp;</span></li> <li style="font-weight: 400;"><a href="https://www.youtube.com/watch?v=vkdNjVKtpB4"><span style="font-weight: 400;">How Thumbtack is embracing virtual work</span></a><span style="font-weight: 400;"> &nbsp;</span></li> <li style="font-weight: 400;"><a href="https://www.linkedin.com/company/thumbtack-inc."><span>Follow us on LinkedIn </span></a><span>&nbsp;</span></li> <li style="font-weight: 400;"><a href="https://www.youtube.com/watch?v=khIN2FCdfnM&amp;list=PLPz1npTzydS577c1B-vduYBWoF0cRPKMv"><span>Meet the pros who inspire us</span></a></li> </ul> <p><span style="font-weight: 400;">Thumbtack embraces diversity. We are proud to be an equal opportunity workplace and do not discriminate on the basis of sex, race, color, age, pregnancy, sexual orientation, gender identity or expression, religion, national origin, ancestry, citizenship, marital status, military or veteran status, genetic information, disability status, or any other characteristic protected by federal, provincial, state, or local law. We also will consider for employment qualified applicants with arrest and conviction records, consistent with applicable law.&nbsp;</span></p> <p><span style="font-weight: 400;">Thumbtack is committed to working with and providing reasonable accommodation to individuals with disabilities. If you would like to request a reasonable accommodation for a medical condition or disability during any part of the application process, please contact: </span><a href="mailto:recruitingops@thumbtack.com"><span style="font-weight: 400;">recruitingops@thumbtack.com</span></a><span style="font-weight: 400;">.&nbsp;</span></p> <p><span style="font-weight: 400;">If you are a California resident, please review information regarding your rights under California privacy laws contained in Thumbtack’s Privacy policy available at </span><a href="https://www.thumbtack.com/privacy/"><span style="font-weight: 400;">https://www.thumbtack.com/privacy/</span></a><span style="font-weight: 400;"> .</span></p> <h5 id="b81c" class="ht hu dv hv b eu hw hx hy ex hz ia ib ic id ie if ig ih ii ij ik il im in io dn es"></h5></div>
Backend Engineer, Marketplace Trust a...
, Ontario
<div class="content-intro"><p><span style="font-weight: 400;">A home is the biggest investment most people make, and yet, it doesn’t come with a manual. That's why we’re building the only app homeowners need to effortlessly manage their homes —&nbsp; knowing what to do, when to do it, and who to hire. With Thumbtack, millions of people care for what matters most, and pros earn billions of dollars through our platform. And as one of the fastest-growing companies in a $500B industry — we must be doing something right.&nbsp;</span></p> <p><span style="font-weight: 400;">We are driven by a common goal and the deep satisfaction that comes from knowing our work supports local economies, helps small businesses grow, and brings homeowners peace of mind. We’re seeking people who continually put our purpose first: advocating for pros and customers, embracing change, and choosing teamwork every day.</span></p> <p><span style="font-weight: 400;">At Thumbtack, we're creating a new era of home care. If making an impact and the chance to do good inspires you, join us. Imagine what we’ll build together.&nbsp;</span></p> <p><strong>Thumbtack by the Numbers</strong></p> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">Available nationwide in all 3,143 U.S. counties</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">70 million projects started on Thumbtack</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">More than 4 million customers in the last 12 months</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Pros earn billions on our platform</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">More than 8 million 5-star reviews for our stellar pros&nbsp;</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">1000+ employees and $3.2 billion valuation (June, 2021) </span></li> </ul></div><h2><strong>About the Marketplace Trust and Safety Team</strong></h2> <p><span style="font-weight: 400;">Our Trust and Safety engineering team is responsible for building machine learning models and scalable backend systems to prevent, detect and mitigate platform abuse and fraud. Our mission is to protect our pros and customers and establish trust in using Thumbtack. The team builds the tools to help protect the platform from spam, fraud and abusive behaviors.</span></p> <h2><strong>Challenge&nbsp;</strong></h2> <p><span style="font-weight: 400;">Our challenges are deeply technical and span a wide range of domains from infrastructure, to data, to product. Examples of projects include: Payment fraud prevention, preventing spam in pro accounts, customer requests etc To read more about the problems that our team is taking on, visit our <a href="https://www.thumbtack.com/engineering/">engineering blog</a>.</span></p> <h2><strong>Responsibilities</strong></h2> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">Collaborate with other engineers, designers and product managers to execute on a broad range of projects. This could include building new features to improve the experience of our users, architecting infrastructure to support a fast-­growing user base, or optimizing our marketplace mechanics to make better matches between customers and professionals</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Drive engineering projects to completion, with a tenacious focus on the business impact of those projects. Skilled at prioritizing tasks to deliver on goals with a sense of urgency.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Solve tough technical problems at any level of the stack, and be persistent in getting to the solution, whether it involves front-end, back-end, or infrastructure work.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Collaborate with cross-functional teams to plan and execute on engineering projects</span></li> </ul> <h2><strong>What you'll need&nbsp;</strong></h2> <p><em><span style="font-weight: 400;">If you don't think you meet all of the criteria below but still are interested in the job, please apply. Nobody checks every box, and we're looking for someone excited to join the team.</span></em></p> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">Minimum of 5+ years of industry experience in engineering.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Experience in trust and safety, payments fraud prevention etc.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Fluent in at least one major programming language and would be able to switch between multiple languages. In our stack. We mainly use Go, Python, Php, with Swift, Kotlin and Java for our mobile apps.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Solid experience building software on top of relational databases such as Postgres or MySQL.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Write high quality, maintainable, testable code, and you enjoy doing it.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Curious, data-driven, and a critical problem solver. Break down complex problems rigorously and understand the tradeoffs necessary to deliver great, impactful products.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Hands on experience in one or more of the areas: machine learning, deep learning, pattern recognition, anomaly detection, data mining, NLP or content understanding</span></li> </ul> <h2><strong>Bonus points if you have&nbsp;</strong></h2> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">Experience using AWS and/or GCP and its suite of technologies such as DynamoDB, Elastic Beanstalk, etc</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Familiarity with the big data ecosystem (Hadoop/HDFS, Hive, Spark, etc).</span></li> </ul> <p><span style="font-weight: 400;">Thumbtack is a virtual-first company, meaning you can live and work from any one of our approved locations across the United States, Canada or the Philippines.* Learn more about our virtual-first working model </span><a href="https://careers.thumbtack.com/virtual-first"><span style="font-weight: 400;">here</span></a><span style="font-weight: 400;">. </span></p> <p><span style="font-weight: 400;">#LI-Remote</span></p><div class="content-conclusion"><div class="p-rich_text_section"><strong data-stringify-type="bold">Benefits &amp; Perks</strong></div> <ul class="p-rich_text_list p-rich_text_list__bullet" data-stringify-type="unordered-list" data-indent="0" data-border="0"> <li style="font-weight: 400;"><span style="font-weight: 400;">Virtual-first working model coupled with quarterly in-person events and Camp Thumbtack</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">20+ company-wide holidays including two week-long shutdowns&nbsp;</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Libraries (collaborative workspaces) in San Francisco, Toronto, and Manila&nbsp;</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Stipends for remote work support, home office set-up and Thumbtack services</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Cell phone and WiFi reimbursements&nbsp;</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Subscriptions and Employee Assistance Program for mental health and well-being&nbsp;</span></li> </ul> <p><span style="font-weight: 400;"><strong>Learn More About Us </strong></span></p> <ul> <li><a href="https://medium.com/life-thumbtack"><span style="font-weight: 400;">Life @ Thumbtack Blog </span></a><span style="font-weight: 400;">&nbsp;&nbsp;</span></li> <li style="font-weight: 400;"><a href="https://www.youtube.com/watch?v=vkdNjVKtpB4"><span style="font-weight: 400;">How Thumbtack is embracing virtual work</span></a><span style="font-weight: 400;"> &nbsp;</span></li> <li style="font-weight: 400;"><a href="https://www.linkedin.com/company/thumbtack-inc."><span>Follow us on LinkedIn </span></a><span>&nbsp;</span></li> <li style="font-weight: 400;"><a href="https://www.youtube.com/watch?v=khIN2FCdfnM&amp;list=PLPz1npTzydS577c1B-vduYBWoF0cRPKMv"><span>Meet the pros who inspire us</span></a></li> </ul> <p><span style="font-weight: 400;">Thumbtack embraces diversity. We are proud to be an equal opportunity workplace and do not discriminate on the basis of sex, race, color, age, pregnancy, sexual orientation, gender identity or expression, religion, national origin, ancestry, citizenship, marital status, military or veteran status, genetic information, disability status, or any other characteristic protected by federal, provincial, state, or local law. We also will consider for employment qualified applicants with arrest and conviction records, consistent with applicable law.&nbsp;</span></p> <p><span style="font-weight: 400;">Thumbtack is committed to working with and providing reasonable accommodation to individuals with disabilities. If you would like to request a reasonable accommodation for a medical condition or disability during any part of the application process, please contact: </span><a href="mailto:recruitingops@thumbtack.com"><span style="font-weight: 400;">recruitingops@thumbtack.com</span></a><span style="font-weight: 400;">.&nbsp;</span></p> <p><span style="font-weight: 400;">If you are a California resident, please review information regarding your rights under California privacy laws contained in Thumbtack’s Privacy policy available at </span><a href="https://www.thumbtack.com/privacy/"><span style="font-weight: 400;">https://www.thumbtack.com/privacy/</span></a><span style="font-weight: 400;"> .</span></p> <h5 id="b81c" class="ht hu dv hv b eu hw hx hy ex hz ia ib ic id ie if ig ih ii ij ik il im in io dn es"></h5></div>
Senior iOS Engineer
, Ontario
<div class="content-intro"><p><span style="font-weight: 400;">A home is the biggest investment most people make, and yet, it doesn’t come with a manual. That's why we’re building the only app homeowners need to effortlessly manage their homes —&nbsp; knowing what to do, when to do it, and who to hire. With Thumbtack, millions of people care for what matters most, and pros earn billions of dollars through our platform. And as one of the fastest-growing companies in a $600B+ industry — we must be doing something right.&nbsp;</span></p> <p><span style="font-weight: 400;">We are driven by a common goal and the deep satisfaction that comes from knowing our work supports local economies, helps small businesses grow, and brings homeowners peace of mind. We’re seeking people who continually put our purpose first: advocating for pros and customers, embracing change, and choosing teamwork every day.</span></p> <p><span style="font-weight: 400;">At Thumbtack, we're creating a new era of home care. If making an impact and the chance to do good inspires you, join us. Imagine what we’ll build together.&nbsp;</span></p> <p><strong>Thumbtack by the Numbers</strong></p> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">Available nationwide in all 3,143 U.S. counties</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">75 million projects started on Thumbtack</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">4 million customers in the last 12 months</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Pros earn billions on our platform</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">More than 9 million 5-star reviews for our stellar pros&nbsp;</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">1000+ employees and $3.2 billion valuation (June, 2021)&nbsp;</span></li> </ul></div><h2><strong>About the Engineering Team</strong></h2> <p><span style="font-weight: 400;">At Thumbtack, engineers at every level build products and systems that directly impact our customers and professionals. Our challenges span a wide variety of areas, ranging from building search and booking experiences, to optimizing pricing systems, to building tools to help professionals grow their businesses. We believe in tackling these hard problems together as a team, with strong values around collaboration, ownership and transparency. To read more about the hard problems that our team is taking on, visit our </span><a href="https://www.thumbtack.com/engineering/"><span style="font-weight: 400;">engineering blog</span></a><span style="font-weight: 400;">.</span></p> <h2><strong>About the Role</strong></h2> <p>We are looking to build an amazing mobile experience for hundreds of thousands of users. Can you imagine what you might do if you could run your business from your phone? If you could hire a service provider at any time day or night with just a few taps? The sky's the limit. We develop much of our products mobile first and have seen this investment pay off incredibly. We’re looking for engineers excited to build a fantastic product.</p> <h2><strong>Responsibilities</strong></h2> <ul> <li>Drive engineering projects to completion, with a tenacious focus on the business impact of those projects. Skilled at prioritizing tasks to deliver on goals with a sense of urgency.</li> <li>Execute new ideas quickly and effectively on iOS while also being a resource to other teams and engineers.</li> <li>Willing, when necessary, to solve tough technical problems at any level of the stack, and be persistent in getting to the solution.</li> <li>Work collaboratively with cross-functional teams such as Product and Design to plan and execute on engineering projects</li> <li>Work on large projects and lead small teams of engineers</li> </ul> <h2><strong>What you'll need&nbsp;</strong></h2> <p><em>If you don't think you meet all of the criteria below but still are interested in the job, please apply. Nobody checks every box, and we're looking for someone excited to join the team.</em></p> <ul> <li>Passionate iOS engineer who is an expert in &nbsp;building, testing, releasing, and maintaining applications in either Swift or Objective C</li> <li>Minimum of 5 years of industry experience in engineering</li> <li>History of shipping consumer focused apps that users love on the App Store, you can show what you’ve owned</li> <li>Excited by the potential of mobile technology to transform the lives of small businesses around the country</li> </ul> <h2><strong>Bonus points if you have&nbsp;</strong></h2> <ul> <li>Experience with libraries, frameworks, and services like Core Data, AFNetworking, Xcode UI Testing, Crashlytics, Firebase, and Apollo (GraphQL)&nbsp;</li> <li>Strong eye for beautiful design and user experience</li> <li>Great communicator; we find that people who are good writers tend to be great thinkers and great coders</li> <li>You’re data-­driven and dedicated to thorough testing to maintain high-­quality software</li> </ul> <p><span style="font-weight: 400;">Thumbtack is a virtual-first company, meaning you can live and work from any one of our approved locations across the United States, Canada or the Philippines.* Learn more about our virtual-first working model </span><a href="https://careers.thumbtack.com/virtual-first"><span style="font-weight: 400;">here</span></a><span style="font-weight: 400;">. #LI-Remote</span></p><div class="content-conclusion"><div class="p-rich_text_section"><strong data-stringify-type="bold">Benefits &amp; Perks</strong></div> <ul class="p-rich_text_list p-rich_text_list__bullet" data-stringify-type="unordered-list" data-indent="0" data-border="0"> <li style="font-weight: 400;"><span style="font-weight: 400;">Virtual-first working model coupled with quarterly in-person events and Camp Thumbtack</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">20+ company-wide holidays including two week-long shutdowns&nbsp;</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Libraries (collaborative workspaces) in San Francisco, Toronto, and Manila&nbsp;</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Stipends for remote work support, home office set-up and Thumbtack services</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Cell phone and WiFi reimbursements&nbsp;</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Subscriptions and Employee Assistance Program for mental health and well-being&nbsp;</span></li> </ul> <p><span style="font-weight: 400;"><strong>Learn More About Us </strong></span></p> <ul> <li><a href="https://medium.com/life-thumbtack"><span style="font-weight: 400;">Life @ Thumbtack Blog </span></a><span style="font-weight: 400;">&nbsp;&nbsp;</span></li> <li style="font-weight: 400;"><a href="https://www.youtube.com/watch?v=vkdNjVKtpB4"><span style="font-weight: 400;">How Thumbtack is embracing virtual work</span></a><span style="font-weight: 400;"> &nbsp;</span></li> <li style="font-weight: 400;"><a href="https://www.linkedin.com/company/thumbtack-inc."><span>Follow us on LinkedIn </span></a><span>&nbsp;</span></li> <li style="font-weight: 400;"><a href="https://www.youtube.com/watch?v=khIN2FCdfnM&amp;list=PLPz1npTzydS577c1B-vduYBWoF0cRPKMv"><span>Meet the pros who inspire us</span></a></li> </ul> <p><span style="font-weight: 400;">Thumbtack embraces diversity. We are proud to be an equal opportunity workplace and do not discriminate on the basis of sex, race, color, age, pregnancy, sexual orientation, gender identity or expression, religion, national origin, ancestry, citizenship, marital status, military or veteran status, genetic information, disability status, or any other characteristic protected by federal, provincial, state, or local law. We also will consider for employment qualified applicants with arrest and conviction records, consistent with applicable law.&nbsp;</span></p> <p><span style="font-weight: 400;">Thumbtack is committed to working with and providing reasonable accommodation to individuals with disabilities. If you would like to request a reasonable accommodation for a medical condition or disability during any part of the application process, please contact: </span><a href="mailto:recruitingops@thumbtack.com"><span style="font-weight: 400;">recruitingops@thumbtack.com</span></a><span style="font-weight: 400;">.&nbsp;</span></p> <p><span style="font-weight: 400;">If you are a California resident, please review information regarding your rights under California privacy laws contained in Thumbtack’s Privacy policy available at </span><a href="https://www.thumbtack.com/privacy/"><span style="font-weight: 400;">https://www.thumbtack.com/privacy/</span></a><span style="font-weight: 400;"> .</span></p> <h5 id="b81c" class="ht hu dv hv b eu hw hx hy ex hz ia ib ic id ie if ig ih ii ij ik il im in io dn es"></h5></div>
Backend Engineer, Customer Engagement
, Ontario
<div class="content-intro"><p><span style="font-weight: 400;">A home is the biggest investment most people make, and yet, it doesn’t come with a manual. That's why we’re building the only app homeowners need to effortlessly manage their homes —&nbsp; knowing what to do, when to do it, and who to hire. With Thumbtack, millions of people care for what matters most, and pros earn billions of dollars through our platform. And as one of the fastest-growing companies in a $600B+ industry — we must be doing something right.&nbsp;</span></p> <p><span style="font-weight: 400;">We are driven by a common goal and the deep satisfaction that comes from knowing our work supports local economies, helps small businesses grow, and brings homeowners peace of mind. We’re seeking people who continually put our purpose first: advocating for pros and customers, embracing change, and choosing teamwork every day.</span></p> <p><span style="font-weight: 400;">At Thumbtack, we're creating a new era of home care. If making an impact and the chance to do good inspires you, join us. Imagine what we’ll build together.&nbsp;</span></p> <p><strong>Thumbtack by the Numbers</strong></p> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">Available nationwide in all 3,143 U.S. counties</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">75 million projects started on Thumbtack</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">4 million customers in the last 12 months</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Pros earn billions on our platform</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">More than 9 million 5-star reviews for our stellar pros&nbsp;</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">1000+ employees and $3.2 billion valuation (June, 2021)&nbsp;</span></li> </ul></div><h2><strong>About the Customer Engagement Team</strong></h2> <p><span style="font-weight: 400;">The Customer Engagement team is focused on building features to help customers discover all the product offerings that Thumbtack has to offer, offering customers inspiration, guidance, and recommendations for starting and managing projects on Thumbtack, optimizing incentives to activate and engage customers, and powering smarter engagement marketing campaigns to regain and re-engage our customers. The team is very cross-functional: Engineering, PM, Design, Analytics, Data Science and Marketing all work closely together to achieve our goals.&nbsp;</span></p> <h2><strong>Challenge</strong></h2> <p><span style="font-weight: 400;">We have technical problems ranging from mobile experiences and performances, high scale backend systems, and to machine learning optimization algorithms. Many of the experiences that we build in our apps are to activate, engage, and re-engage our users which requires consistent A/B tests in relation to their experiences. Our challenges are pretty open ended, and we move real fast!&nbsp;</span></p> <h2><strong>Responsibilities</strong></h2> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">Drive engineering projects to completion, with a tenacious focus on the business impact of those projects. Skilled at prioritizing tasks to deliver on goals with a sense of urgency.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Execute new ideas quickly and effectively on the backend while also being a resource to other teams and engineers.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Collaborate with data scientists to connect and implement complex machine learning algorithms to our backend systems to support our growing customer base.&nbsp;</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Willing, when necessary, to solve tough technical problems at any level of the stack, and be persistent in getting to the solution.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Work collaboratively with cross-functional teams such as Product and Design to plan and execute on engineering projects</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Work on large projects and lead small teams of engineers</span></li> </ul> <h2><strong>What you’ll need</strong></h2> <p><em><span style="font-weight: 400;">If you don't think you meet all of the criteria below but still are interested in the job, please apply. Nobody checks every box, and we're looking for someone excited to join the team.</span></em></p> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">Minimum of 5+ years of industry experience in engineering</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Fluent in at least one major programming language and would be able to switch between multiple languages. In our stack. We mainly use Go, Python, Php, with Swift, Kotlin and Java for our mobile apps.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Solid experience building software on top of relational databases such as Postgres or MySQL.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Write high quality, maintainable, testable code, and you enjoy doing it.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Curious, data-driven, and a critical problem solver. Break down complex problems rigorously and understand the tradeoffs necessary to deliver great, impactful products.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Hands on experience in machine learning, or passion to learn the fundamentals of ML to help implement models into our products</span></li> </ul> <h2><strong>Bonus points if you have&nbsp;</strong></h2> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">Experience using AWS and/or GCP and its suite of technologies such as DynamoDB, Elastic Beanstalk, etc</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Familiarity with the big data ecosystem (Hadoop/HDFS, Hive, Spark, etc).</span></li> </ul> <p><span style="font-weight: 400;">Thumbtack is a virtual-first company, meaning you can live and work from any one of our approved locations across the United States, Canada or the Philippines.* Learn more about our virtual-first working model </span><a href="https://careers.thumbtack.com/virtual-first"><span style="font-weight: 400;">here</span></a><span style="font-weight: 400;">. </span></p> <p><span style="font-weight: 400;">#LI-Remote</span></p><div class="content-conclusion"><div class="p-rich_text_section"><strong data-stringify-type="bold">Benefits &amp; Perks</strong></div> <ul class="p-rich_text_list p-rich_text_list__bullet" data-stringify-type="unordered-list" data-indent="0" data-border="0"> <li style="font-weight: 400;"><span style="font-weight: 400;">Virtual-first working model coupled with quarterly in-person events and Camp Thumbtack</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">20+ company-wide holidays including two week-long shutdowns&nbsp;</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Libraries (collaborative workspaces) in San Francisco, Toronto, and Manila&nbsp;</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Stipends for remote work support, home office set-up and Thumbtack services</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Cell phone and WiFi reimbursements&nbsp;</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Subscriptions and Employee Assistance Program for mental health and well-being&nbsp;</span></li> </ul> <p><span style="font-weight: 400;"><strong>Learn More About Us </strong></span></p> <ul> <li><a href="https://medium.com/life-thumbtack"><span style="font-weight: 400;">Life @ Thumbtack Blog </span></a><span style="font-weight: 400;">&nbsp;&nbsp;</span></li> <li style="font-weight: 400;"><a href="https://www.youtube.com/watch?v=vkdNjVKtpB4"><span style="font-weight: 400;">How Thumbtack is embracing virtual work</span></a><span style="font-weight: 400;"> &nbsp;</span></li> <li style="font-weight: 400;"><a href="https://www.linkedin.com/company/thumbtack-inc."><span>Follow us on LinkedIn </span></a><span>&nbsp;</span></li> <li style="font-weight: 400;"><a href="https://www.youtube.com/watch?v=khIN2FCdfnM&amp;list=PLPz1npTzydS577c1B-vduYBWoF0cRPKMv"><span>Meet the pros who inspire us</span></a></li> </ul> <p><span style="font-weight: 400;">Thumbtack embraces diversity. We are proud to be an equal opportunity workplace and do not discriminate on the basis of sex, race, color, age, pregnancy, sexual orientation, gender identity or expression, religion, national origin, ancestry, citizenship, marital status, military or veteran status, genetic information, disability status, or any other characteristic protected by federal, provincial, state, or local law. We also will consider for employment qualified applicants with arrest and conviction records, consistent with applicable law.&nbsp;</span></p> <p><span style="font-weight: 400;">Thumbtack is committed to working with and providing reasonable accommodation to individuals with disabilities. If you would like to request a reasonable accommodation for a medical condition or disability during any part of the application process, please contact: </span><a href="mailto:recruitingops@thumbtack.com"><span style="font-weight: 400;">recruitingops@thumbtack.com</span></a><span style="font-weight: 400;">.&nbsp;</span></p> <p><span style="font-weight: 400;">If you are a California resident, please review information regarding your rights under California privacy laws contained in Thumbtack’s Privacy policy available at </span><a href="https://www.thumbtack.com/privacy/"><span style="font-weight: 400;">https://www.thumbtack.com/privacy/</span></a><span style="font-weight: 400;"> .</span></p> <h5 id="b81c" class="ht hu dv hv b eu hw hx hy ex hz ia ib ic id ie if ig ih ii ij ik il im in io dn es"></h5></div>
Verified by
Infra & Data Eng Manager
Senior Technical Sourcer
You may also like