What if everything we know about programming is wrong?

Programmers and engineers are taught to believe that computers are meant to be internally harmonious and at peace with themselves, what if precisely the opposite is true when it comes to biological systems?
Programmers and engineers are taught to believe that computers are meant to be internally harmonious and at peace with themselves. What if precisely the opposite is true when it comes to biological intelligence like warriors fighting over a goat-skin on horseback…times 100,000? 

This article is a bit of a thought experiment. Sometimes it can be fun to take a group of assumptions which everyone “knows” are correct an invert them and see what happens…

Every operating system and programming book I have ever read about managing resources emphasizes the same “laws” of computing. These rules are memorized by every programmer and repeated rote at every programming interview and are expected to be common knowledge by anyone calling themselves an engineer…to the point where questioning these paradigms amounts to a sort of heresy.

Here are a couple of the big ones:

First, you are never supposed to have numerous threads operating on the same shared resources at the same time. The reasoning is that if one thread of execution is changing something at the same time as another thread, this can lead to instability, incorrect computation and…well…anarchy.

Second, there is always one and only one main thread which obeys the laws of a central operating kernel. There is one god-like kernel which everything on the computer must obey and be controlled by. Everything descends from this thread and is controlled by it. What freedom a thread of execution may have can be cut short at any time as the master kernel asserts control.


All of these approaches make the same assumption: A single processor (or a facade giving the appearance of a single processor) and sequential, atomic execution.

A good example of this is the famous “dining philosopher’s problem” in which three philosophers sitting next to one another are needing to share mutual resources without blocking or corrupting data as it is being used by another philosopher. We are all taught that allowing the philosophers to use the same fork to eat their dinner ( jointly use that resource at the same time) is something to be completely avoided…but what if that is a completely false oversimplification which is preventing us from achieving a much higher level of computing?

Imagine a computer with 1,000 kernels (which can come into or blink out of existence at any time), all using the same resources, all modifying one another’s instructions and data in real time (perhaps even modifying many other processor’s instruction sets and many resources at once?). Imagine that there are numerous centers of control at any given time, perhaps out of sync with one another, that are modifying and using the same instructions at the same time and have no direct control over one another…in short, a giant tug of war for power happening in multiple dimensions all in real time.

If you have ever had to wrestle internally with feeling sleepy, sad, angry…or whether or not to go to the movies or go to the gym…maybe this is a process which more closely resembles the results of a cacophony of independent control centers arguing with one another. If you look at society itself, cooperation is as common as competition between groups. Would it be such a leap to imagine that the brain is constantly in conflict with itself as one center of control wrestles with other centers of control? If so, why treat programmers like we do now?

This way of thinking is complete heresy to the current way programmers are taught to think about computation. Computers are not meant to argue with one another. Threads of execution are not meant to fight one another for control. Resources shared between threads are meant to be pristine and accessed atomically, not pushed and pulled and haggled over by competing centers of control.

Can you imagine the chaos of such a system? It would be simply impossible for any human programmer to conceive of or design or program such an organism. Yet at the same time…why can’t it work this way? Why would a computer attempting to replicate a human-like AI need to follow these sequential restrictions we have placed on ourselves?

What a world.

The Strange World Of Open-Source Pancreas Hacking

This is a Closed Loop Artificial Pancreas System consisting of a compute module and a 900 MHz radio. While it may not be pretty, it is actually keeping someone alive.

Opinions and views expressed in this blog do not reflect those of my employer and are wholly my own.

I have been lucky and gotten to travel the world and meet many interesting people building many interesting hardware projects with compute modules. Some of the more interesting projects come from the the OpenAPS movement, who are using compute modules to help Type I Diabetes sufferers manage their condition. I wanted to write a blog about what is going on in the OpenAPS movement and share some of the interesting hardware projects being built by hackers to manage their conditions.

A compute module is a tiny, cheap computer you can stick into things to make them smart (and often add Linux / Windows IoT and wireless connectivity).

Open source hardware hacking of life-sustaining equipment is highly dangerous and legally vague, why would anyone take this risk? Because current government regulations have delayed the creation of convenient systems for Type I Diabetes management until several years from now. As a result, the OpenAPS “We Are Not Waiting” movement has been born.
[Read more…]

Quick Update: I Am Moving To Portland



A quick announcement: We (my wife and myself) shall  be relocating our operations to Portland, Oregon by the end of this month for work reasons.

While I enjoyed living in Seattle for the last eight years, it is time to meet new people, eat at new restaurants, live in new neighborhoods, grow an unkempt beard and develop opinions about barley wine and pickled carrots.  Of all the cities we have considered living in, Portland was at the top of the list (at least in America) due to the weirdness, unique culture, tech scene, public transportation, creative atmosphere, small size and food. I think it will be great.

