One of the ideal things about taking TogetherLoop with me at sea was that it revealed some issues in crappy bandwidth situations. That also led to some necessary but nice changes. I had to chunk video uploads, which in turn meant that I could show a progress bar, which is neat.
But the other thing that's neat is that a small number of my friends, some of whom know each other, are using it. It's not a huge frequency, it's about what I would expect for a social network not built to drive engagement. That's super satisfying. It demonstrates, if anecdotally, that there's a need for this. I'm not sure if others would be willing to pay for it, but I guess I'll find out when I get to the point of eventually asking people for money. I'll still keep the OG's in for free for life.
This is for me, first. I find it useful as a place to post stuff, not for an audience, but for me and a few people that I think might be interested. If it can do that, I'm satisfied. I already have 60+ photos up there, which seeds my future "on this day" feature. So now I have to start asking myself what the next goals and milestones are.
The next milestone is signup that isn't invite based. Right now I have to approve everyone. I need to set up a seamless onboarding process that also validates a real email.
After that, accept money, start enforcing the two-tier membership. I want it to be free for read-only folks. They can like stuff, but not post anything. That's where you get grandparents or whatever in to look at your baby and/or cat photos. To post stuff, I think I wanna do $3/month, in 6-month increments. I consider this successful if it can break even. If it can turn into a lifestyle business, meaning a real job that pays the bills (see my "offboarding" post), even better.
I don't have any ambitions beyond that. Not yet, at least. I think this has been so much fun to work on because it's for the fun of making it, and making it for me and friends. Right now, I need something to cling to that feeds the soul. It's been a rough few months.
The Internet tells me that there is a one in four chance that women will have an appendectomy in their lifetime. It's about twice the odds of a man, because women have a lot of adjacent procedures where they're already in there removing stuff. The more you know. Well, apparently it was Diana's turn.
Diana was having abdominal pain yesterday, and actually the night before, but she just chalked it up to gas or something. But it kept getting worse, until around 12:30 a.m. this morning, when we decided it was time to go to the ER. I couldn't imagine that it was anything other than a bowel obstruction or appendix if it wasn't going away, and it turned out to be the latter. They had her on morphine, and she had a CT around 2. There was some problem in radiology (technical or staffing, I don't know), and we waited and waited to hear about the results. Since she was out from the morphine, I left at 3:40, knowing that I had to get Simon up in three hours for school. I slept poorly for about two hours and did that. I had to drive him because of a driver issue the day before, and just before we left, she called to let me know that she needed an appendectomy. That was five hours after the CT. Simon didn't even know she was in the ER, so I left it that way and took him to school.
Diana was still loopy from drugs, so she suggested I squeeze out another hour of sleep, which went poorly because of the kittens playing grab-ass on the bed. By this time, she was transferred to a real room, and on the schedule for 3:30 for surgery. I got back to the hospital finally at 11:30. The plan was to fetch Simon out of school an hour early, so she could see us in pre-op. I was firm in describing to Simon that this is the most common abdominal surgery there is, low risk, and relatively routine (if there is such a thing with surgery, though I referred to it as a "procedure"). He panicked a little, and did not care for all of the wires and tubes, but he did OK.
Sitting around waiting for her felt like a horrible idea, so I took Simon to McDonald's for an early dinner at 4. Just what my now-activated IBS needed. Gross. We got back to her room around 4:30, when the surgeon called and said everything went smoothly. Now she's just sleepy and recovering. It's been a rough 24 hours for Diana, and I'm just glad that she's OK.
I finally have reason to be happy that I don't have a job, because today was rough, and I'm running on fumes. Because American healthcare sucks, there'll be a nice big deductible for this, after the ER co-pay, and because she's changing jobs, our deductible clock starts over again next month. On the other hand, we have a good reminder about how special medical workers are, from the security guard to the nurses to the doctors. Their kindness is unmatched. We all experienced that during Covid, and I feel like we've already forgotten.
I have pretty much the best therapist ever. I haven't stuck with one this long ever, and it's because she legitimately helps. The last few months have been challenging for a bunch of reasons, not the least of which is that I got RIF'd in January. I have a lot of runway, but it still makes me uneasy for reasons that are not necessarily logical. But she gave me a different way to look at it.
While I was thinking of the lull in work as a sabbatical, that's hard to do when you can't really nail down when the end is. In many ways, it's not up to me. What I could do is look at this more as a trial "offboarding" run. What is offboarding? It's my new word for "retirement." Something that has been clear to me for a long time is that retirement in the classic sense isn't really what I want. If your idea of retirement is sipping martinis and getting up whenever, I think that sounds terrible. Humans are wired to need purpose and intent. Offboarding is the idea that you leave your lucrative 9-5 to pursue specific things that feed your purpose and desires. That's what I want. Also, I don't want to wait until I'm in my 60's for it. No thanks.
So if I were to look at this break in work as a trial run for offboarding, what would it look like? Well, we're not empty nesters, and not ready to downsize, so I have to take those parts out. For the real thing, those would be steps to take. But what would I do with my time? I've explored this to a certain degree, by trying (failing) to make a documentary, learning lighting design, and being an amateur pinball tech. With a day job, you can't commit to these in the same way. For whatever reason, the thing I landed on without choosing it is building TogetherLoop. It mostly didn't exist two months ago. I don't know if it's a business or hobby or what. What I know at the moment is that working on it is satisfying in a way that few things have been, in a very long time. That's what I want offboarding to look like.
Is that it? No, because I think part of what I want out of that experience is the joy of working with others. That's one of the things I certainly enjoyed most about my job. Making stuff by yourself is gratifying, but it's even better when it involves others. Maybe that's what I'll need at some point, working with an investor-maker type. I don't know. Maybe what I need is a marketer.
The point is that I understand more clearly how what I used to call retirement looks. Even if that isn't near-term inevitable, it's good to understand it now.
I'm not sure why I subject myself to the LinkedIn algorithm, because it's not any better than what Facebook does. As a software engineering manager looking for a job, it recommends a lot of nonsense by self-labeled AI experts. The people who engage with them infrequently bother to look at their profiles to gauge the relative credibility of the person. So I see endless lines of soothsayers predicting the future about something that I don't think they understand.
Large language models, which is what people really refer to when they refer to AI, make determinations about the way languages work by taking in mountains of data, and refine that "knowledge" with human feedback. I can't emphasize enough that they don't invent anything, and what you may perceive to be judgement is just an algorithm basing its output on what it has seen before, right or wrong.
So with this in mind, consider agentic software coding. The models are based on code that it has seen before, which probably involves a lot of open sources software, of which most of it is pretty bad. (Not a knock on open source, but a general observation of code in general.) Like the "experts," the LLM can't make a determination about who writes great code and who doesn't. It similarly cannot judge the credibility of people giving it feedback. It gets back to the oldest cliche in software: Garbage in, garbage out. But while a person can judge credibility and experience, an LLM cannot. That's why chatbots can be made notoriously racist in record time.
There is no question that agentic coding is amazing, and I would not go back to life without it. But I won't let my enthusiasm for it cloud my judgment. For every instance of amazement that I experience, comes something that's just incredibly stupid. Today it was the generation of 50 lines of Javascript for what could have been one line of CSS. It's not a person, it's a tool, so calling it stupid is probably the same anthropomorphic mistake that the "experts" make.
Now apply that to all of the other things that people selling stuff say it can do. I can tell you that managing people is really hard sometimes. AI can't mediate colleague conflict, it can't lookout for harassment, and it certainly can't mentor people if it doesn't even know what's right.
Let's focus on what we know. In software engineering, AI is a great tool that takes care of the mundane parts of coding, which is to say the coding. But it needs supervision, it needs context. The stakeholders that must provide that have not changed.
The New York Times had a solid retrospective on Zuckerberg's insistence that the metaverse was the future. His company has mostly put that effort on life support. I mean, did anyone not see that coming? No one really wanted that. No one really trusted a company that knew it was turning teens into addicts. And a company that required people to work in the office obviously wasn't that sold on virtual work itself.
What's interesting to me is how so many business leaders bought into it, even though they couldn't really define what it was. Media companies in particular seemed particularly nervous about it (I'm looking at you, Disney!). But I'm not here to celebrate more job losses, or offer "I told you so." I'm more interested in looking at the hype cycle, and what the next one looks like.
The suggestion that the metaverse was something we needed for meeting virtually of course seems silly when we already learned to work via Zoom by then. This time the hype is about AI, and it's different. It's different because AI, in certain contexts, is useful. It's the context that is often misunderstood. We've already seen an unearned confidence in AI tools that have caused leaders to cut back on their workforces. They don't have much to show for it yet, and what little academic study that has been produced suggests it's not going to work out the way they expected.
Think about it. LLM's are just really impressive algorithms that can identify patterns. And while they're programmed to exhibit what looks like confidence, it's just a semantic choice. LLM's do not innovate, they are not creative, and above all, they can not read your mind. The optimists seem to believe that LLM's are capable of all of the above.
What they are outstanding at is generating code under supervision from experienced engineers, quickly, reducing the length of the iteration cycle. That allows stakeholders of all kinds to get to the product they want faster. The opportunity is not to do more with less, it's to do more with more. This is the adjustment that needs to be made in this hype cycle. AI is, fortunately, not the metaverse.
You know that feeling where you get back from vacation and it's kind of a bummer because you have to go to work? I'm having that feeling now, only because I'm not going back to work.
The unusual feeling I suppose is because I spent four years doing stuff with the same people, and now I don't. I gotta admit, that's new territory for me. But it does reinforce what I've known for a long time, that in the long run you probably won't remember the work, but you will absolutely remember the people.
I imagine that's why I was slow to start applying to new jobs. I wasn't in a hurry to go back to work with different people. Certainly I will find situations like this again, and will meet more excellent people. But I seem to be mourning the loss a bit more than I previously have from other departures, willing or not.
These are weird times. When the Angi RIF went down at the start of the year, I kind of felt a sense of relief. I loved the job, felt good about doing it a few more years, but suddenly I didn't have to worry about any of the things. It's the kind of break you only get between jobs. So for the first month, I pursued just the leads I had through my network. One showed promise, one was clearly not for me, and four others ghosted me.
One month in, I started applying to all of the things, and trying to find humans behind the things, with limited success. Things have changed dramatically in four years, since I last looked. I'm pretty convinced that humans are less involved than ever, which seems like a pretty horrible way to go about hiring. I use the robots for a lot of different things, and it's stunning how much they get wrong. I wouldn't leave hiring to them. Regardless, it's discouraging.
At the same time, I get excited about the potential of everything. It could be a self-defense mechanism, masking anxiety in optimism. It's around everything, like what I could do, how I can spend all of this spare time, how I can set us up for empty nesting, etc. After the requisite morning job seeking, I've been pouring energy into TogetherLoop, and I'm the happiest I've been coding since building MLocker.
But I find myself tentative toward joy. Some of that is parenting, which is hard lately (always?). And I catch myself feeling like I don't have the time to be not experience joy, which is about as midlife as it gets. It's wild that even in this stage of life, I'm still looking for the same things I did as a teenager or college kid. Where do I fit? How do I define my value? Am I having positive impact on the world? Sometimes I don't like the answers I come up with.
I need a vacation from this. Fortunately I paid for one late last year.
Since my colleagues and I got RIF'd about two months ago, I've been on a real tear working on TogetherLoop. I needed a project, and frankly the AI makes it a lot easier for a single human to crank stuff out. Since then, I've made about 200 commits and deployed about 60 times. It was pretty easy once I got all of that automation in place.
But while I have I think the most serious of bugs handled (which the AI sucks at, but that's another post), I need to just let it sit for awhile, and actually use it. That's tricky, because what I really need is other people to use it so there's something to interact with. And that's weird because the whole point of the app is not to drive engagement, just record what you want, read what you want, and get out.
I've been out in the world making posts to it, and it seems to work pretty well. I need to get the video figured out still, in a way that won't cost me a ton of money. That'd be less of an issue if a certain phone maker defaulted to the same standards that everyone else uses.
So the plan is to fix anything serious, but otherwise just use the thing. And look at my activity graph!
Well, after a week or two of bug fixing and tweaking, I think TogetherLoop is good enough to put it in front of people.
This is a weird thing to build, because it's value isn't tied to the quality of the code or design, it's tied to the volume of people who use it. More specifically, it's tied to the number of people in your circle of friends that use it. To that end, I don't think reaching people to try it is the challenge, it's getting them to invite others.
I'm still messing around with video. The trick is finding an economical way to transcode video without having to provision a bunch of infrastructure. I won't get into all of the technical reasons that it's challenging, but I'm being careful because right now I don't have to spend anything extra over what I'm already using. Well, that's not true. I'm paying for a CDN to load the app itself. I'm not certain that I'll keep that, because I'm not convinced it's really any faster.
It's fun to actually ship something new on my own. I've had all of these projects sitting around unfinished, and I self-loathe for all of the undoneness.
In between countless posts about AI that could be summarized as, "You're doing it wrong" (boring!), there are folks making genuine efforts to find the best way to work with the tools. And the truth is that you've seen this before.
On one end, there are people coming up with frameworks and tooling to give the AI what it needs to get their coding output right. These come in variations on specs, detailed requirements, and most importantly, outcomes. They try their best to account for edge cases, too. At the other end, you've got the vibe-coding, surrender to the robots and go for it crowd. They get something that kind of works pretty quickly, but requires a lot of iterating to get something production-ready.
You're probably already seeing where this is going. These are parallels to waterfall and agile methodologies. It's not a perfect comparison, but there are similarities. Also not surprising, the former lends itself to product leader thinking, while the latter is engineer biased. This arrangement should raise an eyebrow about what AI is, and what it's truly capable of. Let me get back to that.
In the pre-AI world, we navigated this world already. Waterfall never really delivered on the intended quality outcomes, and took too long. It was built on assumptions that didn't account for the way that users actually interacted with the software. Agile is a good idea that has been hopelessly corrupted by associating it with tools and artifacts, ignoring what the Agile Manifesto said, "Individuals and actions over processes and tools." For those of us who have enjoyed working with productive teams, we know that being iterative with the right amount of context is the sweet spot. Build as little as you can, challenge your assumptions, repeat, and you're at the right spot when the stakeholders are happy with the outcomes.
We're going through the same journey we did without AI, and applying it to the AI. We're so convinced of its human-like interaction that we just have to apply what we already know. Is this an accurate assessment? Again, remember that AI does not have judgment, creativity, and it annoyingly doesn't ask questions very often. But these two approaches do have similar outcomes, with the same pros and cons. The anthropomorphizing of the AI in this case seems to be appropriate.
It also shines a light on what I've been saying all along: AI-assisted coding is faster in the hands of an experienced software engineer, but the coding was never the hard or time consuming part of making software (just the most expensive part). It doesn't eliminate the need to decide what to build, and why, which is what you have undoubtedly spent many meetings discussing.
So save your anecdotes about the one guy who built a social network in a few weeks (that's me!), or the one that built a compiler surrounded by an enormous existing test suite. Those aren't typical. AI makes coding more fun and productive, sure, but that's the smallest part of the process.