Category Archives: Coding

Today I Deleted My LinkedIn Account; You Probably Should Too

(Please note corrections after the post)

Today I will delete my LinkedIn account.  I say I will instead of I have because I do not know how LinkedIn’s account settings work; deleting my account may require substantial effort on my part, it may not even be possible at all.  The fact that I have no idea how my account works on LinkedIn should tell you two things: first, that the web services’ account persistence schemas are incredibly dense and durable, and second, that I have never so much as poked around my LinkedIn account.  The first part is generally interesting, and extremely important on a blog like this.  Why and how web apps choose to persist user data is in many ways the essence, or at least an exemplar, of big data and analytics.  It deserves its own blog post, and it will only be addressed here as it connects to the second item: my particular experience with LinkedIn, and why it convinced me to delete my account.

To begin, some statistics:
As of this post, LinkedIn claimed to have over 225 million registered members.  That’s a lot of people. For context, Instagram claims around 100 million users, and world-heavyweight Facebook tops the chart at over 1 billion users.  For those of you keeping score at home:

  • Facebook > 1,000,000,000
  • LinkedIn > 225,000,000
  • Instagram > 100,000,000

That kind of feels right, but something is off.  Facebook is so massive that it distorts just about every metric it touches. It just does.  But the amount of email spam I get from LinkedIn feels MUCH higher than the Facebook flood.  Without thinking too hard about it, there are a few obvious reasons for the disparity.

First, I hate LinkedIn emails.  Seriously, they are by far the most annoying spam I get from a serious organization.  Why is that? Well, for starters, LinkedIn had the terrible idea to route their spam through user email addresses.  Seriously, go check your inbox for an “Invitation to connect on LinkedIn”.  They don’t come from *, which THEY ABSOLUTELY SHOULD.  To be clear, LinkedIn asked for – and received – my permission to use my email address this way.  Users – myself included – SUCK at managing 3rd party login permissions.  A quick scan of my Google account reveals that I have granted access to 49 different websites.  AND I HAVE NO IDEA WHAT MOST OF THEM ARE, OR WHAT PERMISSIONS I GAVE THEM.  Worse, I am a (new) web developer, so I have at least a basic understanding of how these authentication systems work.  If you’re like most people, the idea that you would voluntarily give a third party control of your Gmail makes no intuitive sense.  It’s your gmail, why would LinkedIn be sending emails from  Even worse, if you are a normal person, you probably don’t even have the vocabulary available to ask that question.  Go ahead, try to find your Google account’s permissions. I’ll wait here.  When you give up, you can click here for instructions.

The point isn’t to beat up on Google, or make fun of the average user.  Facebook’s API’s are in some way more invasive than Google’s, or at least, they hold the potential for equally bad abuse by malicious users, and I think software should be targeted to the average “normal” user.  (In fact, I so strongly believe this that I was apparently the only person on Facebook or HackerNews who thought this article was 100% dead-wrong.  I am in fact so opposed to this thinking that I will address it in a dedicated blog post, but let me be clear: abstraction and specialization are the CORRECT ways to design complex systems for common use, and I think the average user should learn as much programming as they do plumbing to fix their sink, which is to say exactly the minimum needed to keep things working for them and nothing more.)

Software that traps standard users, or invites crappy 3rd party developers to trick them is bad software.  Complexity should be abstracted away from users until normal users can reach something like the 80/20 balance – where they can get 80% of the software’s utility with 20% of a full understanding of its functioning.  For what it’s worth, that’s a really hard UX goal to reach, and I respect engineers on the front and back end enormously for the challenge they face.  But that does not mean that it is ok for Google to make it that easy for LinkedIn to email people from your email address, and it certainly does not make it ok for LinkedIn to do it!  Allocating blame is tricky here: Google is the holder of your information and manager of your identity, and so it has the final responsibility not to let spammers get access to it.  But they’ve made a tremendously powerful tool for developers available in their account API’s, and I am more upset with a social network mammoth like LinkedIn for abusing a tool like that than I am at its makers for making it available.  Exactly how you judge everyone involved is up to you, but the point is there’s something wrong.

Nailing it down: the first reason I hate LinkedIn emails so much is that they are delivered in an inherently abusive way.  They are sent through the personal email addresses of people I know, despite the fact that they are marketing emails sent from a large company.

The second reason I hate LinkedIn emails so much is that they are marketing emails for a service that I don’t use, and neither do you.  When I get a marketing email from Facebook, the odds are very good that I will intuitively understand the context surrounding it.  The emails describe an action that happened, and the people involved in that action, so that I am brought up to speed before I even click through to the website.  THIS IS A GOOD DESIGN.