Portland, let us commence being weird together.

Business Development And Technical Evangelism Were Meant To Be Together

bizvangelismBusiness development and technical evangelism were meant to be together. After several candle-lit dinners, business development and technical evangelism should get married, settle down and have a baby. Why? Because technical evangelism is best when combined with business development.

In this article, I will introduce a new way of approaching technical evangelism which combines these two worlds, I call it: “Platform Evangelism.” My goal? To help you greatly improve your efforts to attract developers to your platform and improve how you allocate your developer marketing time.

Platform Evangelism, when done well, costs absolutely nothing and can achieve significantly greater ROI over “regular” evangelism. Furthermore, many technical evangelists can become Platform Evangelists with only minor changes. Intrigued? Read on! [Read more…]

Odd-Fellows: The Occult World of Networking

Author’s Note: I am risking myself professionally by exposing this hidden world. I will try to be vague about names, identities and places. By blowing the whistle on a powerful group of shady individuals I risk becoming an outcast…or worse. Proceed with caution if you wish to gain a deeper understanding of the arcane world of networking, for me it is too late. 

The Real Illuminati

Everyone is familiar with the concept of secret clubs, the Illuminati…the “Odd Fellows” who are supposedly running the world behind the curtains. Their work is everywhere, they are meeting in coffee shops and back-alleys, speaking in coded language while slapping “The Proles” on the back. They have “secret handshakes” of many forms and laugh amongst themselves at the plodding mass of humanity. These people exist and they are called The Networkers.

Whether or not you are aware of their existence, The Networkers are the ones brokering all of the connections, getting the deals done, filling the CEO positions, finding future spouses for others and filling up the rosters of “the cool people parties.” All of this they do with a few phone calls, Slack messages and emails which cost them nothing to send (nothing tangible, anyways).

“Networking” to most people is synonymous with unsolicited LinkedIn messages, recruiter-spam, marketing nonsense, unproductive ass-kissing and generally favoring appearances, in-crowds and credentialism over productivity. There is a lot of truth to this perception. Networking done poorly is at epidemic proportions, accelerated by the clueless application of social media and electronics communications tools. If you want a full introduction to what GREAT networking is, read this book.

In this article I will touch on bad networking, but what I am really interested in is helping more people to understand the hidden mechanics of great networking.

[Read more…]

Saying Good-Bye To Pizza Evangelists


I have a term for technical evangelists who seem to get paid to fly around the country, stand around doing nothing at events (maybe talking for two minutes at the start over a couple slides), eat the food, man (or woman) a table, perhaps do some light networking and then depart to their next event: Pizza Evangelists. I call them this specifically because the only measurable outcome of having spent the money to send this person to an event is that there is less pizza at the event afterwards (and your company is out $5,000 dollars including sponsorship, flight, Uber and their hotel).

After supporting something like 50+ developer events over the last few years, it is my observation that Pizza Evangelism may not just be common but it may be the average form of technical evangelism being practiced in some parts of the industry. There are a number of reasons for this, not least of which is that many organizations have a poor concept of what technical evangelists are really even supposed to be doing at events (hint: driving adoption of your platform).

In the worst cases, this type of behavior is accepted due to no one really caring what goes on at the event in the first place or just wanting to maintain the appearance of “having covered” an event for political purposes. Really great technical evangelism is not about maintaining appearances, it is about helping developers succeed with measurable and documentable results.

If you view what technical evangelists seem to be doing from the perspective of a CEO (who think in terms of profits and losses), you are going to find a lot to hate. “Why would I pay this person to fly around the country, lavishly spending money on hotel rooms and sponsorships of hackathons and workshops if I am not seeing any ROI?  I can’t even see what they are doing at these events!” Not a good line of thinking to be running through your CEO’s mind when things take a financial downturn.

So what is the solution? Well…that part is more involved. I will say, there should be a significantly greater number of documented projects at hackathons and workshops where your evangelists are present (as well as social media activity) than the ones where they aren’t there. Hackathons and workshops are not happy hour, they are “help people build stuff” time. If your evangelist does not materially impact the number of people using (and successfully completing) projects with your technology at events they attend, you should “reconsider” that spend.

Great evangelism does not happen behind a table, it looks like this (with apologies to Steven Xing and Jeremy Foster):








The Hackathon Bubble


I was recently forwarded an event sponsorship for a collegiate hackathon in Europe which had a base price tag which exceeded $45,000 for what amounted to a logo placement and the honor of sending a few technical evangelists to set up a table. Lets just call this level of sponsorship ask what it is: Unrealistic and probably untenable.

Over the years, hands-on collegiate hackathon evangelism (which was once a scrappy, high-energy, efficient and affordable way to meet new developers and engage them in developer platforms) has turned into something more closely resembling open warfare of competing unicorn bubble-dollars.

