Cover photo
Bryan Kaplan
Works at ZenPurchase


Bryan Kaplan

Shared publicly  - 
Why I will not use +Instacart again

I finally gave Instacart a try for the first time last night. It has a been a horrible customer experience, and I will not use their service again.

Friday, ~19:00

The Instacart website told me I'd have my groceries within a couple of hours. Great! But before I could finish ordering, the earliest delivery time changed to this morning. There was no warning that I'd have to complete my order within n seconds to receive it same-day. sigh

I selected a 10:00–11:00 delivery this morning, so I could sleep in a little.

Saturday, ~08:15

A call woke me up to tell me that the OJ I ordered is labeled "organic" on the Instacart website, but in fact it is not organic. I told the them I don't care if it's organic, it's delicious, so just send it. (I love Evolution OJ — that stuff is so good.)

Saturday, ~10:10

My groceries arrived! They didn't come in paper bags though, which sucks because I use paper bags to collect and dispose of my recyclables, and I need to keep my supply of paper bags replenished. Instead they gave me branded fabric bags, which further sucks because it means they charged me to buy branded fabric bags, and they're just going straight into the garbage.

Saturday, ~10:12

Having bid the friendly courier farewell, I realized that the bags had no OJ in them. sigh I explicitly told the caller to include the OJ.

I rated my delivery with Instacart, and reported the missing OJ.

Saturday, ~10:20

I expected a reply along the lines of "Sorry about the oversight! Your OJ is on the way, and you can expect to receive it within 10 to 15 minutes. As a token of our apology, we've added $10 to your account balance, good for your next purchase with Instacart."

Nope, not even close. Instead I was offered free delivery on my next order. The asshole didn't create an order to even send my OJ, let alone an expedited one.

Saturday, ~11:20

After over an hour of frustrating back-and-forth with customer support, I finally had OJ scheduled to be delivered between 13:00 and 14:00. That's the same delay as if I had placed my own separate order for it. I could easily have gone to the store to get it myself many times over in that time. But the sunk cost fallacy had me determined to complete my trial evaluation of Instacart.

Saturday, ~13:40

Seventeen and two-thirds hours after placing my order with Instacart, I finally have my orange juice. It's delicious.


I was already skeptical about the value of Instacart after reading about their concealed 30% markup[0] but I thought I'd give it a shot. I thought perhaps a fast and painless grocery shopping experience might be worth it. And maybe it would, but I wouldn't know, because Instacart is neither fast nor painless.

Add a comment...

Bryan Kaplan

Shared publicly  - 
Solid financial advice for retirees, courtesy the BART advertisement installation crew:
Add a comment...

Bryan Kaplan

Shared publicly  - 
Downgrading LinkedIn: Eight Reasons Why

About a month ago, I accepted LinkedIn's offer to upgrade for free for a month. I've been using LinkedIn more and more, because its professional bent is perfect for all the professional networking I've been doing. I love that they're using node.js and HTML5, and their Android app is beautifully designed. Generally, I think they're an awesome company.

That said, now that my free month is up, the choice to downgrade is a no-brainer. I was disappointed with a variety of issues, and there's no way that I would pay for the service in its current state. Here are the details:

Issue #1: Metrics fluctuate so wildly that they're completely unreliable.

I sampled metrics from their home page 9 times over a 19-hour period. Observe these ridiculous inconsistencies:

Who's Viewed Your Profile?

Your profile has been viewed by %d people in the past %d days.
2012-04-19 01:36 (16, 7)
2012-04-19 02:34 (16, 7)
2012-04-19 05:21 (16, 7)
2012-04-19 07:35 (16, 7)
2012-04-19 10:19 (5, 3)
2012-04-19 14:00 (5, 3)
2012-04-19 15:24 (5, 3)
2012-04-19 17:35 (6, 3)
2012-04-19 20:41 (6, 3)

Why did the day-range drop from 7 to 3 suddenly!? It's impossible to build a mental graph of these numbers when the day-range is inconsistent.

You have shown up in search results %d times in the past %d days.
2012-04-19 01:36 (19, 7)
2012-04-19 02:34 (19, 7)
2012-04-19 05:21 (19, 7)
2012-04-19 07:35 (19, 7)
2012-04-19 10:19 (20, 7)
2012-04-19 14:00 (11, 3)
2012-04-19 15:24 (12, 3)
2012-04-19 17:35 (12, 3)
2012-04-19 20:41 (12, 3)