Moreover, the average Facebook user is way more likely to be active than a LinkedIn user.  That means that people tend not to lurk as hard on Facebook as they do on LinkedIn.  Think about that for a second.  Sounds crazy right?  Since both companies are publicly traded, you don’t have to take my word for it:

For the quarter ending June 2013, Facebook reported 1,155,000,000 monthly active users.  Calling their original registration numbers ~ 1,300,000,000 which is generous), that means that 88% of Facebook’s users actually use the site regularly.

Compare that to LinkedIn, which claims that 170,000,000 of its 218,000,000 users logged in during the quarter ending March 2013, for a total of closer to 77%.  That number actually understates the disparity, because it just measures unique visitors.
While LinkedIn users spend an average of 8 minutes on the site daily, Facebook users hang round for over 33 minutes, or OVER HALF AN HOUR each.  In fact, LinkedIn puts this problem much better than I can:

“The number of our registered members is higher than the number of actual members and a substantial majority of our page views are generated by a minority of our members. Our business may be adversely impacted if we are unable to attract and retain additional members who actively use our services.” (source)

(traffic stats: Facebook, LinkedIn, SEC data: LinkedIn, Facebook).

The point of all this isn’t to dump on LinkedIn.  If nothing else their engineering team is absolutely amazing. The point is that they’re a company that is already starting with an unengaged userbase, which means they face a higher bar for unsolicited emails they send their users.  When LinkedIn emails me something – let alone by hijacking a user’s email address (see above) – it is not going to trigger the same easy context recall that Facebook’s or Google’s will.

People tend to intuitively sense LinkedIn’s broad-but-shallow userbase problem.  Everyone knows that everyone has a LinkedIn profile, but I challenge you to find three friends who use theirs actively.  Now try it with Facebook.  Until today I had never read the statistics I linked to above, but it just feels obvious when you read your LinkedIn mail that it isn’t being generated by eager friends trying to network.  LinkedIn should not be sending annoying emails like that.  The company is facing pressure because the average user is turned off from deep engagement.  But the way to fix that absolutely IS NOT to spam them, which makes people even more leery, and irritated with your service.  

What all of this means is that LinkedIn faces a serious challenge in a crappy environment.  I don’t envy them.  Overall, there are a small number of very good reasons for me to get rid of my account, which I’ve discussed above.  They more or less boil down to this: I find the user experience annoying and intrusive.  But the real problem with LinkedIn is not that it’s kind of annoying.  There are lots of kind of annoying services that I continue to use, and will continue to use as long as they provide me with something of value.  The real problem with LinkedIn is that it does nothing useful for me.  Nothing.  In fact, aside from generating a boatload of spam, I can’t tell how exactly LinkedIn is even supposed to impact my life.  I know I’m supposed to “network” with it, but I already “network” with Facebook, and Twitter, and beer.

Maybe some people are finding hot job leads through LinkedIn and I’m just missing the party.  That sounds facetious, but the truth is I am willing to believe that I’m just not getting the full value out of this tool.  The problem is I am not willing to put in a substantial investment in learning how to use it (like I said, 80/20) without a decent value proposition ahead of time.  I’d rather spend my time learning Javascript, or blogging.  Useful career tips or leads tend to come from real friends of mine, who I tend to interact with in person or on real social media.  LinkedIn seems just a touch too tone-deaf to be useful for building real career networks for me for now.  The fact that they operate as a borderline spam factory would be bad for any service that I wasn’t completely sold on.  The fact that it’s one struggling with bored users and a weird image makes it downright toxic.  So for now, goodbye LinkedIn, maybe we’ll connect again in the future.


I have officially shut down my LinkedIn account.  To their credit, “closing” my account was relatively simple.  An odd coda for a pecuilar performance.  If I ever make a new account with LinkedIn, I will be sure to post my experiences.



After publishing this post on Monday a few readers took me up on my advice to:

go check your inbox for an “Invitation to connect on LinkedIn”

and called me out because I MADE A MISTAKE.  It turns out I made a technical error, and I’m extremely grateful some readers took the time to point it out, so here are corrections:

I had contended

  1. 1) that LinkedIn is engaged in a spammy practice of sending messages pretending to be from a user when in fact they are from the service itself and
  2. 2) that Google had enabled this bad behavior by making it possible to send email through users’ Gmail accounts.

The first point IS TRUE.  LinkedIn has engaged in the practice of sending users email that purports to be from other users, instead of from them.  Here is a screenshot of one such email as recently as 2012.  But it looks like LinkedIn has made the decision to move away from this route, at least for some of their emails.  This is a good thing.