As a result, we may be at the top (or even already past the top of) of a “hackathon sponsorship and developer evangelism bubble” which has been drastically inflated by these billions of excess funds which have been dumped into developer platform companies in the SF tech sector. The effects of this money has soaked through the industry on every level resulting in some very ill-defined developer marketing dollars being spent on some quite questionable things.

If you are a major company like Apple looking to hire exceptionally talented software engineers, spending $50K+ (or whatever) to sponsor a table at a collegiate hackathon to recruit engineers makes a lot of sense compared to the costs associated with hiring a single engineer in the valley…You really have to snatch that engineer away from your competition and that isn’t cheap. However, if it is your goal to drive developer engagement and platform adoption, that level of spend should look pretty dubious in value.

I remember being amazed at seeing a brand new collegiate event managing to attract more than 20 sponsors in their first attempt at finding backing. In terms a Wall Street financier might use: “The trade is crowded.” With so many platforms crowding events, it has become difficult to tell a unique story cleanly and effectively for a reasonable cost the way it used to. Judging by complaints being made by some student participants (“guys, just let us hack on projects without shoving marketing down our throats!”), the feeling may be mutual.

Over the next few years, I am expecting to see cut backs in what platform companies are able to afford (or deem reasonable) in terms of the deployment of their developer marketing dollars. Many of the techniques for turning hackathons into highly efficient marketing venues (pioneered by companies such as Twilio) were effective because they were new and affordable. It was possible to walk into a hackathon and be one of only two or three companies trying to evangelize products (and help people  learn) for under $2,500. Not so much anymore, not when everyone else in the industry has learned the same tricks and have access to piles of unicorn-cash.

Hackathons are extremely valuable as developer marketing and outreach tools, but at some point, the price really does matter. At their best, collegiate hackathons are a student-lead revolt against their institutions which allow students to learn about technology together, in a fun way. Evangelism at it’s best is an excuse to educate others about technology.  These positive aspect of collegiate hackathons will prove to be eternal, the budgets may be subject change due to market conditions though.

Disclaimer: I am fully at peace with the fact that I may be wrong on the internet.




Little Stories and Food

source: cnn.com
source: cnn.com

Little Stories are exceptionally important when attempting to teach people why what you do is unique and valuable.

I have been watching the Chef’s Table documentary series on Netflix which follows the careers of notable global chefs. Each episode goes into depth about why globally acclaimed, risk taking chefs  are so successful.

While each of the chefs is unique, the thing which unites the chefs is their ability to communicate little stories about why their food is so special. They are evangelists…for their approach to food.

One chef (Massimo Bottura) talks about visiting a museum with an art installation of pigeons in the rafters shitting downwards on the artwork of other artists as being his core inspiration. The idea that he is deliberately taking Italian cuisine and shitting all over it by taking risks and disrupting traditional concepts of what recipes should be is at the heart of his approach to cooking. That little story, which he relates to his customers, is the difference between success and failure. Without it, weird and experimental food seems…just…bad and uncalled for.

Take the example of a dropped lemon tart. During the preparation of a dessert, one of Massimo’s staff accidentally drops a lemon tart onto a plate. Instead of throwing the dessert away, Massimo takes the broken dessert and dressed is up as an “accident, on purpose.” With the addition of a little story, failure is made into success in the minds of restaurant critics.

By attaching this little story to the failed dessert, it’s inherent failure becomes it’s source of differentiation and success. Little stories have that power.


Little Stories

Fearless: Cheston Contaoi
Fearless: Cheston Contaoi

I had just accepted the job of technical evangelist at Intel Mashery. As a lifelong introvert, the idea of approaching MHacks, a developer event with 1,200 software developers, and pitching our network of 50 APIs on stage and (hopefully) convincing skeptical students to use these APIs in their projects was something directly out of a horror movie.

“What am I supposed to say when I get on stage?” I asked my event partner (and veteran API evangelist), Cheston Contaoi. “Come up with three little stories about what they can do with the APIs. “For example, you can use the Beats Music API to create a shared musical playlist to help match you with new friends who have a similar taste in music. Or maybe you can use the Weather Underground API to build a smart weather station to send a Twilio message to your phone to remind you to bring an umbrella. Tailor it for the audience based on the event.”

I took this technique to heart and soon found that having a list of potential use cases in my back pocket was pure gold. After some rehearsal, I could tell off half a dozen different ideas for projects upon meeting a team of students curious about the Mashery API network. It really worked.

I can’t understate the genius of this technique. If human beings are computers, stories are our programming language. By telling a little story about how your developer platform can be used, you fill the heads of your target audience with possibilities.

We spend so much time explaining the “What”  and “How” of our developer platforms, what really matters to developers (and drives action) is the “Why”