Again, the day-range dropped from 7 to 3, but notice that it happened at a different time stamp than the first example. So the inconsistencies are themselves inconsistent.

Your LinkedIn Network

%d Connections link you to %d+ professionals
2012-04-19 01:36 (160, 4942998)
2012-04-19 02:34 (160, 6517054)
2012-04-19 05:21 (160, 4942998)
2012-04-19 07:35 (160, 6517523)
2012-04-19 10:19 (161, 6526563)
2012-04-19 14:00 (161, 4939244)
2012-04-19 15:24 (162, 6524884)
2012-04-19 17:35 (162, 4935492)
2012-04-19 20:41 (162, 6525954)

I gained two new connections throughout the 19-hour period, so the left value is correct. But the value on the right is a joke. Why does it bounce up and down all the time? LinkedIn may assume that we don't really care what the actual values are, as long as we're impressed by big numbers. Some people may buy into that, but if I can't graph it then I'm certainly not going to pay for it.

%d New people in your Network since %s
2012-04-19 01:36 (14638, 'April 17')
2012-04-19 02:34 (19291, 'April 17')
2012-04-19 05:21 (14638, 'April 17')
2012-04-19 07:35 (19292, 'April 17')
2012-04-19 10:19 (19319, 'April 17')
2012-04-19 14:00 (14627, 'April 17')
2012-04-19 15:24 (19314, 'April 17')
2012-04-19 17:35 (14616, 'April 17')
2012-04-19 20:41 (28975, 'April 17')

Again, the numbers jump up and down. You might conclude that two algorithms are updating them, and one of the two is buggy. But then there's the last entry when the number nearly doubles suddenly despite the fact that no new connections had been added since over 5 hours earlier.

What a joke. And this stuff is prominently displayed on the home page! Who would pay for a service that can't even get these basic numbers correct?

Issue #2: Lack of graphs.

I want to see how my number of connections has increased over time, always up and to the right. Likewise, all these other stats should have graphs. LinkedIn does offer some graphs in the Trends panel, but they're rather crappy. There's none for how many connections I have. There is one for how many views I've gotten, but it only goes back 3 months, and has units of 1 week.

As a paying member, I'd want a graph that looks more like Google Finance, with adjustable scale. I'd also want to be able to see the number of views I got by profession, not industry, and I'd want to see how these values change over time.

Finally, I'd want these graphs to correspond to changes I made in my profile, so I can observe whether my changes were improvements or not.

Views by Geography would be cool, except the whole US is grouped together, and there's no way to zoom in. And again, there's no way to animate the map to show change over time. Lame.

Issue #3: The "Bryan’s Connections" box on my profile

On my profile, in the right bar, there's a box that lists three of my connections followed by a link to "See all Connections". These three connections seem randomly selected, but they never change. It's always the same three people. They're good people, but probably not the exact same three who I would choose if I was asked which connections I want to highlight on my profile.

Issue #4: Messaging sucks on LinkedIn.

The inbox is awkwardly separated from the outbox. Please take a hint from gmail, and thread user conversations. When I look a message I received, I should see my reply below it. Right now there's not even a link to the reply! The messages are completely detached from each other, and the whole system is difficult to use.

After sending an invitation, I want to be shown my sent invitation. Every time. I don't need to see other people I may know, because let's face it, I still don't know any of them. And that's not going to change the next time I send another invitation. Instead, show me what I just sent, so I can see my finished product. The way it works now, I need to go to "Contacts" > "Add Connections", then click on "View Sent Invitations", and then click on the invitation I just sent so I can see it. Gah.

Issue #5: LinkedIn Groups suck

Groups feel detached from the rest of the LinkedIn experience, like they're an afterthought. Why aren't they more integrated with the news feed? All I can see is when one of my connections posts to one of the groups I'm in. Of course this happens rarely, because the groups are so detached.

Group reordering sucks. The interface looks like it was built circa 1996. Click-and-drag would be nice, but hell, I'd settle for up and down arrows. And what's worse is that reordering doesn't even work; the groups are listed in some other arbitrary order.