As some readers pointed out, what they were doing was probably meant with good intentions, but the fact is that they were spoofing, using the same technique that spammers and phishing attacks use to trick users.  The good news is that LinkedIn is (I assume) not trying to steal anything from users.  Instead, they’re trying to sneak past your mental spam filters: when you get an email from someone you know, you’re more likely to read it than if it were from a big impersonal organization, like LinkedIn.  As far as I’m concerned then, the way they send (or apparently – sent) their emails is spammy, and should not be used by a serious organization.  This goes double for any company tha,t like LinkedIn, is literally built on the notions of professionalism and professional-communication.  It’s just wrong.  Thus, my main point remains, and I stand behind it.  With that said, I absolutely did get the technical point wrong there, and for that I apologize to anyone who I accidentally misled.

As to the second point: I have done a little more digging, and it appears that Google does not offer programmatic access to users’ email, and so as I said above, I was wrong.  But again, and this part is actually a bit more worrying, it looks like Google is still at least somewhat at fault here after all. When you spoof an email in Gmail, it usually warns the recipient about what’s happening.  So for example if I did what LinkedIn does, and sent you an email pretending to be from your own account, you’d get a big flag when you read the message, alerting you to the fact that it was not from you, that it was fraudulent.

Gmail does not raise these alerts for LinkedIn messages, which is presumably a choice Google made, to permit them to pass through as if they were real.  (If I am wrong on this point I invite anyone from Google to comment, or send me an email.)  If this is true, then it’s actually more of a problem than my original accusation.  In the post, I argued that Google had exposed users to abuse by spammy organizations like LinkedIn, but that it was an open question to me whether that was an acceptable trade-off for the amazing flexibility it gave developers.  It turns out that Google DOES NOT expose users in this particular way, and so I was wrong on the technical aspect.  But the deeper point remains, and is kind of crappy – that Google permits certain users to abuse their email system to the detriment of users.

Anyhow, read it and make a decision for yourself about whether LinkedIn is a good system to be plugged into.  I said my piece, and I stand behind it.  Next time I’ll work on getting all the moving parts more exactly correct.


Predictive Analytics and The End of “Just Looking”

Anyone who’s spoken with me about it knows I’m a huge fan of good predictive analytics and the services built on them.  I use a machine-learning-algorithm based news reader (Prismatic) I listen to computer generated radio stations (on Spotify and Grooveshark, among others), and I let Google Now generate most of my driving directions for me.  These services yield two major benefits: first, they save me a TON of time, and second, they expose me to more content and with way greater variety than I would find on my own.  The obscure blog posts I find through Prismatic about database engines are amazing, and there isn’t a snowball’s chance in hell I would be spending my own time rooting through the dark corners of the internet for them.

The problem with these services however, is that they are extremely efficient learners. People love to hate Apple autocorrect – and I don’t blame them.  Their system is imperfect, and can be annoying or even harmful if you use it without paying attention to the output.  Don’t hit the send button immediately after sending a message to your crush or ex.  But by far my bigger worry with these systems is how quickly and how well they do learn to conform to my demands.

I find my iphone typing to be extremely accurate, given how much I write on that device and how small its virtual keyboard is.  People make typos using full sized keyboards (at least I do) that refuse to autocorrect their users, so some degree of inaccuracy is to be expected.  But my iphone comes as close to getting it as right as my laptop does, despite having a keyboard that A) doesn’t physically exist and B) is about 1/50th as big as the laptop’s.  Unfortunately, it also picks up my idiotic quirks and jokes, and assumes they are to be repeated in the future.  My repertoire is littered with garbage in real life, and my iphone reflects that.  Unfortunately, to give me maximal leverage, it offers me all these words in all situations, including MANY where they are either too casual or too awful to be used.

The problem gets far worse with services like Prismatic, which are tasked with figuring out what kinds of things I might like to read based on what I tell it I like and what it’s seen me read before.  In case I haven’t made it obvious, I love this service. LOVE it, go download it right now.  The problem in this case is not that they can’t figure out what I will look at if offered, but that they know EXACTLY what I’ll click if offered, no matter how little I actually want to read it.  Because of this, Prismatic has begun littering my stream with incendiary garbage from right wing nutjobs.

I have filters set up to catch news about Congress, the Democratic party, and all sorts of economic and political topics.  At first, these created a small trickle of crap from right wing sources, which I clicked through and read out of a mixture of fascination and curiosity.  (I am sad but not surprised to say I am no less enlightened after having read them.)  The problem is that as soon as Prismatic caught me reading a few of these, it figured out it had found my catnip, and started pushing it into my news stream at increasing rates.  The problem is that while I want lots of varied sources for my news, I have a finite amount of time, and I am unwilling to spend a lot of it filtering my already FILTERED content.  The twin joys of Prismatic are that it will search anywhere for a story I might read – and that it will discard everything I am not going to click on.  The problem is that there’s a trick-space between the two categories, and now I am stuck in the swamp of stuff I will click on but don’t want to read.

