Expanding my mind, once more, with functional programming

The Structure and Interpretation of Computer Programs (SICP) is a classic computer science text written by Gerald Jay Sussman and Hal Abelson. It is widely known in the computer science community as the “wizard book”. It intends to teach the foundations of computer programming from “first principles”, illustrating programming language design using Scheme, a dialect of the Lisp language.

In this context, from Aug 26 – 31 2018, I am taking a “think week” to reflect on my relationship to computer programming.

I am spending this week in Chicago with David Beazley (@dabeaz), where we will be spelunking through the land of this famed SICP textbook via Racket, a modern functional programming environment one can use to program in — and even extend — Scheme and many other languages.

The course will also (of course) involve some Python. This will be a fun follow-up to an earlier course I took with Beazley in 2011, “Write a Compiler (in Python)”. I can’t believe I wrote the code for that course over 7 years ago.


Back in 2011, I took “Write a Compiler (in Python)” with David Beazley. A handful of long-time professional programmers and Pythonistas, locked in a room together for 5 days, hacking away on a Python compiler for a Go-like language. It was so much fun. It proved to me that I loved programming! I’m the one whose head is exploding on the left.

How I’m thinking about this course

I have long identified primarily as a computer programmer. I studied Computer Science at NYU, and I currently read about programming languages, paradigms, and design patterns all the time. I have read way more technical programming books than any other category or genre of book.

But, I’m also someone who is interested in the business of software, and leadership of software teams, in a sort of secondary way to my love of software itself. Business books — and particularly books about high-growth companies and their teams — make up my other big obsession. But, in the last several months, I’ve seen my relationship with software change in a number of ways.

Continue reading Expanding my mind, once more, with functional programming

Flow and concentration

From Good Business, by Mihaly Csikszentmihalyi, the author of Flow.

Another condition that makes work more flowlike is the opportunity to concentrate. In many jobs, constant interruptions build up to a state of chronic emergency and distraction.

He goes on:

Stress is not so much the product of hard work, as it is of having to switch attention to from one task to the other without having any control over the process.

Continue reading Flow and concentration

Public technical talks and slides

Over the years, I’ve put together a few public technical talks where the slides are accessible on this site. These are only really nice to view on desktop, and require the use of arrow keys to move around. Long-form notes are also available — generated by a sweet Sphinx and reStructuredText plugin. I figured I’d link to them all here so I don’t lose track:

Continue reading Public technical talks and slides

Software planning for skeptics

Engineers hate estimating things.

One of the most-often quoted lines about estimation is “Hofstadter’s Law”, which goes:

Hofstadter’s Law: It always takes longer than you expect, even when you take into account Hofstadter’s Law.

If you want to deliver inaccurate information to your team on a regular basis, give them a 3-month-out product development timeline every week. This is a truism at every company at which I have worked over a varied career in software.

So, estimation is inaccurate. Now what?

Why do we need a product delivery schedule if it’s always wrong?

There is an answer to this question, too:

Realistic schedules are the key to creating good software. It forces you to do the best features first and allows you to make the right decisions about what to build. [Good schedules] make your product better, delight your customers, and — best of all — let you go home at five o’clock every day.

This quote comes from Joel Spolsky.

So, planning and estimation isn’t so much about accuracy, it’s about constraints.

Continue reading Software planning for skeptics

Lenovo and the new Linux desktop experience

I am a longtime Thinkpad and Lenovo user as my preferred laptop for Linux computing and programming.


The Lenovo X1C 2016 4th Generation Model is my latest Linux laptop

For some context, I’ve been running Linux on my desktop and laptop machines since ~2001, and started using Thinkpads in this role starting with the famous Thinkpad T40 (2003), one of the first laptops that provided good Linux support, a rugged design, portability, power, and an excellent keyboard.

I then moved through a few different Lenovo models: the T400 (2008), the T420s (2011), and the X220 (2011).

I spent a couple of short stints in-between — which I always regretted — on other PC laptop models, including HP and Asus. I upgraded from the T420s to the X220 after coming to the realization that portability and power consumption mattered more to me than the 14″ form factor, and that I could easily expand the X220’s limited hard drive with a 512 GiB SSD.

Since 2013 or so, the X220 has been my main programming/Linux machine. The X220 was my favorite Thinkpad model of all time, despite some flaws. I’ll discuss my Linux desktop experience with the X220 briefly, and then go on to my experience with my current model, the Lenovo X1 Carbon 2016 model (4th Generation).

Continue reading Lenovo and the new Linux desktop experience

Charlottesville tech: a community that won’t be stopped by tragedy

Note: This post was written on August 17, 2017. I was living in Charlottesville, Virginia at the time; I had been based there since 2011 and would end up living there until 2019. Unfortunately, 5 days before this post was written, a tragedy happened in my town. This was my attempt to provide an alternative perspective on Charlottesville, the town, when this specific (terrible) tragedy on a specific (terrible) day became all anyone knew about it in the national headlines for months and years on end.

