Scaling PostgreSQL at Thumbtack: Load Balancing And Health Checks

7,038

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
Senior Android Engineer, Native Infra...
, 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 Native Infrastructure Team</strong></h2> <p><span style="font-weight: 400;">The Native Infrastructure team works to improve developer productivity and product quality at Thumbtack. We collaborate regularly with engineering and the design systems teams to deliver the tools and frameworks that make it easy for our engineers to create user experiences that are accessible, performant, and secure.</span></p> <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;"> </span><span style="font-weight: 400;">engineering blog</span></a><span style="font-weight: 400;">.</span></p> <h2><strong>About the Role</strong></h2> <p><span style="font-weight: 400;">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.</span></p> <h2><strong>Responsibilities</strong></h2> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">Drive Android infrastructure projects to completion, with a tenacious focus on the business and developer productivity impact of those projects.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Work closely with Android engineers, the design systems team, and other infrastructure teams to gather feedback, prioritize projects, and deliver solutions.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Explore new frameworks and processes while also being able to discuss when (or when not) to use them.</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;">Mentor a growing team of engineers on Android best-practices and standards.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Participate in a culture that values thoughtful code reviews and frequent deploys.</span></li> </ul> <h2><strong>Must-Have Qualifications&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;">Passionate Android engineer who is an expert in building, testing, releasing and maintaining Android applications</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">History of shipping consumer-focused apps that users love on the Play Store, you can show what you’ve owned</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Excited by the potential of mobile technology to transform the lives of small businesses around the country</span></li> </ul> <h2><strong>Nice-to-Have Qualifications</strong></h2> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">Experience with </span><span style="font-weight: 400;">Kotlin</span><span style="font-weight: 400;"> and popular 3rd party libraries, frameworks, and services like RxJava, </span><span style="font-weight: 400;">Kotlin</span><span style="font-weight: 400;"> Coroutines, Jetpack Compose, Retrofit, Dagger, and Crashlytics; including when not to use one</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Deep knowledge of Android build tools (Gradle, release signing, etc)</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Great communicator; we find that people who are good writers tend to be great thinkers and great coders</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">You’re </span><span style="font-weight: 400;">data</span><span style="font-weight: 400;">-driven and dedicated to thorough testing to maintain high-quality software</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*. When it is safe to gather, we will begin to host in-person events on a regular basis. Remote employees will be expected to travel occasionally for these events to a Thumbtack library or offsite team-building location. In cities with 5+ employees, we are establishing local communities, where employees can gather for local events. Additionally, employees in the San Francisco, Salt Lake City, Toronto and Manila areas will have opt-in access to communal workspace at one of our Thumbtack libraries. We always prioritize the health and safety of our employees. Currently, participation in these events and Thumbtack library use are optional. Both require employees to be fully vaccinated.</span></p> <p><span style="font-weight: 400;">#LI-Remote</span></p><div class="content-conclusion"><div class="p-rich_text_section">&nbsp;</div> <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 data-stringify-indent="0" data-stringify-border="0">Virtual-first working model coupled with quarterly in-person events and Camp Thumbtack</li> <li data-stringify-indent="0" data-stringify-border="0">20+ company-wide holidays including two week-long shutdowns</li> <li data-stringify-indent="0" data-stringify-border="0">Libraries (collaborative workspaces) in San Francisco, Salt Lake City, Toronto, and Manila</li> <li data-stringify-indent="0" data-stringify-border="0">Stipends for remote work support, home office set-up and internet</li> <li data-stringify-indent="0" data-stringify-border="0">Subscriptions and Employee Assistance Program for mental health and well-being</li> <li data-stringify-indent="0" data-stringify-border="0">Cell Phone Reimbursement, Thumbtack services (North America only)</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. 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;">.&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> <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">*Currently, Thumbtackers can live anywhere in Ontario or British Columbia, Canada or the Philippines or in any of the following US states: AZ, CA, CO, CT, FL, GA, HI, ID, IL, IN, KS, KY, MD, MA, MI, MN, MO, NE, NV, NH, NJ, NM, NY, NC, OH, OK, OR, PA, SC, TN, TX, UT, VA, WA, WI, Washington DC. Our long term vision is to hire across all of the United States and Canada, but this expansion will take a few years.</h5></div>
Senior Android Engineer, Native Infra...
, 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 Native Infrastructure Team</strong></h2> <p><span style="font-weight: 400;">The Native Infrastructure team works to improve developer productivity and product quality at Thumbtack. We collaborate regularly with engineering and the design systems teams to deliver the tools and frameworks that make it easy for our engineers to create user experiences that are accessible, performant, and secure.</span></p> <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;"> </span><span style="font-weight: 400;">engineering blog</span></a><span style="font-weight: 400;">.</span></p> <h2><strong>About the Role</strong></h2> <p><span style="font-weight: 400;">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.</span></p> <h2><strong>Responsibilities</strong></h2> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">Drive Android infrastructure projects to completion, with a tenacious focus on the business and developer productivity impact of those projects.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Work closely with Android engineers, the design systems team, and other infrastructure teams to gather feedback, prioritize projects, and deliver solutions.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Explore new frameworks and processes while also being able to discuss when (or when not) to use them.</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;">Mentor a growing team of engineers on Android best-practices and standards.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Participate in a culture that values thoughtful code reviews and frequent deploys.</span></li> </ul> <h2><strong>Must-Have Qualifications&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;">Passionate Android engineer who is an expert in building, testing, releasing and maintaining Android applications</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">History of shipping consumer-focused apps that users love on the Play Store, you can show what you’ve owned</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Excited by the potential of mobile technology to transform the lives of small businesses around the country</span></li> </ul> <h2><strong>Nice-to-Have Qualifications</strong></h2> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">Experience with </span><span style="font-weight: 400;">Kotlin</span><span style="font-weight: 400;"> and popular 3rd party libraries, frameworks, and services like RxJava, </span><span style="font-weight: 400;">Kotlin</span><span style="font-weight: 400;"> Coroutines, Jetpack Compose, Retrofit, Dagger, and Crashlytics; including when not to use one</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Deep knowledge of Android build tools (Gradle, release signing, etc)</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Great communicator; we find that people who are good writers tend to be great thinkers and great coders</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">You’re </span><span style="font-weight: 400;">data</span><span style="font-weight: 400;">-driven and dedicated to thorough testing to maintain high-quality software</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*. When it is safe to gather, we will begin to host in-person events on a regular basis. Remote employees will be expected to travel occasionally for these events to a Thumbtack library or offsite team-building location. In cities with 5+ employees, we are establishing local communities, where employees can gather for local events. Additionally, employees in the San Francisco, Salt Lake City, Toronto and Manila areas will have opt-in access to communal workspace at one of our Thumbtack libraries. We always prioritize the health and safety of our employees. Currently, participation in these events and Thumbtack library use are optional. Both require employees to be fully vaccinated.</span></p> <p><span style="font-weight: 400;">#LI-Remote</span></p><div class="content-conclusion"><div class="p-rich_text_section">&nbsp;</div> <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 data-stringify-indent="0" data-stringify-border="0">Virtual-first working model coupled with quarterly in-person events and Camp Thumbtack</li> <li data-stringify-indent="0" data-stringify-border="0">20+ company-wide holidays including two week-long shutdowns</li> <li data-stringify-indent="0" data-stringify-border="0">Libraries (collaborative workspaces) in San Francisco, Salt Lake City, Toronto, and Manila</li> <li data-stringify-indent="0" data-stringify-border="0">Stipends for remote work support, home office set-up and internet</li> <li data-stringify-indent="0" data-stringify-border="0">Subscriptions and Employee Assistance Program for mental health and well-being</li> <li data-stringify-indent="0" data-stringify-border="0">Cell Phone Reimbursement, Thumbtack services (North America only)</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. 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;">.&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> <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">*Currently, Thumbtackers can live anywhere in Ontario or British Columbia, Canada or the Philippines or in any of the following US states: AZ, CA, CO, CT, FL, GA, HI, ID, IL, IN, KS, KY, MD, MA, MI, MN, MO, NE, NV, NH, NJ, NM, NY, NC, OH, OK, OR, PA, SC, TN, TX, UT, VA, WA, WI, Washington DC. Our long term vision is to hire across all of the United States and Canada, but this expansion will take a few years.</h5></div>
Senior iOS Engineer, Native Infrastru...
, 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 Application Infrastructure Team</strong></h2> <p><span style="font-weight: 400;">The Application Infrastructure team works to improve developer productivity and product quality at Thumbtack. We collaborate regularly with engineering and the design systems teams to deliver the tools and frameworks that make it easy for our engineers to create user experiences that are accessible, performant, and secure.</span></p> <p><span style="font-weight: 400;"><br></span><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><span style="font-weight: 400;">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.</span></p> <h2><strong>Responsibilities</strong></h2> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">Drive iOS infrastructure projects to completion, with a tenacious focus on the business and developer productivity impact of those projects.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Work closely with iOS engineers, the design systems team, and other infrastructure teams to gather feedback, prioritize projects, and deliver solutions.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Explore new frameworks and processes while also being able to discuss when (or when not) to use them.</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;">Mentor a growing team of engineers on iOS best-practices and standards.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Participate in a culture that values thoughtful code reviews and frequent deploys.</span></li> </ul> <h2><strong>Must-Have Qualifications</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 style="font-weight: 400;"><span style="font-weight: 400;">Passionate iOS engineer who is an expert in&nbsp; building, testing, releasing, and maintaining applications in either Swift or Objective C</span></li> <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;">History of shipping consumer-focused apps that users love on the App Store, you can show what you’ve owned</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Excited by the potential of mobile technology to transform the lives of small businesses around the country</span></li> </ul> <h2><strong>Nice-to-Have&nbsp;Qualifications</strong></h2> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">Experience with libraries, frameworks, and services like Core Data, AFNetworking, Xcode UI Testing, Crashlytics, Firebase, and Apollo (GraphQL)&nbsp;</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Deep knowledge of the xcode build system (xcconfig files, code signing, etc.)&nbsp;</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Experience with build systems like Jenkins, Github Actions, etc.&nbsp;</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Great communicator; we find that people who are good writers tend to be great thinkers and great coders</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">You’re data-­driven and dedicated to thorough testing to maintain high-­quality software</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, Ontario, or the Philippines. When it is safe to gather, we will begin to host in-person events on a regular basis. Remote employees will be expected to travel occasionally for these events to a Thumbtack library or offsite team-building location. In cities with 5+ employees, we are establishing local communities, where employees can gather for local events. Additionally, employees in the San Francisco, Salt Lake City, Toronto, and Manila areas will have opt-in access to communal workspace at one of our Thumbtack libraries. We always prioritize the health and safety of our employees. Currently, participation in these events and Thumbtack library use are optional. Both require employees to be fully vaccinated.</span></p> <p><span style="font-weight: 400;">#LI-Remote</span></p><div class="content-conclusion"><div class="p-rich_text_section">&nbsp;</div> <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 data-stringify-indent="0" data-stringify-border="0">Virtual-first working model coupled with quarterly in-person events and Camp Thumbtack</li> <li data-stringify-indent="0" data-stringify-border="0">20+ company-wide holidays including two week-long shutdowns</li> <li data-stringify-indent="0" data-stringify-border="0">Libraries (collaborative workspaces) in San Francisco, Salt Lake City, Toronto, and Manila</li> <li data-stringify-indent="0" data-stringify-border="0">Stipends for remote work support, home office set-up and internet</li> <li data-stringify-indent="0" data-stringify-border="0">Subscriptions and Employee Assistance Program for mental health and well-being</li> <li data-stringify-indent="0" data-stringify-border="0">Cell Phone Reimbursement, Thumbtack services (North America only)</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. 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;">.&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> <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">*Currently, Thumbtackers can live anywhere in Ontario or British Columbia, Canada or the Philippines or in any of the following US states: AZ, CA, CO, CT, FL, GA, HI, ID, IL, IN, KS, KY, MD, MA, MI, MN, MO, NE, NV, NH, NJ, NM, NY, NC, OH, OK, OR, PA, SC, TN, TX, UT, VA, WA, WI, Washington DC. Our long term vision is to hire across all of the United States and Canada, but this expansion will take a few years.</h5></div>
Senior iOS Engineer, Native Infrastru...
, 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 Application Infrastructure Team</strong></h2> <p><span style="font-weight: 400;">The Application Infrastructure team works to improve developer productivity and product quality at Thumbtack. We collaborate regularly with engineering and the design systems teams to deliver the tools and frameworks that make it easy for our engineers to create user experiences that are accessible, performant, and secure.</span></p> <p><span style="font-weight: 400;"><br></span><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><span style="font-weight: 400;">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.</span></p> <h2><strong>Responsibilities</strong></h2> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">Drive iOS infrastructure projects to completion, with a tenacious focus on the business and developer productivity impact of those projects.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Work closely with iOS engineers, the design systems team, and other infrastructure teams to gather feedback, prioritize projects, and deliver solutions.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Explore new frameworks and processes while also being able to discuss when (or when not) to use them.</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;">Mentor a growing team of engineers on iOS best-practices and standards.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Participate in a culture that values thoughtful code reviews and frequent deploys.</span></li> </ul> <h2><strong>Must-Have Qualifications</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 style="font-weight: 400;"><span style="font-weight: 400;">Passionate iOS engineer who is an expert in&nbsp; building, testing, releasing, and maintaining applications in either Swift or Objective C</span></li> <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;">History of shipping consumer-focused apps that users love on the App Store, you can show what you’ve owned</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Excited by the potential of mobile technology to transform the lives of small businesses around the country</span></li> </ul> <h2><strong>Nice-to-Have&nbsp;Qualifications</strong></h2> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">Experience with libraries, frameworks, and services like Core Data, AFNetworking, Xcode UI Testing, Crashlytics, Firebase, and Apollo (GraphQL)&nbsp;</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Deep knowledge of the xcode build system (xcconfig files, code signing, etc.)&nbsp;</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Experience with build systems like Jenkins, Github Actions, etc.&nbsp;</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Great communicator; we find that people who are good writers tend to be great thinkers and great coders</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">You’re data-­driven and dedicated to thorough testing to maintain high-­quality software</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, Ontario, or the Philippines. When it is safe to gather, we will begin to host in-person events on a regular basis. Remote employees will be expected to travel occasionally for these events to a Thumbtack library or offsite team-building location. In cities with 5+ employees, we are establishing local communities, where employees can gather for local events. Additionally, employees in the San Francisco, Salt Lake City, Toronto, and Manila areas will have opt-in access to communal workspace at one of our Thumbtack libraries. We always prioritize the health and safety of our employees. Currently, participation in these events and Thumbtack library use are optional. Both require employees to be fully vaccinated.</span></p> <p><span style="font-weight: 400;">#LI-Remote</span></p><div class="content-conclusion"><div class="p-rich_text_section">&nbsp;</div> <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 data-stringify-indent="0" data-stringify-border="0">Virtual-first working model coupled with quarterly in-person events and Camp Thumbtack</li> <li data-stringify-indent="0" data-stringify-border="0">20+ company-wide holidays including two week-long shutdowns</li> <li data-stringify-indent="0" data-stringify-border="0">Libraries (collaborative workspaces) in San Francisco, Salt Lake City, Toronto, and Manila</li> <li data-stringify-indent="0" data-stringify-border="0">Stipends for remote work support, home office set-up and internet</li> <li data-stringify-indent="0" data-stringify-border="0">Subscriptions and Employee Assistance Program for mental health and well-being</li> <li data-stringify-indent="0" data-stringify-border="0">Cell Phone Reimbursement, Thumbtack services (North America only)</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. 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;">.&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> <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">*Currently, Thumbtackers can live anywhere in Ontario or British Columbia, Canada or the Philippines or in any of the following US states: AZ, CA, CO, CT, FL, GA, HI, ID, IL, IN, KS, KY, MD, MA, MI, MN, MO, NE, NV, NH, NJ, NM, NY, NC, OH, OK, OR, PA, SC, TN, TX, UT, VA, WA, WI, Washington DC. Our long term vision is to hire across all of the United States and Canada, but this expansion will take a few years.</h5></div>
Verified by
Infra & Data Eng Manager
Senior Technical Sourcer
You may also like