Posts

Killer Instinct As An Engineer

Wanted to write about something that clicked last night.    The great differentiator between the median engineer and the median [salesman|manager|product person] is killer instinct. "Killer instinct" is the drive to hunt down and grab immediate results, setting aside other concerns (like: morality, long-term benefit, or the welfare of others) to do so.  It is, in the some ways, the opposite of being a "team player," or "civilized person."  It is essential for survival in defect-defect equilibria, which are the default, even in corporations. Two Trains, Headed For Collision... This causes trouble for engineers.  Engineering work does demand that you be a team player, collaborate, exchange information without ego.  But engineers work for companies, and you need killer instinct to prosper in companies. Companies don't like to admit that killer instinct is necessary to thrive in them.  The official corporate line is that everyone is there to build long-

Developers In Revolt

 A while ago Venkat wrote a a great article:  Can "Tech" Die?  , where he defined tech thus: "Tech is a growing agency pie, and a Techie could be defined as someone who is participating in a way that they’re gaining agency faster than secondary actors[finance, politics] can take it away." The "natural state" of the world, the world at rest, is: developers go to college and slave away getting CS degrees.  They go to work for BigCorp and are managed by guys in suits.  Nobody else knows how to program.  This is a fairly stable system. But what if it gets disrupted? Developers can revolt in two different directions:  up or down. They revolt up  by playing their cards so as to get more agency within their organizations.  At a recent technical interview, I--- Well, let's back up.  If you've never had one, most technical interviews go like this:  The interviewer(s) give you a relatively simple programming exercise.  Then they say "Do you have any que

Parochialism in Programming

I spoke at the Clojure Provo meetup last night, titling the talk "Programming is Folklore."    But perhaps a more clear way to talk about what I meant is to talk about "parochialism" in programming. This morning, I woke up and jotted down a "summarized" version for a friend, included here: With the benefit of hindsight (and some more sleep), I wanted to state the point more clearly. The first is that everyone is parochial, because seeking universality on *one* axis often forces you to narrow your focus on others.  Consider five different programmers:  - one raised in a mountain commune where every apprentice, as a rite of passage, must write their own language---and they do this every year.  They do it as a medium of expression!    - one who after college, goes to work for Google, and never leaves.  Google has a lot of special internal tools they've developed, and a lot of ex-googlers complain that they miss having access to that ecosystem, and their t

Testing And Scale

Image
I've never really liked testing. This has not been a psychically easy position to hold.  What does the internet have to say about testing? A billion is just a number---much harder to discount are the myriad reports of smart people that tests are essential , there is no  other way to approach things, any piece of software without tests is an unworkable piece of crap. I respect these people.  How to resolve this? Things made more sense when I realized that most of my work has been greenfield---and not just greenfield, but not part of a system .  Part of the work was figuring out what to build in the first place, what the software should even do . In that environment, tests lose a lot of their value.  Automated testing in particular---the key value proposition of automated testing is that every time the tests run, you get that for free.  Multiply it over a lot of runs and a lot of time and that adds up.  But with independent, experimental software, your software is very

Interviewing Programmers

Image
I'll be looking for a new job soon, readers! And this has been cause for some reflection. In Emeryville, CA, there is an "international food hall" called the Public Market .  "International food hall" is not a common phrase, because international food halls are not common buildings. But it is basically a food court leveled up a few times---a food court, if you made it eight times the size and gave it its own building. The software world is kind of like this:  a lot of people with very different worldviews crammed in together. What, in your  opinion, are the core concepts of this whole software thing?  The real  important stuff? If you look around, people seem to have very different answers to this, or answers-in-the-form-of-a-culture.  For some it's "agility," for others it's "testing," for others it's "optimization."  Steve Jobs (at least at first) would probably have said it's "empowering creativity

The Flipped Economy, Pt 1.

A few days ago, on the phone with a friend, I found a sentence coming out of my mouth that I wasn't sure I agreed with.  I don't remember the exact words I used; it was something like "The chief shortage in today's economy is access to enterprise buyers," but here's what I meant: We have enough stuff.  We have stuff coming out of our ears!  But this cheers no one; what we are actually concerned about is cash flows . A basic economics class talks about capital investment in this way:  a company, to become more efficient, invests in equipment, or factories, or technology, and thus creates more goods, or the same goods at a cheaper price, etc.  This is what "economic progress" supposedly looks like. Except..."stuff" isn't what people actually buy.  Most people's expenses go into rent, food, education, and health care.  To be sure, "stuff" is an input to the prices of those things, but...is it?  Really?  The real expen

Playing Around With J

I pasted the following into a group chat with some friends.    "J is pretty great" |syntax error |       "J is pretty great"    "I don't know how to do strings in it" |open quote |   "I don't know how to do strings in it" |         ^    "It has normal infix notation"         "It has normal infix notation"   |syntax error |       "It has normal infix notation"      5 + 3 8    NB.  Adorably, you start comments with "NB."    NB. J is an offshoot of APL.    NB. APL has a fun history.    NB. Ken Iverson was a math prof @ Harvard, and he got sick of math notation    NB. (Just my kind of guy)    NB. So he made up his own, and brought in a bunch of his own symbols    NB. It was just that---notation, had nothing to do with computers---    NB. until he went to go work for IBM.    NB. They wanted him to name his new programming language, but Iverson, who    NB. just wanted to change t