Understanding AI Moats Using Silicon Valley (the show)

Everything I need to know about working in tech, I learned from Silicon Valley on HBO. Recently, I've been thinking about the last episode of season one (spoilers ahead).


ChatGPT API Napkin Math for Indie Hackers

Napkin math on the unit economics of the ChatGPT API (both GPT-3.5 and GPT-4) for various business models.


The Human's Guide to Competing with GPT

ChatGPT can generate multiple paragraphs of coherent text on most topics. It writes like a high school student with fifteen Wikipedia tabs open trying to boost his word count on an essay due in a few hours. This is a ridiculously impressive capability that did not exist a year ago. It is because of the quality of ChatGPT that we can now better see the general limitations of these models, as we're not distracted by the more obvious issues present in GPT-3.


Your CAC is my Free Lunch: Adventures in Sports Betting

Let's investigate the mechanics and incentives in sports betting apps to figure out how I won $300 for free.


Philip Kiely, First of His Name

In Vermont dwells my great namesis: a physician named Philip Kiely. He held the top search result for our name. I wanted it. Welcome to the thunderdome.


Short-Cycle Recurring Revenue

Monthly Recurring Revenue (MRR) is the lifeblood of many successful indie online businesses. But today, we turn our attention to shorter cycles of recurring revenue and their niche applications for digital businesses.


How to Format a PK&C Ebook for Publication

After publishing several ebooks, I have a process that makes the relatively tedious exercise of formatting a document for publication into a repeatable set of steps that helps me generate ebooks quickly and without formatting mistakes. Until today, that process has lived in my head or in scattered to-do lists. I hope this documentation helps other independent authors in their quest to create beautiful books.


The Undergraduate's Guide to Becoming a Professional Developer

The skills needed to get and succeed at a software development internship or job are somewhat different than the skills that most computer science classes teach. In some cases, classes teach exactly the opposite of what you need for a job. In my opinion, the job skills are substantially easier than the class skills and you can pick them up quickly.


Reviewing Expert Networks like GLG, Guidepoint, and AlphaSights

Expert networks like GLG, Guidepoint, AlphaSights, and dozens of others connect clients with subject-matter experts for ad-hoc work. These calls are facilitated by full-time network associates in a high-touch business model that is refreshingly retro.


Friendship Cards

I passed out business cards to much of my college's freshman class during my first month of undergrad. I called them friendship cards.


Who Will Write your Company's Technical Content?

If the best strategy for mixing in-house content with various outsourced options was the same for every company, this article would be a lot shorter. However, your company's resources and goals determine the best content strategy.


I Hired College Students to Run My Business (PK&C WINternship 2020 Report)

December 2020 marked the first winter after I graduated from college. I wanted to build the winter break internship that I wish I'd been able to experience myself and offer it to current Grinnell students.


Notes for Devs Talking to Designers

Thanks to a conversation I had with Jack Zerby at Gumroad, I now feel confident asking designers to create a user interface, graphic, visual identity, or any other design artifact and have become much more productive at communicating and delegating design tasks. These are my notes from that conversation.


Modeling the Obligatory Late November Sale in the Creator Economy

Black Friday and associated late November sales are collectively a neutron star warping the gravity field of the annual consumer spending cycle. Depending on your model, this can be a good or a bad thing.


How I Became the Head of Marketing at Gumroad as a New Grad SWE

On Friday, September 4th, 2020, I logged into my job as a software engineer, flattened some bugs, received a strong first-sixty-days performance review, and ended the workday at a reasonable hour, gently entering a long labor-day weekend. Four days later, I resigned from what was my first SWE job out of college after just twelve enjoyable weeks to take a role in marketing making even more money. What happened?


Writing for Software Developers Financial Performance

This post reports income and expenses from creating Writing for Software Developers. I update the post every so often, unless I forget.


Building the Writing for Software Developers Landing Page

This post outlines the decisions I made while implementing the landing page for Writing for Software Developers and logs changes to the page over time.


Marketing Writing for Software Developers

I sold $15,000 of Writing for Software Developers in its first 24 hours with no pre-existing audience. I sold over $23,000 of the book in its first month. This post details everything that I did to make these sales.


The Writing of Writing for Software Developers

I wrote my first book, Writing for Software Developers, in six months. This post details every step of the process. Read about the initial idea, the interviews, the writing process, the editing stage, and putting it all together for publication.


Notes from an Informational Interview with Corey Simmonds and Alex Mitchell of 0260 Solutions

