He Who Controls Traffic Reigns King

Note: This post was authored by Sachin Kamdar, my co-founder at Parse.ly, in 2016. It was written as CEO of the company and when he refers to “we” in the post, he is speaking about Parse.ly’s customers, most of which were independently-run top-ranked websites who were struggling to compete on the open web with the digital advertising and internet traffic duopoly held by Google and Facebook. It is hosted on my blog as an archival project for the MuckHacker group blog we started a few years back.

Last week we saw earnings reports from the two giants of the internet: Google & Facebook. Alphabet (formerly Google) beat expected earnings handily in Q3 2016 and announced a $7B buyback. Facebook did the same showing that a slowdown in user growth doesn’t equal a slowdown in revenue growth.
Continue reading He Who Controls Traffic Reigns King

The Twitter growth conundrum

Note from the future: this post written in November 2016. A lot has happened to Twitter (or, Twitter/X) since then. But, the fundamental analysis of Twitter’s growth dynamics outlined in this post continues to hold true even 8+ years later.

Twitter is the public Internet company everyone loves to hate these days. It’s not growing. No one wants to buy it. And people are genuinely confused: what, exactly, is Twitter? Is it a social network? A “micro-blogging” platform? A “live events destination”? A social data company?

Twitter 2011–2015 user growth.

I am one of Twitter’s active users, tweeting on topics such as analytics, Python programming, and the media industry, in which I work. In my day-to-day dealings with journalists, editors, social media managers, audience development folks, and others in the media industry, it’s clear Twitter has a special position among the professional class of media raconteurs.
Continue reading The Twitter growth conundrum

The value of money in a technology career

Michael O. Church wrote an essay awhile back called “Why programmers can’t make any money.” The post is no longer on his website — for some strange reason — but you can have a look at the archived version here.

If you don’t wish to read his post, this quote will give you the summary.

When the market favors it, junior engineers can be well-paid. But the artificial scarcities of closed allocation and employer hypocrisy force us into unreasonable specialization and division, making it difficult for senior engineers to advance. Engineers who add 10 times as much business value as their juniors are lucky to earn 25 percent more; they, as The Business argues, should consider themselves fortunate…!

I empathize with his thoughts, but I have struggled — for years, now — to understand the author’s conclusion.

If we want to fix this, we need to step up and manage our own affairs. We need to call “bullshit” on the hypocrisy of The Business, which demands specialization in hiring but refuses to respect it internally. We need to inflict […] artificial scarcity.

I decided to (finally) publish this response today because I have seen artificial scarcity play out in another industry; my wife is a medical doctor in the US. Are we to believe that programmers should establish artificial scarcity in the same way that doctors have — with political organizations like the American Medical Association and credentialing via something equivalent to medical school and board certification?

Continue reading The value of money in a technology career

The 3 best headphone options for programmers

Apple just announced that the headphone jack is going the way of the dodo, but as programmers, we know better. The headphone jack is our reprieve from cantankerous office banter, our salvation from your office mate’s obsession with cat videos, and our gateway to productive coding flow.

For those of us who still believe in the simplicity and beauty of the good old auxilliary audio input, here are three headphone options that I’ve field tested extensively and can vouch for quality and convenience.

Continue reading The 3 best headphone options for programmers

Simple and Universal: A History of Plain Text, and Why It Matters

My first computer did not have a web browser. But I remember using my first web browser (Mosaic) with some awe. It was the late 90’s and though the web was not nearly as beautiful or functional as it is now, it worked. It was clear — even to my young self — that there was something very special about it. The web had separated text from paper.

Mosaic wasn’t much to look at, but its potential was inspiring nonetheless.

You see, before the web, we were already exploring alternative forms of text, in the context of the “desktop publishing” revolution, whose killer app — especially in media circles — was QuarkXPress. However, even desktop publishing still had a conceptual model of printed pages of text. The “output” of desktop publishing tools was almost always a paper printer. The “publishing” part of “desktop publishing” was “printing”. QuarkXpress and Adobe InDesign fought an epic battle to determine who could generate the best-looking paper, most efficiently.
Continue reading Simple and Universal: A History of Plain Text, and Why It Matters

You won’t know it when you don’t see it