Groups that are supposed to be hidden on my profile are visible when I view it, leading me to wonder if they're actually hidden when anyone else views it. My "Your Groups" listing page should have clear indicators of whether each group is visible on my profile or not, but it doesn't. Instead I have to go to each individual group, one at a time, and then go to "More..." > "Your Settings" and then uncheck "Display the group logo on your profile." However, clicking on "More..." gives an error "Sorry it seems there was a problem with the link you followed." To get around this, I have to click on one of the other subnav items first, such as "Members".

Issue #6: There are at least four different views of my profile, and this is confusing.

1. My vanity URL, . When I go to that page, suddenly it looks like I'm logged out of LinkedIn, as there's a link in the upper-right to "Join Today" and another link to "Sign in". WTF. Furthermore, the page has incomplete information, and my photo's gone. There's a button to "View Full Profile", and clicking it takes you away from my vanity URL.

2. The view you get after you click "View Full Profile". This is the same view as selecting "View Profile" from the Profile menu. Suddenly I'm logged in again.

3. The Edit view. For some odd reason, this is detached from the View view. It's confusing and poorly designed.

4. The really incomplete profile view, where you can't even see my last name. To get this, you need to find me in the search results. If you get this view, you won't be able to connect to me. I see this sometimes when I search for people. Of course it's easy to find their full profile, just by googling the information from their partial profile. Once you have their last name, LinkedIn offers you a Connect button. User friendly? Ha.

Issue #7: Who the hell are some of these people I'm connected to?
I want to be able to add private notes to any user. Frequently I meet someone at a meetup or a conference, and learn something about them that I'd like to remember. I have all these connections that I only spoke with for 10 minutes, and I don't really remember who they are. Let me make a private note where I met them, and what I think is interesting about them. This should be a prominent feature of the
mobile app too.

Issue #8: Lack of perks for payment
I simply don't feel like I'd get much more out of LinkedIn if I were to pay for it. Value could be added in a variety of ways. For example, it would be very nice if I was able to have multiple versions of my profile for people in different professions; the version of my profile I'd like recruiters to see is substantially different from the version I want my peers to see. Paid accounts should get bonus options like that. But all we get are some bonus metrics that are completely unreliable, and recruiter tools, which would be great if I was a recruiter, but I'm not. I haven't needed to send a single one of my free inmails during the month trial period.

In conclusion, I'll continue using LinkedIn because I do like it. I like being able to maintain professional connections in a clean, simple way. And maybe someday I'll upgrade if they can make it worth my while. But in its current state, I can't even imagine paying as little as $5/month for it.
View Bryan Kaplan's professional profile on LinkedIn. LinkedIn is the world's largest business network, helping professionals like Bryan Kaplan discover inside connections to recommended job candidat...
Add a comment...

Bryan Kaplan

Shared publicly  - 
Bret Victor's talk, Inventing on Principle, is epic. I haven't tried this software yet, and I do have some doubts about it, but the video is well worth an hour of everyone's time.
I'm blown away by this demo as much as by the talk that inspired it. Awesome work by Gabriel Florit (!/gabrielflorit)!

"Bret Victor is a genius. His recent CUSEC 2012 talk, Inventing on Principle, is one of the best talks I've ever seen. If you watch only one talk this year, make sure it's this one.

I was blown away by his 'live coding' idea, but couldn't find any actual live examples, so I put together a quick demo using d3 and Ace. I 100% totally copied Bret's idea - down to the clever book styling. Imitation is the sincerest... etc etc.

The default code is Mike Bostock's beautiful chord diagram, tweaked to fit the Twilight theme. And remember, click the pulsing red numbers!"
Add a comment...

Bryan Kaplan

Shared publicly  - 
Spread the word. Backscatter scanners are not just an expensive breach of our rights; they're also ineffective.
This video is here to demonstrate that the TSA's insistence that the nude body scanner program is effective and necessary is nothing but a fraud, just like their claims that the program is safe (ra......
Bryan Kaplan's profile photo
Update: The TSA has threatened the mainstream media not to cover this story.
Add a comment...

Bryan Kaplan

Shared publicly  - 
1000 Mbps!
We're excited to start discussions with the South Bay to bring Google Fiber there. Share this graphic to let your neighbors know the news. Learn more and sign up for updates:
Add a comment...

Bryan Kaplan

Shared publicly  - 
The stock sensors we shipped with could use an upgrade.
Your perception of reality is limited to a thin slice.

Cool chart from who says:

In the grand scheme of things, we are all pretty much deaf and blind.
Add a comment...