Corey Simmonds and Alex Mitchell, who do technical consulting with 0260 Solutions, generously gave a friend and me an hour of their time to discuss the business and technical aspects of running 0260. I've prepared notes from our conversation with their insights in the following areas


Defining Technical Tutorials and Topic-Based Articles

I write technical content. My work appears in programmer-focused publications and on technical corporate blogs. After writing more than twenty pieces, I have come up with a useful, if somewhat arbitrary and nebulous, distinction between two types of technical content. A Project-Based Tutorial has sample code as its main focus, while a Topic-Based Article develops a general idea.


Improving Technical Tutorials by Providing Sample Data

Let's say you're writing a technical tutorial. If you have a sample application in your article, you should also include sample data. In Django, you can distribute sample data using fixtures.


Making Useful Charts and Diagrams when you Suck at Drawing

I write technical articles. As part of that work, I make charts and diagrams to explain concepts to my readers. I also irredeemably suck at drawing and my handwriting defaults to illegible. Nevertheless, I manage to deliver useful diagrams with my articles that explain complex ideas with intuitive visual metaphors. I'm able to do this because most aesthetic properties are not relevant to a diagram's usefulness, and the ones that are can be achieved relatively easily. I harbor no delusions about any ability to show you how to become a better artist. I do believe that you can use a few simple techniques to create more effective graphics at your current level of skill.


Transcribing Audio without Automation or Outsourcing

Recently, I had tens of thousands of spoken words that need to be transcribed into written text. "Hang on," you might be thinking, "why would a college student who, by all accounts, spends his time on reputable pursuits such as Python, need to convert audio into text?" While I was doing interviews for my book, I transcribed about 8 hours of audio, a process that took somewhere between 24 and 32 hours of very focused work over the course of a month or so. Here's what I learned in the process.


What I Learned about Style and Writing from Watching Bruce Lee

Style has a triple meaning in martial arts. Lee cut this knot by describing the "style of no style." To Lee, everyone practiced a different art, thus everyone practiced the same art


Generating Topics for Technical Articles

A couple of weeks ago, I was minding my own business on a Sunday morning when I received a cold email from an editor to write for their online publication. I opened up my trusty ideas.txt only to find it devoid of topic suggestions, so I developed an exercise for developing quality ideas that helped me generate 20 solid pitches to use over the coming months in a single planning session, and I hope it will be useful for you as well.


Computers and Poetry

The year was 2018, and I did not want to write a poem. Specifically, I did not want to write a net, an interpretation of a Shakespearean sonnet first imagined by Jen Bervin. I had to do so as part of an assignment, but instead I wrote a program to generate them for me according to the constraints of the form.


How to Write a Technical Article

Every great writer writes stories, and so do all of the good ones. Technical writers are not immune from this requirement, nor are we barred from the tools of the craft. Stories have conflict. Our writing has characters, these characters have motivations, desire outcomes. Despite this legacy and these tools, technical writing is often held to a lower standard than even the humble blog post...


Black Belt, White Belt

When I was five years old, my family moved to Des Moines and my parents signed me up for TaeKwonDo. In college, I practiced with friends as the facetiously named "Grinnell Fight Club," a mostly boxing-based organization. This summer, I have been practicing Brazilian Jiu Jitsu three times a week. I have taken powerful lessons from the integral similarities between martial arts that this range of experience has revealed to me.


My First Open Source Contribution

I put almost every line of code that I write outside of work on GitHub. Anytime I make a public repository, I make sure to stick a license on it so that people can actually use the contents; usually I use MIT, sometimes Apache 2.0. Thus, I could say that I have published thousands of lines of open source code across dozens of projects. However, most of that code is pretty useless to other people, so I don't go around saying that...


How to Succeed and Thrive at a Hackathon

One of my first times coding outside of class was at a hackathon during my first year of college. It was late February, and we drove through a snowstorm to an industrial building near the Iowa State University campus. Inside, we checked in at a folding table, and fortunately the person handling registration didn't examine my ID carefully, as I was 17 at the time. For the next 36 hours, two friends and I developed a client-side JavaScript isometric map maker, trimap. As I started from essentially zero knowledge, I had no choice but to learn more in that weekend than I had in the preceding weeks of Introduction to Computer Science combined. What we made is, without a doubt, a terrible piece of software, and to this day I am inordinately proud of it...


My Software Developer Bucket List

This is a living document. The list will be updated accordingly as I have new ideas that stick around for a while and, much more infrequently, as I actually do anything on this list. Currently the list stands at 8 to do and 2 done...