<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Thumbtack Engineering Blog - Latest Comments</title><link>http://thumbtackengineering.disqus.com/</link><description></description><atom:link href="https://thumbtackengineering.disqus.com/comments.rss" rel="self"></atom:link><language>en</language><lastBuildDate>Mon, 11 Jul 2016 10:57:50 -0000</lastBuildDate><item><title>Re: A Data-Driven Approach to Improving our Customer-Professional Matching</title><link>https://www.thumbtack.com/engineering/data-driven-approach-improving-customer-professional-matching/#comment-2777059227</link><description>&lt;p&gt;As a vendor, it has never been the number of quotes we receive, but always about the quality of the leads.  If a request has more than 1-I don't know, it's an automatic rejection because they are doing an impulse request &amp;amp; have not given any thought to the parameters of their need.  Thumbtack has failed miserably in reducing stupid requests or requests from stupid people (hard to ascertain which we are dealing with).&lt;/p&gt;&lt;p&gt;As a vendor, I have repeatedly attempted to get actionable information generated by the client questionnaire process.  Relying on emails &amp;amp; direct contact with Thumbtack reps who "take my suggestions under advisement" has been totally ineffective.  We expect a 2-8% response rate on requests generated by on-line referral services.  Thumbtack's response rate is currently under  .01% for those leads which we view as rational requests.  If we were to include those leads we receive which are filled with "I don't know" responses or those requiring vehicles not in our fleet, the response rate drops to .0001%.  Hardly worth our time to even view.&lt;/p&gt;&lt;p&gt;No one seems to understand, nor care, there is no "1 size fits all" questionnaire that will supply the correct information needed by vendors in different industries, in order to deliver a viable quote.&lt;/p&gt;&lt;p&gt;The transportation industry requires several specifics in order to determine the viability of a request.&lt;br&gt;1.  A beginning location &amp;amp; an ending location&lt;br&gt; Inadequate addresses means we are unable to figure transit time which impacts the quote.&lt;br&gt;2.  A specific time frame with a minimum time requirement&lt;br&gt;Inadequate info time-wise means we are unable to quote.  Every vehicle in our fleet has a minimum time frame.  For someone to request a 1 or 2 hour trip is an automatic rejection &amp;amp; tells us they are ignorant or cost sensitive, thus not worth quoting.&lt;br&gt;3.  A specific head count (or range) in order to quote&lt;br&gt;Vehicles in a fleet &amp;amp; federal regulations determine viable client requests.  Unless a head count is delivered in a specific way, we are prevented from delivering a quotation. Multiple times, Thumbtack repeatedly has been urged to change categories:   1-4 people, 5-9 people, 10-14 people, 15-24, 24+&lt;br&gt;These categories actually match the industries fleet offerings &amp;amp; would guarantee we don't quote on requests we are not legally equipped to service.&lt;br&gt;4.  A means of clarifying inadequate info without being charged for a lead.&lt;br&gt;5.  Thumbtack needs to reject insufficient or inadequate responses, forcing requestors to answer all the questions. &lt;br&gt;5.  Supplying contact info for the individual in order to follow up.&lt;/p&gt;&lt;p&gt;Until the majority of these points are addressed by Thumbtack, vendors will continue to receive &amp;amp; reject requests.  We will not pay for leads which don't fulfill the requirements we need for viable information &amp;amp; will continue to "Trash" those crappy leads.  &lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jim Griffin</dc:creator><pubDate>Mon, 11 Jul 2016 10:57:50 -0000</pubDate></item><item><title>Re: When Randomization Is Not Enough: Improving Sample Balance in Online A/B Tests</title><link>https://www.thumbtack.com/engineering/repeated-rerandomization/#comment-2101792721</link><description>&lt;p&gt;In a nutshell, are you proposing that: (1) You have prior information about how various segments of your visitors perform on a given metric. (2) You run an A/B test normally. (3) Check to see if the Control and Test groups are randomized with respect to some key segments. (4) If there are imbalances in the randomization, you adjust for it. Do you propose to adjust results of the test using the information you have about the baseline performance of the segments? Is this what you mean by "when each user interacts repeatedly with our site, we can proactively seek to balance out users based on historical data." Why "repeatedly"? (In the context of a conversion, I assume a user interacts just once, and the result is a pass or fail)&lt;/p&gt;&lt;p&gt;In your simulations, I'm not clear on when "rerandomization" happens. Do you mean that you kept testing for some specific randomization scheme and eventually found one that resulted in balance ? Is that the "seed" you're referring to? Then I take it you retested it 100 times and the "after" charts are the result of that? Or did you instead run 100 tests normally and then adjust each of them based on historical data about their sub-segments, and that's what we're seeing?&lt;/p&gt;&lt;p&gt;PS. Might help to label the X axis on the charts as "confidence interval" or "effect size". Not obvious at a glance.&lt;/p&gt;&lt;p&gt;Thanks.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">vladmalik</dc:creator><pubDate>Fri, 26 Jun 2015 13:41:58 -0000</pubDate></item><item><title>Re: Interviewing for Female Friendliness: Tips from an Engineer</title><link>http://www.thumbtack.com/engineering/interviewing-for-female-friendliness/#comment-1678589947</link><description>&lt;p&gt;Thank you so much!&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Katie Thomas</dc:creator><pubDate>Wed, 05 Nov 2014 16:39:24 -0000</pubDate></item><item><title>Re: Interviewing for Female Friendliness: Tips from an Engineer</title><link>http://www.thumbtack.com/engineering/interviewing-for-female-friendliness/#comment-1678211918</link><description>&lt;p&gt;Very Insightful, Katie! I'll be incorporating these questions into my own interview process next time I'm on the market. This is the kind of place I'd like to work.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jonah Price</dc:creator><pubDate>Wed, 05 Nov 2014 13:37:25 -0000</pubDate></item><item><title>Re: Interviewing for Female Friendliness: Tips from an Engineer</title><link>http://www.thumbtack.com/engineering/interviewing-for-female-friendliness/#comment-1677207302</link><description>&lt;p&gt;I think this post is full of thoughtful and creative ideas. Looks like Thumbtack made a great hire when they hired you!&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Christine Negroni</dc:creator><pubDate>Wed, 05 Nov 2014 01:45:53 -0000</pubDate></item><item><title>Re: Thumbtack Engineering</title><link>http://www.thumbtack.com/go-dependency-management/#comment-1642732294</link><description>&lt;p&gt;go-vendor doesn't resolve dependency versioning problem (godep, gom and many other are much better in this field)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Robert Zaremba</dc:creator><pubDate>Sat, 18 Oct 2014 18:02:34 -0000</pubDate></item><item><title>Re: Working at Thumbtack, the New Guy's Perspective</title><link>http://www.thumbtack.com/engineering/working-at-thumbtack/#comment-1466286506</link><description>&lt;p&gt;Wow this was an awesome read. Thanks Tommy!&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Omar Reeyaz Thanawalla</dc:creator><pubDate>Thu, 03 Jul 2014 02:29:05 -0000</pubDate></item><item><title>Re: Thumbtack Engineering</title><link>http://www.thumbtack.com/introducing-smarty/#comment-1463420403</link><description>&lt;p&gt;Building an Angular directive from scratch is also one of the best ways to truly understand how directives work.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">paulyoder</dc:creator><pubDate>Tue, 01 Jul 2014 10:42:43 -0000</pubDate></item><item><title>Re: Thumbtack Engineering</title><link>http://www.thumbtack.com/go-hercule/#comment-1461762694</link><description>&lt;p&gt;That makes sense, thank you Carl!&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexander Kojevnikov</dc:creator><pubDate>Mon, 30 Jun 2014 12:52:33 -0000</pubDate></item><item><title>Re: Thumbtack Engineering</title><link>http://www.thumbtack.com/go-hercule/#comment-1461424310</link><description>&lt;p&gt;The reason that the first argument in Go’s range syntax is the index is that &lt;code&gt;for _, b := range array&lt;/code&gt; makes a copy of b. This makes sense if you think about it, because all variables in Go are memory slots with copies of values in them, but when you already have b in an array, it doesn’t really make sense to copy it out of the array unless it’s trivially small (pointer or single simple value).&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Carlana</dc:creator><pubDate>Mon, 30 Jun 2014 08:38:54 -0000</pubDate></item><item><title>Re: Thumbtack Engineering</title><link>http://www.thumbtack.com/introducing-smarty/#comment-1460351365</link><description>&lt;p&gt;Cheers for sharing, been looking for just such an autocompleat. Interesting to see how others are solving these thing in Angular as it's still new to me.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Paul Ferguson</dc:creator><pubDate>Sun, 29 Jun 2014 11:25:00 -0000</pubDate></item><item><title>Re: Thumbtack Engineering</title><link>http://www.thumbtack.com/go-hercule/#comment-1458349951</link><description>&lt;p&gt;Thank you Tom! Regarding slice bounds, it's just slightly more verbose when you want want to limit your slice to max N elements. Instead of `array = array[:N]` you now need to write an `if`. Not a deal breaker though...&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexander Kojevnikov</dc:creator><pubDate>Fri, 27 Jun 2014 17:12:22 -0000</pubDate></item><item><title>Re: Thumbtack Engineering</title><link>http://www.thumbtack.com/go-hercule/#comment-1458311899</link><description>&lt;p&gt;Good read. This iterates over array values, ignoring the indices:&lt;br&gt;for _, b := range array&lt;/p&gt;&lt;p&gt;I too would like a ternary operator. For going off the end of an array, though, I prefer a panic since that's usually a bug that could lead to other problems.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Tom Fuller</dc:creator><pubDate>Fri, 27 Jun 2014 16:53:00 -0000</pubDate></item><item><title>Re: Thumbtack Engineering</title><link>http://www.thumbtack.com/introducing-smarty/#comment-1452598851</link><description>&lt;p&gt;I have a new moto for your company:&lt;/p&gt;&lt;p&gt;"not invented here" -- it's alive and kicking at thumbtack!&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">lookfirst</dc:creator><pubDate>Tue, 24 Jun 2014 18:47:08 -0000</pubDate></item><item><title>Re: Thumbtack Engineering</title><link>http://www.thumbtack.com/introducing-smarty/#comment-1452210707</link><description>&lt;p&gt;Hey lookfirst, thanks for reading!&lt;/p&gt;&lt;p&gt;We want to minimize our dependencies on third party libraries and we already use AngularJS.  We couldn't find any good implementations in Angular at the time, so we wrote our own.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Katie Thomas</dc:creator><pubDate>Tue, 24 Jun 2014 14:51:38 -0000</pubDate></item><item><title>Re: Thumbtack Engineering</title><link>http://www.thumbtack.com/introducing-smarty/#comment-1452209074</link><description>&lt;p&gt;Hey Jakub,&lt;/p&gt;&lt;p&gt;That's a good point!  Smarty was originally intended to be used &lt;br&gt;internally, and we don't use the smarty templates for php.  The shared &lt;br&gt;code is prefixed with angular (angular-smarty) which helps differentiate&lt;br&gt; it in external code.  If anyone wanted to use it and change the name &lt;br&gt;it would be easy for them to do so.&lt;/p&gt;&lt;p&gt;Katie&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Katie Thomas</dc:creator><pubDate>Tue, 24 Jun 2014 14:50:38 -0000</pubDate></item><item><title>Re: Thumbtack Engineering</title><link>http://www.thumbtack.com/introducing-smarty/#comment-1446438876</link><description>&lt;p&gt;Agreed, when I first saw it, that's what I thought of first. &lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">codedungeon</dc:creator><pubDate>Fri, 20 Jun 2014 18:15:21 -0000</pubDate></item><item><title>Re: Thumbtack Engineering</title><link>http://www.thumbtack.com/introducing-smarty/#comment-1440982896</link><description>&lt;p&gt;Smarty is probably not a good name, there are already smarty templates for php.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jakub T. Jankiewicz</dc:creator><pubDate>Wed, 18 Jun 2014 04:07:58 -0000</pubDate></item><item><title>Re: Thumbtack Engineering</title><link>http://www.thumbtack.com/introducing-smarty/#comment-1440226744</link><description>&lt;p&gt;Shrug, why not just wrap twitter typeahead and save yourself some coding time? It's a trivial amount of code to do so.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">lookfirst</dc:creator><pubDate>Tue, 17 Jun 2014 19:17:47 -0000</pubDate></item><item><title>Re: Thumbtack Engineering</title><link>http://www.thumbtack.com/makefiles-for-less-and-css/#comment-1371382054</link><description>&lt;p&gt;My compiler compiles 50,000 lines in half a second.  My AOT code is 50,000 lines and my JIT code is 50,000 lines.  I compile everything, all the time.  I have a script that checks document jump-to-links that takes a long time to run.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Terrence Andrew Davis</dc:creator><pubDate>Mon, 05 May 2014 23:31:29 -0000</pubDate></item><item><title>Re: Food rules for startups: eight delicious ways to build a better company</title><link>http://www.thumbtack.com/engineering/food-rules-for-startups/#comment-979445661</link><description>&lt;p&gt;I used to cook in our startup a while ago. The CEO didn't approve of that :-)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">mjankowski_XXX</dc:creator><pubDate>Sun, 28 Jul 2013 17:05:59 -0000</pubDate></item><item><title>Re: Food rules for startups: eight delicious ways to build a better company</title><link>http://www.thumbtack.com/engineering/food-rules-for-startups/#comment-919588790</link><description>&lt;p&gt;This was a great article and an innovate way for companies to build better relationship with their team and not just an "employee" relationship. Most companies who are not creating the opportunity for communication will lose out on the insight of employees to present new and innovative ideas that can improve sales, branding, products and productivity in the I. Which results in more revenue.  What is your company really doing to welcome innovation and creativity in your organization? I've worked with companies who have missed the boat to obtain additional revenue streams because the idea wasn't presented by management. The competition was 10 steps ahead which resulted playing catch and being a recognized brand in the community who sought their services. Don't miss out on the forward thinkers or the team members who are not management to add value. &lt;br&gt;Great innovators are always thinking when you're not.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Kay Richardson</dc:creator><pubDate>Wed, 05 Jun 2013 06:28:34 -0000</pubDate></item><item><title>Re: The usability experts were right: 5 changes we made to increase conversion by 50%</title><link>http://www.thumbtack.com/engineering/the-usability-experts-were-right-5-changes-we-made-to-increase-conversion-by-50/#comment-711309483</link><description>&lt;p&gt;awesome blog post&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Matt Sharper</dc:creator><pubDate>Thu, 15 Nov 2012 17:57:21 -0000</pubDate></item><item><title>Re: A primer on Python decorators – Thumbtack Engineering</title><link>http://www.thumbtack.com/engineering/a-primer-on-python-decorators/#comment-558613819</link><description>&lt;p&gt;Very lucid explanation! Thanks :)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">swvist</dc:creator><pubDate>Fri, 15 Jun 2012 12:01:00 -0000</pubDate></item><item><title>Re: A primer on Python decorators – Thumbtack Engineering</title><link>http://www.thumbtack.com/engineering/a-primer-on-python-decorators/#comment-548643686</link><description>&lt;p&gt;Hi, just started learning Python at Audacity (so much fun) and found this article in Hacker Monthly. It's well above my 'pay grade' but I thought I would try some of the code anyway. Thanks for writing this article.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Mike McFarlane</dc:creator><pubDate>Wed, 06 Jun 2012 07:02:22 -0000</pubDate></item></channel></rss>