'Engineering'

Safe or Brave Podcast

Talking about Microsoft Developer projects, leaving Microsoft, and starting Glide.


Designing for Developers

A perennial problem in philosophy of art is that explanations of beauty too easily devolve into poetry. An ambitious thinker sets out to explain beauty, and ends up writing words that are beautiful but do not explain beauty. The reader is complicit, accepting the feeling of beauty instead of its explanation.

Design shares this dilemma with beauty–it’s relatively easy to write ‘designey’ words about design, but it’s difficult to explain how design works. To give a modern example, “chamfered edge” is an exquisite phrase, but it doesn’t explain why some edges have better design than others. As a designer who intends to explain design, please don’t let me pull the chamfered wool over your eyes!


A Trello Monad in the Dark

We are ceaselessly reminded of life’s fragility as we watch every cell, body, and star expire, disintegrate, and fade. An unending confusion attends our senses as they helplessly seek agency in a senseless void. And the brevity of this nasty brutishness is its cruelest irony. We must conclude that life is a fragile, confusing, and brief glimpse of an incomprehensibly beautiful yet ultimately indifferent universe.

The universe contains one countervailing force, however, that can fortify fragility, blow back the fog of confusion, and buy us at least one more sunset with a lover, one more bedtime story with our children, one more proud moment with a venerated elder.


Designing Stacktraces for Xamarin Insights

Xamarin Insights is an app monitoring service that reports crashes and analyzes user behavior for apps built with Xamarin Platform. When we designed Insights, we wanted to render the most useful and beautiful stacktraces of any similar service. I’d like to explain the surprisingly sophisticated technology we deployed to render deceptively simple stacktraces.

Shallow: Cloning a Hook-up App in F#

F# is a functional programming language designed with an emphasis on data science, that can also be used to build native iOS and Android apps with Xamarin. In my experience, when people discuss F#, someone inevitably asks “F# is great for analysis, but is it good for creating user interfaces?” I created a simple Tinder clone for iOS to show that F# is actually awesome for creating UIs, and for building apps in general.


You Are Not a Gadget: A Manifesto

Jaron Lanier is a preeminent technologist and Silicon Valley pioneer. In You Are Not a Gadget, Lanier artfully and even-handedly argues that today’s prevailing Internet ethos undervalues the individual, and instead places emphasis on the misguided notion of the “hive mind”–the powerful crowd dynamic that breathes life into sites such as Facebook, Twitter, and Wikipedia.

A Case for Open Voting Systems

Introduction

Elections in the United States have a surprisingly sordid past; vote buying, ballot fraud, voter intimidation, and bald-faced cheating appear to be the rule rather than exception to anyone acquainted with the history of American elections. If anything has changed about US elections in recent times, it is that elections have become more complicated. Electronic voting systems are being introduced to address many election difficulties, most notably in response to the millions of ballots disqualified in the 2000 presidential election due in large part to voter error. Unfortunately, at this moment, electronic voting systems present numerous challenges—in fact, electronic voting systems sometimes introduce more difficulties and offer less control than the systems they replace. The aspect of electronic voting I will focus on is whether electronic voting systems should be open or closed; whether scholars, experts, and your average voter should be allowed to scrutinize the underlying details of the systems being used, or whether these details should be kept secret by the companies that build, own, and operate these systems. I will begin by discussing the 2000 presidential election and the flaws in traditional voting systems uncovered by that election. I will go on to discuss Congress’s response to the 2000 election debacle—a bill funding the nation-wide implementation of electronic voting systems. I will provide details about two electronic voting systems, one which is open and one which is closed. After that, I will discuss Lawrence Lessig’s distinction between open and closed code, and his argument for why code should be open in certain, critical contexts. Finally, I will touch upon the issues of commerce and intellectual property that cause some to be concerned about the idea of open voting systems. My conclusion is that our societal interests of democratic government, fairness, honesty, and transparent regulation overwhelmingly favor open voting systems.