By: Kevin Beaulieu

Photo by William Iven on Unsplash

What is a “native design system”?

“Native design system” can be broken up into two parts: “native” and “design system.” Starting with the latter, a design system is a collection of reusable components, tokens, and other design standards that can be used by both designers, to guide their work, and software engineers, to speed up the process of implementing UIs. A native design system is specifically a design system built for native iOS & Android apps. In the case of Thumbtack’s design system, Thumbprint, our native design system shares much of its content with its web counterpart, but there are native-specific concerns factored in as well.

Why now?


By: Brian Terczynski

Photo by Markus Spiske on Unsplash

Automated testing is an important part of software development. Developers should always write tests for the code they produce. This not only ensures that their code is correct, but will also help catch any future regressions as the codebase evolves.

Unfortunately, developers do not always do a good job of this. Often, they will only write tests for simple, happy-path cases. They will not cover edge cases, error cases or even different branches in the code. There are even times when developers do not write tests at all.

Code Coverage Reports

One way to catch insufficient testing is with code coverage reports. Code…


By: Mark Andrew Yao

Photo by Tomasz Frankowski on Unsplash

Thumbtack helps customers search for the right local professionals to get projects done. Our search product collects project details from customers and matches them against preferences from professionals. Afterwards, our ranking algorithm displays the professionals most likely to result in a job well done. We tackle the search ranking problem by scoring professionals that match the customer’s requirements and then sorting them by score. Earlier this year, we changed our search ranking algorithm from a heuristic scoring system to a machine learning (ML) based scoring system. This change was very challenging but impactful. …


By: Scott Southerland

Photo by Anandan Anandan on Unsplash

For iOS developers, avoiding retain cycles is one of those things that is conceptually easy but can be deceptively subtle in practice. For the uninitiated, Swift manages memory by checking how many objects reference a given variable. When all references to an object are removed, the object can be deallocated. You can however mark a variable as “weak” to say that you want to reference that object, but you don’t explicitly need it to stick around. Weak variables also have a nice property, in that when the object they refer to is deallocated, the variable automatically becomes nil. Using weak…


By: Will Mee

Photo by Tim Trad on Unsplash

I’m a new Thumbtack engineer, but I’m not new to engineering. I joined Thumbtack 4 months ago from a much larger tech company: one that has well over 20,000 engineers and a very strong engineering culture, one whose services you likely use daily.

Thumbtack’s got a strong engineering base too: in things like peer code, code best practices, design reviews, continuous integration and monitoring. Engineering discussions here are ongoing amongst a highly engaged group of engineers and managers. And while most of the systems here were new to me, the services they are providing are very familiar. The first months…


By: Bianca Gandolfo

I’ve been a Jill of just one trade for my entire career. Just one programming language, that is. I chose JavaScript — or, well — maybe it chose me. I have a certain attachment, like a child to their favorite toy. Is it real or is it Stockholm syndrome? I’m not always sure.

I do know that learning JavaScript in 2012 changed my life in significant ways. Software engineering gave me a certain confidence that I could do hard things. It’s funny that when I think about who I am, JavaScript always comes up. …


By: Xing Chen

Photo by Taylor on Unsplash

When I joined Thumbtack four years ago, the team was 25 engineers, and was completely flat. No managers, job levels or titles — everyone was a “Software Engineer”. This worked well for a small startup, but we always knew it had to evolve. Over the next three years, as we scaled to nearly 150 engineers, one of our perennial debates centered around when to introduce a job ladder with levels.

There were strong reasons on both sides of the debate. We heard from some engineers that they wanted a structured career ladder, which would bring transparency and a clear roadmap…


By: Efe Karasabun

As we keep growing at Thumbtack, we continue to invest in our infrastructure and developer experience. In order to move faster and in a more consistent manner across our customer and pro clients, our engineering team has decided to build a GraphQL based API server.

In this blog post, I will talk about the benefits of using GraphQL in general and on Android, and how it ties with our Android development workflow at Thumbtack.

Why GraphQL?

GraphQL gives clients the power to explicitly request the data that they support and require. This helps to solve the over-fetching and under-fetching problems that usually…


By: Mariano Simone

When official Android support for Kotlin was announced on May 2017, I got really excited. Don’t get me wrong, I love Java: it was the first language I used professionally, and it has a very strong community, a myriad libraries to use, and some of the best tooling out there. However… it also has its problems: it’s verbose, until the latest versions didn’t have a nice way to deal with optional or nullable values, and a lot of its progress gets slowed down by backwards compatibility with decisions made two decades ago. Kotlin came as a breath of fresh air.

Thumbtack’s transition strategy


By: Wynn Ahn

Photo by Pietro Jeng on Unsplash

Data Science is often labeled as one of the sexiest jobs of the 21st century . But it is really hard to find the right sexy data science job.

More and more companies are trying to collect tons of data on pretty much anything they do and try to hire data scientists in hopes of creating value from this data. But companies are all at different stages of data science capabilities and have different expectations of what data scientists should do. So it is very hard for data scientists to choose the right company for their ideal job.

The data…

Thumbtack Engineering

We're the builders behind Thumbtack - an online marketplace that matches customers with local professionals to accomplish their projects.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store