February 18, 2021

Building a fast command-line app with Clojure

Like most developers, I always have about a hundred ideas for little tools or apps I wish existed. Every once in a while I get the time and energy to magic one of them into existence. Clojure is my language of choice these days, but at first glance it's not super well suited to building little command-line apps (which is usually what I start with). Some things that make it not an obvious first choice: […4 min read]

post#cli#clojure#graalvm#software

February 10, 2021

February 7, 2021

I Need People

This is the second post in a series about things the 2020 pandemic has taught me. The first was that journalism is important. This one is about appreciating my friends and family in a new way. I've always loved the people in my life, but the feeling of actually needing other people, like for survival, is new to me. I've always had this strong sense that worst case scenario I would always be fine on my own. Like if I really had to I could hack it alone, and that might not be ideal but in the end I'd be more or less fine. I realize now I was wrong. […4 min read]

post#community#pandemic#personal

January 30, 2021

How state makes software complex

What makes large codebases so hard to reason about, and so hard to extend? I really want to find out because I'm tired of losing my mind working on them. One paper I love called "Out of the Tar Pit", by Ben Moseley and Peter Marks, argues that state is the main source of complexity in large software systems. This article is an overview of a couple of the ideas from that paper, along with some discussion about how we might conceptually think about necessary state in software in order to improve its overall quality. […6 min read]

post#complexity#papers#software-engineering

January 19, 2021

Becoming a software developer

I get asked a lot for advice on becoming a software developer. I didn't study anything related to software in university, but now it's what I do for a living. I also spent about 3.5 years mentoring with Lighthouse Labs, a local web development bootcamp, and watched (and would like to believe at least in some cases, helped) hundreds of people of every age from wildly diverse backgrounds get jobs as software developers. […13 min read]

post#careers#software-engineering

January 5, 2021

What I Use Now Instead Of Google

I made a goal for myself in January 2020 to stop using Google products by the end of the year. That might sound like way too generous a timeline, but Google owned pretty much all of my data at that point, so it was a fairly large project. Plus I'm a slow and steady kind of person. I know if I give myself a generous enough timeline I can accomplish even things that seem too hard for me at first. […12 min read]

post#nextcloud#privacy#self-hosting#ungoogle

December 31, 2020

2020 Year In Review

I'm really excited that 2020 is over! This was the hardest year of my life so far. It was also the first one that was worse and not better than all the previous ones, which I'm really hoping is not a new trend. When I thought about it a bit I realized I still did a lot of cool things and learned a lot this year though. […12 min read]

post#personal#reflections#year-notes

December 30, 2020

How To Set Up Codecov For a Clojure Deps Project

Update: I recently switched to using Github Actions to run my tests because I started getting git auth failures trying to fetch git deps on CircleCI. Learning the random YAML magic required to set up a github action was marginally less awful than faffing with ssh keys on circle. You can see the result in this commit. The actual steps to set up codecov for your project are the same. […3 min read]

post#ci#clojure#testing

December 19, 2020

How to set up your own nextcloud server

One of my goals for 2020 was to stop using Google's products. There are a lot of reasons why, but that's not the point of this post. I found out about Nextcloud last month and it turns out it's a great replacement for a lot of Google. I don't actually use all of its features, but I've migrated my calendar, reminders, contacts, bookmarks, video calls, photos, and news feeds and I'm really happy with it so far. […12 min read]

post#nextcloud#self-hosting#ungoogle