Bryan Kaplan

Shared publicly  - 
I only need it about once every month or two, but when I do need it, it's some of the greatest, most useful software in the world.
Add a comment...

Bryan Kaplan

Shared publicly  - 
DuckDuckHack is the brilliantly awesome future of the web.
Learn how to create plugins for DuckDuckGo through our easy to follow tutorial.
Add a comment...

Bryan Kaplan

Shared publicly  - 
I love interviews.
Jeff Atwood's puzzle: "A hundred prisoners are each locked in a room with three pirates, one of whom will walk the plank in the morning. Each prisoner has 10 bottles of wine, one of which has been poisoned; and each pirate has 12 coins, one of which is counterfeit and weighs either more or less than a genuine coin. In the room is a single switch, which the prisoner may either leave as it is, or flip. Before being led into the rooms, the prisoners are all made to wear either a red hat or a blue hat; they can see all the other prisoners' hats, but not their own. Meanwhile, a six-digit prime number of monkeys multiply until their digits reverse, then all have to get across a river using a canoe that can hold at most two monkeys at a time. But half the monkeys always lie and the other half always tell the truth. Given that the Nth prisoner knows that one of the monkeys doesn't know that a pirate doesn't know the product of two numbers between 1 and 100 without knowing that the N+1th prisoner has flipped the switch in his room or not after having determined which bottle of wine was poisoned and what color his hat is, what is the solution to this puzzle?"

Good one, Jeff, but you forgot to say that the monkeys have a flashlight and they have to cross in 17 minutes...
Add a comment...

Bryan Kaplan

Shared publicly  - 
Smartphone Feature Wishlist

Hardware kill switches for microphone and cameras: In the old days, bugs had to be covertly installed by spies. Today, we all willingly tote them with us. Frequently there is news of privacy breaches on smartphones. We should be able to glance at them and see painted red indicators (not LEDs) offering peace of mind that our smartphones are undeniably blind and deaf.

Location-based volume profiles: A phone should switch to vibrate when you enter the workplace, after you've told it where your workplace is. It should have a louder ring at your home, where it's unlikely to be in your pocket, and thus you might need to hear it from several rooms away. When you're on the go, a medium-volume ring is generally preferable, although there are certainly exceptions such as bars and clubs. If your microphone hardware kill switch is disabled, then the ambient sound level can suggest an appropriate profile selection. But whenever your location is known, it should determine your volume profile. Of course, these volume profiles need to be completely configurable.

Eye-detection for reversed auto-rotation: Auto-rotation is great, except when lying in bed. If your camera hardware kill switch is disabled, and you're looking at your smartphone, it should be able to identify your eyes, and relate their orientation to the accelerometer's orientation. Whenever your head is horizontal, auto-rotation should be reversed. That would provide the same user experience as you get when you're head is vertical.

Thicker, heavier devices: Contrary to what the mobile industry thinks, smartphones are more than fashion accessories to some of us. Those of us who believe form follows function would gladly forgo paper-thin devices in order to get large batteries that can last a week or more of heavy constant use.

Eye-tracking instead of touch-screens, and lip-reading instead of keyboards: For those of us willing to keep our cameras enabled, and who prefer nice clean screens to grubby fingerprint-smudged screens, there is eye-tracking and lip-reading. Look wherever you naturally look. Left-wink to click, right-wink to click and drag, then right-wink again to drop. Double-blink for a context menu. This needs to be fully configurable. Speech recognition is okay when the microphone's enabled, you're in a quiet place, and you have an American accent, but trained lip-reading should allow you to input words without broadcasting them to everyone else within earshot. Together, eye-tracking and lip-reading could eliminate our need to physically interact with our devices.

hosts-based app integration: This is a no-brainer that should have been done long ago. When an app is installed, it should get to add entries in the hosts file identifying its domains as ::1. Then, a local proxy should route local requests to the installed app. It's way too common that we still see a mobile web site ask us to log in and suggest that we download their mobile app, when in fact the mobile app is already installed, and we're already logged into it. Using the hosts file would provide easy system-wide coverage, and wouldn't create a security hazard as long as we're able to approve domains added, and to manually edit the hosts file.
Add a comment...
( artist, engineer, maker, hacker )
Basic Information
I build stuff.
  • ZenPurchase
    Co-Founder, 2014 - present