tl;dr — This New York techie moved to Charlottesville six years ago and witnessed a vibrant tech ecosystem develop. Though Charlottesville has some deep social problems, it’s also a place of creativity and optimism. Its best communities will prevail.

After spending my childhood, teenage years, college years, and early working years in and around New York City, in 2011, I was ready for a change. My wife was applying to medical schools across the country, and I was in the early stages of running my tech startup as a fully remote/distributed team.

Charlottesville’s pedestrian Downtown Mall on a calm fall day in 2013.

Charlottesville’s pedestrian “Downtown Mall” on a calm fall day in 2013. (source)

I think prior to the tragic events of Saturday, August 12, most life-long New Yorkers I know rarely gave much thought to Charlottesville, Virginia. Maybe they would hear the occasional news story about it, or had a friend, or friend of a friend, who attended the University of Virginia. But, for the most part, the locale occupied very little room in their brain — perhaps none — as was the case for me in 2011.
Continue reading Charlottesville tech: a community that won’t be stopped by tragedy

A Different Way — Thoughtful Financing, Or Why We Said “No” to a Lot of Money

Note: This post was authored by Sachin Kamdar, my co-founder at Parse.ly, in 2017. It was written as CEO of the company we started together, but reflects our joint attitude, at least at that moment in time, toward fundraising. It is hosted on my blog as an archival project for the MuckHacker group blog we started a few years back.

I felt pretty good at the start of 2017. My company, Parse.ly, had just executed its best quarter without exploding expenses. We’d built the business to a point where we effectively had unlimited runway to stay the course and still grow. However, coming off of such a successful year made me realize how much more we could do.

2016 gave us a taste of how impactful launching new products and working with differentiated customers could be for our business. We’d only scratched the surface. I knew what we had in the bank wasn’t going to be enough to capture the full opportunity in the market. We needed to fundraise if we wanted to accelerate our momentum.

Sachin Kamdar, CEO at Parse.ly (left); Andrew Montalenti, CTO (right)

I know I’m preaching to the choir when I say fundraising is hard; the numbers are against us. Mattermark found that on average, just 17% of companies that raise a Series A go on to raise a B and that number dwindles to 0.3% for later rounds.

While raising capital is hard, there’s an emerging debate as to whether growing your business organically from customer revenue is even harder. The founder of Basecamp lambasted the VC market for misalignment with entrepreneurs, suggesting the market was architected with few windows for success, instead encouraging growth at all costs.
Continue reading A Different Way — Thoughtful Financing, Or Why We Said “No” to a Lot of Money

Parse.ly Culture: Ethics & Identity

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.)

Continue reading Parse.ly Culture: Ethics & Identity

The Internet is a cult generator

Noam Chomsky once gave a great answer on what he sees as the “purpose of education.” I hand-transcribed this quote because it was so good:


“Technology is basically neutral. It’s kind of like a hammer. The hammer doesn’t care whether you use it to build a house, or a torturer uses it to crush somebody’s skull. The hammer can do either.

The Internet is extremely valuable if you know what you’re looking for. I use it all the time for research, as everyone does.

If you know what you’re looking for — if you have a framework of understanding which directs you to particular things, and sidelines lots of others — then this can be a valuable tool. Of course, you always have to ask yourself, ‘Is my framework the right one?’ Perhaps you need to modify it from time to time.

But you can’t pursue any kind of inquiry without a relatively clear framework that’s directing your search and helping you choose what’s significant and what isn’t; what can be put aside; what is going to be pursued; what ought to be challenged; what should be further developed; and so on.

You can’t expect somebody to become a biologist or a doctor by giving the person access to the Harvard University biology library, and just say, ‘Look through it, you’re on your own.’ The Internet is the same, but just magnified enormously.

If you don’t understand or know what you’re looking for — if you don’t have some conception of what matters — then you’re lost. And you should always be willing to question your framework and make sure you’re not going in the wrong direction.

But if you don’t have that, exploring the Internet is just picking out random factoids that don’t mean anything.

Behind any significant use of contemporary technology is some well-constructed directive apparatus. It is very unlikely to be helpful — it is very likely, in fact, to be harmful.

It turns out, for example, that a random exploration through the Internet turns out to be a cult generator. Pick up a ‘fact’ here, another ‘fact’ there, and someone else reinforces it, and all of a sudden you have some crazed picture that has some ‘factual’ basis, but nothing to do with the world.”

–Noam Chomsky, transcribed from this YouTube video


This is why I am personally so careful about my internet media diet, which has been a topic of reflection on this blog going back to its creation in the 2000s. Stay healthily skeptical!

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