And it’s not just Prismatic, or for that matter only niche startups.  I hate buying anything on behalf of a family member on Amazon because their shopping preferences get woven into my recommended purchases pretty quickly.  This problem got even worse after a night browsing exotic sex toys on Amazon, for a practical joke that was never fulfilled (for a college friend – NOT a family member).  Problem is that although I abandoned the joke Amazon still thinks I might be interested in buying something raunchy along with my Javascript textbooks (see? coders CAN have sex lives!).

I see the same annoying problem in my Facebook feed – clicking on an annoying friend’s post to see what they’re talking about tells Facebook not that I want to see it but that I WILL engage the content if it’s put in front of me, and so they start shoveling more of it my way. This process can be managed, at least to some extent,  by pruning my newsfeed, and selectively telling Facebook what I don’t want to see.  The same is true of my Amazon account, Prismatic, and I’m guessing my iphone suggestions dictionary too.  But doing so robs these services of the advantages I wanted from them in the first place, which sucks.

I *could* spend time managing my iphone dictionary, but then I wouldn’t end up saving time typing.

I *could* trim everything I don’t want to see in my Prismatic, but if I force the feed to conform to my expectations it will stop giving me the good surprises (obscure coding posts etc).

I *could* tell Facebook every time I see something I don’t want to read, but that would make my social network a CHORE rather than an entertainment, and I don’t want more work from a hobby.

The problem with super sensitive learning tools like these systems is that they eventually push me to censor my electronic activities, because I know that they will be added to my suggestion algorithms, and that I will either have to put in lots of work later to fix them or deal with degraded services. Instead, I end up limiting my engagement ahead of time, to make sure that my electronic servants know a consistent, vanilla version of myself, and that they focus their efforts on serving him. Because my computers know me so well, and because they are by definition shameless (gmail has a fascinating sort-of counterexample) I can’t go around “just looking” like I can at a human run establishment, for example.  Imagine if every time you went to Old Navy someone came up to you with a pink thong and said “you looked at the ugly polka dot shirt last time you were here, maybe you’ll like this too!”.  Or if at a restaurant your waiter greeted you and a date with “Hey fatty – you want me to get you the quadruple cheeseburger with extra lard again?”.

Humans have in this case a useful combination of incompetence and emotional sensitivity that mostly keeps them from embarrassing us that way.  A mall employee can’t usefully track everyone in the building and every store they’ve gone to, and everything they’ve looked at there.  Google can.  Facebook can.  And it’s not just on their sites.  When you browse the internet logged into Facebook, every time you land on a page with a “Like us on Facebook!” button or the option to log into a service through Facebook (which – for the record – I use all the time) those trigger little programs that report your presence there to Facebook.  Keep an eye out for social icons next time you’re looking for porn frying pans online and you don’t want to be noticed.

The good news is that there’s a decent chance that as analytics engines get even better, services will begin including sensitivity training in them, to avoid embarrassing or inconveniencing us this way.  The really bad news is that all this really means is that invasive web services will be made less noticeable and annoying, NOT that they will stop watching us.  I’m not Amazon, but I’d bet that if I was I would be giddy every time a user told me to ignore something I had been looking at before, because it’s a far richer source of information than is the fact that I landed on that page.  Now Amazon knows not just what I looked at but how I want to be seen, or at least treated.  Same for Facebook, Google, etc.

To be clear, this isn’t a condemnation per-se.  Web services watch and collect this information because it does make them more attractive for users like me, and I am generally pleased by the level of service I get in return (for free usually).  The problem is it means they are strongly disincentivized from ignoring any useful information about me that they find, and doubly so for information I tell them not to pay attention to.

One sort of exception to this is Apple, which seems to have made their enhanced privacy offerings a point of differentiation from their competitors.  So for instance Apple is fighting to protect various privacy standards (as is Mozilla – to their credit).  But Apple is fundamentally a premium company, and they don’t compete in most areas with for-free services like Facebook and Google.  Moreover, the model of paying for expensive, high quality web products makes no sense in 2013, when the vast majority of dominant web technologies are available to users at zero cost and with insanely high quality.  There already exist for-pay social networks, and you’d have to threaten me with physical harm to get me to switch from Facebook to one of those.

What this means is that anyone wanting to use certain features of the modern tech world without undue attention will have to do so conscientiously and with some effort.  There simply is no replacement for the services I want and expect as part of the modern web that will give me free access without the annoying data-mining.  For me, being able to use Gmail, Facebook, Amazon, Prismatic etc is worth the trade-off.  No questions asked, I’d rather figure out how to get along with free tech than live without it.  The downside of this all is that for me, and for anyone else who wants to do the same, for now and for the foreseeable future there is no such thing as “I’m just looking”.