Specialists in medicine: not the problem

June 7th, 2017

The NYTimes published a woefully misguided piece on the “specialist stranglehold” on modern US medicine.

So, doctors are to blame for setting the prices for reimbursement by private health insurance companies? And they are also to blame for pursuing extra years of low-pay resident/fellowship training so that they can do advanced procedures and be paid decently for their work? And, they are also to blame for “defending their turf” within a specialty — that is, for specializing at all?

And, this article is even written by a doctor?! Why, yes, of course, it is!

I think medicine may be the world’s most self-hating profession. Trapped inside a system that takes advantage of their altruism, ridiculous work ethic, and decades of training, they can’t help but blame themselves even as the capitalists around them exploit them.

Read the rest of this entry »

In support of net neutrality

May 11th, 2017

I wrote a letter in support of net neutrality and Title II classification of Internet Service Providers to the FCC. For background on this FCC vote, you can read this Arstechnica explainer.

You can add your own comment in support of net neutrality to the FCC at the URL gofccyourself.org. To clarify some terms:

  • “net neutrality” is a term coined by Tim Wu (author of “The Master Switch” and “The Attention Merchants”) which describes a legal principle that “Internet service providers and governments regulating the Internet should treat all data on the Internet the same, not discriminating or charging differentially by user, content, website, platform, application, type of attached equipment, or mode of communication.”
  • “title II” is a part of the Communications Act of 1934 that establishes that certain forms of communication infrastructure are “common carriers”, which means that in delivering Internet service, the ISPs “cannot discriminate [content/services], that is refuse the service unless there is some compelling reason.”

Read the rest of this entry »

Parse.ly Culture: Ethics & Identity

December 23rd, 2016

In September 2013, my startup, Parse.ly, had just raised Series A capital, and had just begun growing its team rapidly, from a small group of fewer than 10 to over 40 employees now. In the past several years, I have run Parse.ly’s fully remote engineering, product & design team.

Back in 2013, we had achieved initial product/market fit, initial revenue, and had already established a kernel of a product and engineering culture. I knew the company would change, but I wasn’t sure exactly how. Meanwhile, I had just recently read “Reasons & Persons”, a book on ethics and identity by the philosopher Derek Parfit. Though his ideas focused primarily on individuals, they influenced the way I thought about my business, my team, and its evolution over time.

What follows are my speaker notes from a talk I gave to my team to discuss the issues of Ethics and Identity central to Parse.ly’s culture:

Origin of this talk

  • Parse.ly turned 4 years old in May 2013
  • I reflected after our Series A round
  • I read a book about ethics/identity, Reasons & Persons
  • Realized some interesting concepts apply to firms, too

Parse.ly, different takes

  • “An analytics platform for large media companies?”
  • “A startup founded originally in 2009 at Dreamit Ventures?”
  • “A team of employees?”
  • “A specific configuration of tech and code?”

What is Parse.ly, really?

Are we:

  • our history?
  • our appearance to customers / press?
  • our employees (or founders)?
  • our technology / product?
  • our shareholders? (huh?)

Ship of Theseus

What is the Ship of Theseus?

  • They took away the old planks as they decayed
  • … putting in new and stronger timber in their place
  • One side held that the ship remained the same,
  • … and the other contended that it was not the same.

(Discussion.)

Read the rest of this entry »

The value of money in a technology career

September 21st, 2016

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?

Read the rest of this entry »

The 3 best headphone options for programmers

September 11th, 2016

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.

Read the rest of this entry »

Chomsky on the media and “objectivity”

April 24th, 2016

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.

He suggests one way to get out of this structural “objectivity bias” — something that Jay Rosen refers to as “the view from nowhere” — is to change its underlying incentive scheme.

Read the rest of this entry »

An async kind of pair programming

December 14th, 2015

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.

Read the rest of this entry »

Simple Lego Blocks for Big Data

November 30th, 2015

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.

Read the rest of this entry »

Idiomatic Python Resources

November 29th, 2015

Let’s say you’ve just joined my team and want to become an idiomatic Python programmer. Where do you begin?

Well, you can move up the learning curve quickly using resources from this blog:

I also have some good resources on web development with Python:

And on more advanced Python concepts, like dunders and functional programming:

Read the rest of this entry »

Programming: it’s weird

June 14th, 2015

I read the Bloomberg piece, What Is Code?, an explanation of code artistry and programmer/hacker culture in 2015. I love this paragraph about “languages as liquid infrastructure”:

The point is that things are fluid in the world of programming, fluid in a way that other industries don’t seem to be. Languages are liquid infrastructure. You download a few programs and, whoa, suddenly you have a working Clojure environment. Which is actually the Java Runtime Environment. You grab an old PC that’s outlived its usefulness, put Linux on it, and suddenly you have a powerful Web server. Now you can participate in whole new cultures. There are meetups, gatherings, conferences, blogs, and people chatting on Twitter. And you are welcomed. They are glad for the new blood.

Java was supposed to supplant C and run on smart jewelry. Now it runs application servers, hosts Lisplike languages, and is the core language of the Android operating system. It runs on billions of things. It won. C and C++, which it was designed to supplant, also won. A lot of things keep winning because computers keep getting more plentiful. It’s weird.


Worse is better, is worse, is better, is worse, is better…