The NYTimes wrote about a study on how the Chinese government mass fabricates posts on social networks to control public opinion. The studied group is the famed “50 Cent Party” (aka 50c).

Contrary to prior findings, these researchers reveal that these posts are not meant to confront or defend the government, but instead to distract attention away from timely political issues that could result in collective social action. Specifically:

… the 50c party engages in almost no argument of any kind and is instead devoted primarily to cheerleading for the state, symbols of the regime, or the revolutionary history of the Communist Party.

I’ve always thought the best propaganda blends in so well to its surroundings as to not draw any attention. For example, we all see political campaign slogans as discrete pieces of propaganda in the wild, and we can recognize them for what they are.

When we know somewhat was made to support a political campaign, it’s easy to put on one’s own “analysis cap” and cut it down from that perspective. We can detach ourselves from the message, and thus choose not to be influenced by it.
Continue reading You won’t know it when you don’t see it

What is a muckhacker?

Historical Context: back in 2013, I registered a domain and hired a designer to work on a logo for something called MuckHacker.com. I also registered a short domain to go along with it, https://muck.cc. The main goal was to launch my own group writer blog as a way to put myself into the same mindset as the publishers we were serving as customers at Parse.ly. The topical focus was going to be media criticism. This post laid out why I picked the name “MuckHacker”. Eventually, this project became a “Custom Domain” at Medium.com. But, over time, I relocated the “MuckHacker content” that was published over the years back to this blog. All the posts from the MuckHacker group blog, which operated from 2014-2017, can be found via this post listing with the “muckhacker” tag.


Some definitions of related terms may be helpful:

  • muck, n: something sordid or corrupt
  • hack, n: a colloquial term for a writer or journalist
  • hacker, n: an enthusiastic or skillful computer programmer, often associated with the Free Software movement
  • hacker, n: someone who seeks and exploits weaknesses in a computer system or computer network
  • muck, v: to mishandle or spoil something
  • hack, v: to cut with rough or heavy blows
  • muckraker, n: a writer who investigates and publishes truthful reports to perform an auditing or watchdog function

Continue reading What is a muckhacker?

The media and “objectivity”

Chomsky — the same one behind “Manufacturing Consent”, an excellent analysis of newspaper and TV journalism in the pre-Internet era — walks us through a structural analysis of modern media here:

There is a concept of “objectivity” to which journalists are supposed to adhere: report honestly what is “within the Beltway” — that is, what is considered acceptable by major power centers, state and private. Departing from that framework is “biased.” There are to be sure exceptions, but there extensive documentation showing that this framework is upheld with quite impressive consistency. It can be changed in so many ways.


Continue reading The media and “objectivity”

An async kind of pair programming

Can pair programming be done in a way that is compatible with async communication?

async_jam

Pair programming is described by the original c2 wiki as a process in which “two engineers participate in one development effort at one workstation”. It would seem the process is inherently synchronous, at least as originally described and practiced.

I experimented with pair programming at my first industrial programming job at Morgan Stanley. It was 2006-2008 and two fads were happening in parallel: “agile” software management techniques and “extreme programming”, with a particular emphasis on test-driven development with Java.

I occasionally found pair programming to be effective, but noticed my results varied wildly depending on the engineer I paired with and the problem we worked on. Some people really enjoyed the “brain swarming” of having two heads attack a problem. Other people found it cumbersome and interruptive. Some problems seemed so indivisible that it always ended up that one person drove, and the other person merely watched. In the end, I couldn’t really say whether I benefited from it, despite many hours of experimentation.

Continue reading An async kind of pair programming

Simple Lego Blocks for Big Data

Data engineers should abstract their code in the most lightweight way possible to facilitate downstream integration in a large-scale data system.

You want lego blocks, not puzzle pieces.

lego_blocks

The creators of the C programming language once famously said, “first make it work, then make it right, and, finally, make it fast.” This adage still applies today.

The difference is, we have tools to take working code and validate that it is right against reams of data. Many of these tools can also be used to make the working, right code run really fast across a cluster of machines, possibly even in real-time, as the data comes in.

But, making code work, then right, then fast, requires some discipline.

Continue reading Simple Lego Blocks for Big Data