My product is my garden (2020)
herman.bearblog.dev
herman.bearblog.dev
Here's my mini-story. SF has a bunch of community gardens but the waitlist for getting your own plot is comically long. 2-3 years. However, the community garden near me has a bunch of apple trees that are volunteer-maintained. I figured that would be a good way to scratch my gardening itch in the meantime. It's been great! The project leader has taught me a lot about maintaining trees. And I've really learned that weeding is a lifelong commitment. They will always come back, and it's a lot easier if you go out there regularly and pull up the small roots. Obvious, and I'm sure you've heard this idea before, but going through this personally with physical gardening really drives home the wisdom of this trite idea. I got lazy this winter due to all the storms and didn't go out there for a couple of months. There are FEET of weeds now. I've taken out 3 wheelbarrows of weeds and am still not done. Ironically I am not that great at keeping on virtual weeding either (fixing bugs regularly). But when I am out there weeding I have literally thought to myself a few times: "I really need to stay on top of my issues..." Also, there is a very interesting lesson to ponder through physical weeding: you do it because those weeds will compete with your tree for resources. Your tree grows less when there's weeds around it. Literal bugs will thrive in the weeds and eventually make their way up to your tree and damage your tree. I know that the makings are there for another visceral lesson but I don't quite feel that one deep in my bones yet... I guess I've been lucky to not have to work on projects with suffocating tech debt...
Figuring out the amount of sunlight an area gets, being able to mointor ph/moisture, drip irrigation, foldable greenhouse covers, proper tools to make tilling the soil and laying down a solid weed barrier, etc.
It got to be too time consuming, expensive and doing it any other way seemed demoralizing. During that time, a lot of gadgets have come out that make those things easier. I am pretty happy that I spent my time enjoying other things and can come back to it now if I wanted to with the efficiency I wanted before.
What he does, he goes through the garden, does a bit here and a bit there. If he sees a plant he likes, he makes space for it, if he doesn't like something, he cut's it down. Occasionally he brings new plants (some from other peoples trash).. or tries new things. If it works, he does more of it, if it doesn't work, it's usually just in a small patch. He doesn't really do any planning.
This way.. over the years, he has a massive and healthy garden. Very diverse, lot's of insects, flowers, fruits, berries... He never uses pest control either.
The lesson, "Don't fight forces, use them".
My garden is not the 80's picture perfect lawn anymore. It looks like a pretty prairie now, with poppies and all sort of other local wild flowers. It burns in August, it is self regenerated by October. No need for watering. Bees are coming, my kids discover all sort of insects we didn't see when we moved in.
I've done iterations/rewrites of it, in order, with C#, Ruby, Python, Go, Free Pascal, and have been back with C# for the last few variants. Each time the code gets smaller, faster, neater, clearer, more powerful, and better documented.
It will probably never be seen by anyone else (I use it for my own stuff), but I get the same satisfaction after almost two decades of working on it that a gardener might get when pruning and tidying a long-lived and long-loved bush or tree.
Very apt.
I love the "Fuck around and find out" aspect of it. I can goof off and do fun things that occasionally add value to the business. Case and point: my all time most viewed page is a page that shows you a random FPGA meme. I threw it together with a bunch of FPGA memes that had made me laugh that I saved locally in a folder on my desktop. Net result: tons of backlinks, high engagement, and regular conversions of email list sign-ups. (https://www.fpgajobs.com/dank)
Funnily enough, ChatGPT has helped immensely with my ability to both putter about. ChatGPT can bang out Django features that'd take me a week in 10 mins. Most of that time is me copy/pasting and fixing the odd variable name that didn't translate. It's all the fun of creating with none of the docs spelunking or fundamental mistakes I make in Python or HTML.
I usually get them just far enough to work well, but the time commitment ends up becoming a grind for the more advanced features that are just out of my memory wheelhouse.
I recently figured I was stuck with an Elasticsearch feature since I didn’t know what to google. ChatGPT got it working in 3-4 prompts with me feeding error messages to it.
So I’m finding that I’m not only faster, but have new skills and can make features that were impossible before due to time commitment/ grind limitations.
I enjoyed the hunt and peck of figuring out features one step at a time when I started, but my wife and I had a baby in Jan, so my long stretches of dev and debug time have gotten muuuuuch shorter.
I've become that guy who needs results, and fast.
I have become... Management. :,)
Try something like "Write a Django management command that does X with a model named Product" or "Write a Django view that shows all models named Card." It's generally smart enough to infer some of your model class names.
I'm currently working on something, "using AI" (read: the ChatGPT API), and it's coming out perfect in a way I couldn't have done without this API, but I also couldn't have done at work; there are too many efficiencies involved when you're making software for yourself.
For one thing, the feedback loop between implementation, UI and UX is a dot instead of a loop. For another, I'm infinitely willing to sympathize with my user, and will take all of their suggestions as if they were gospel. And my budget, while not infinite or even large, is extremely generous.
I guess it's also worth mentioning people whose recent pet projects became their main project, the most salient of whom, for me, is AngeTheGreat on YouTube (https://m.youtube.com/@angethegreat).
There's something to be said for dogfooding first, then releasing something.
I also deliberately choose not to do things that I don't like (like content marketing) even though they'd for sure bring me more revenue. It has to be enjoyable because otherwise it'd be just another job.
In my experience, software built around this mindset is oftentimes better than software built by large corporations anyway. Software usually just gets worse with size.
The platonic ideal is a piece of open-source software that a user-developer can understand completely in an afternoon or less.
So, I just find this sort of statement confusing ("I want to make things that don't scale."). Maybe I am defining "scale" wrong, my interpretation is that a product that can scale can be used concurrently by many users without structurally collapsing in some way. In that way, for much of software history, "scale" has not been a concern. Also, in this context, "I want to make things that don't scale"... doesn't that just mean "I want to make internet services that break if they get too many users?"
It was a bit of a surprise seeing this on my feed this morning, 3ish years after publishing.
Some updates:
- Bear is running smoothly and profitably
- I still love what I do
- People love products that are made with love
I'd prefer reading this to constant rushing technological news.
I feel like the word “putter” has some connotations associated with it that make it misplaced in the article, though. I looked it up in the M-W dictionary and I think that the appropriate definition was the verb:
1: to move or act aimlessly or idly
2: to work at random: tinker
And the “especially” part of the definition of tinker has “unskilled or experimental manner” in it.
Experimental I can get behind. Organic, not necessarily pre-meditated, even. But unskilled? I think that is not what is being aimed at here. This is careful, painstaking work, with attention to details.
A minor quibble to be sure. I still don’t actually know what bearblog.dev is but it must be some kind of place for devs at small software shops to write about their work is my guess, based on the two or three posts I’ve read on the domain name. I’ve enjoyed them all so far.
We putter around. Sometimes (more commonly) we also potter around.
Commonly used to explain how we somehow combine aimlessness and mindfulness in one action to casually, and almost as an accidental by-product, spend time achieving some wistful off-hand goal to varying degrees of satisfaction.
Previous: