On par for success

Success. Well, on par for success.

I’ve archived both PermissionScope and Pantry after finishing the maintenance releases I aimed to complete. I feel great not having those two things on my plate and I’m confident that I can deflect any new changes that might come through until a later date.

I don’t have a concrete plan for the next improvement to That Thing in Swift yet but I’m thinking about a few ideas. First, the community really enjoyed the post about writing your own API clients so I’m considering something along the same lines: a dependency that lots of people use that can be replaced with a small amount of good Swift. I like the idea because it’s different than what most Swift blogs write about - usually just an introduction to using x in Swift - and it requires a bit of creativity. I’d like to experiment with a few other ideas here, maybe some livecoding/video that incorporates actual code snippets that people can copy or follow along with.

Every time I think about finishing the work required for another Treat release, I keep coming back to the sending issue. Part of the reason that it didn’t work out is that there was no compelling reason to send a treat to a friend, even I didn’t do it that often. I’m hesitant to put more work into a part of the project that won’t fix a core issue. I still consider the sending issue every once in a while, I’m looking for a simple hook that could change the reasons for sending to something meaningful which would get me working on all those pieces again.


The last few posts have been new ideas! so let’s review: Pay by Tray is still an interesting idea but unless a restaurant owner who was really psyched about it fell into my lap, I probably won’t go anywhere with it. If that happens in the near future, I’ve already done enough thinking on it to ramp back up quickly enough. Successful projects (of this scale) require deep connections or lots of luck. I don’t have the former so I’ll keep it in the back of my head in case the latter appears.

Watercooler still fixes a problem I have (not enough social interaction while remote contracting) but I came up with a slightly different plan to tackle this for the time being which is probably better for me right now. This issue will probably be more prevalent in the future as remote work is more common and I still think it’s an interesting problem to solve (in an interesting way, not necessarily this one). In the meantime, you can sort of force this by just jumping on a random blab when you’re bored. It seems like most of the people there are in various states of boredom anyway.

I briefly looked into the tech I would need to build a stream of conversations from your friends on Twitter as mentioned here again. I came back to the idea after a while because it’s sticking in my head like a thing that might be a fun way to see what’s going on just outside of your social circle. And it seems like a thing that could be popular. I took a stab at it with pure js the other day but it looks like I will have to do some sort of oauth implementation which is more complicated than I wanted to get into. I then jumped over to Go to see if I could figure out the API calls needed to discover conversations in the first place but I ended up not wanting to spend a couple hours just getting back up to speed with Go. If I’m only interested in proving that it’s an interesting idea at the moment, I might as well do a quick swift implementation on the phone or iPad since that will be the least language friction (but UI still required).

I think I covered this before, but I’ll reiterate that ideas are super cheap and saying “No” (or just letting things die in this case) is not something that I’m concerned about. I like looking back on all this regardless of success.

Projects and Watercoolers

Many little changes since last time. I resolved the last remaining PermissionScope issue and the release went out just in time to get back on the Swift trending list on Github. 36 ⭐️ so far today, just passed 2000 overall! I would like to move this project to “archived” and defer any new work until later - for me, this is easy. I still have to figure out how to communicate this effectively to new PRs that come in 😬

I finished off a new post for That Thing in Swift regarding building your own API clients in Swift. It was definitely a hit, lots of tweets and talk about it which gave the site its best day ever (just over 2k uniques and almost 3k views 📈). Most of the traffic on a normal day is from organic search which increases naturally as more people learn Swift but my goal is to actually hit more first page search terms. It remains to be seen if just writing more posts == more search traffic.

I did a bunch more work getting the blog category pages working. Now if you click on a project in a post, you’ll see all posts mentioning that project. I really think the color coded project names help a lot with this! I can scan a bunch of posts and identify the paragraphs mentioning that project fairly easily.

Pantry had some new, good pull requests which I merged in. I’ll be setting up a new 0.3 release soon but I want get releases working via fastlane so making a new release isn’t such a pain. Prototype here, make sure everything works OK and then I can move the process to PermissionScope .


Lastly, a new idea: I realize (now, finally) that working from home has some serious drawbacks in terms of socialization. Maybe this seems obvious to you but I never really considered how much I enjoy miss meeting new people and hearing about their projects and sharing my own. There are lots of ways to accomplish this, I’m trying to figure out which one is right for me.

A Virtual Watercooler

One idea I’m playing with is a combination of pomodoro timer and video chat. An app of some sort that times you for 30, 60 or 90 minutes of work and then connects you with someone else taking a break from work for 5 minutes of chat about what you’re working on and how it’s going, that sort of thing.

I actually like the idea that you’d run into the same chatters a few times over the course of a week, it gives you an opportunity to learn about the process other people are going through. It behaves a bit like a water cooler where you have a chance to run into a finite set of people but which one is semi-random.

Still thinking about how to set up a minimal test case without too much engineering (remember our promise?). Probably just a website to start!

First week wrap up

Plenty of progress this week but no luck with paring down the list of “active” items to the ideal 2-3.

I cleaned up the rest of the potential items for a new PermissionScope release and made a change that I thought fixed the one remaining issue but it turns out not to be the case. Back to debug mode there.

I reviewed the one PR for Pantry and I’m just waiting for it to come back with some small changes before the 0.3 release is made. Still have not reached out to that contact about promotion though.

I did a little promotion for That Thing in Swift - unexpectedly, really - so some extra views early this week there. I got some positive feedback on a topic I started a couple weeks ago which I have a feeling will be relatively popular and well-shared. I will at least make progress on that post this week.

Mostly the beginning of this week was about catching up on some contract work. Seems like I’m ahead of the curve there at the moment so perhaps I’ll have more time to work on the tasks that I didn’t hit last week.

Definitely feeling the pressure to archive the VR project , it’s stagnating a bit and I’m not quite sure where to go with it if I don’t have any contacts inside the sports organization that I’m aiming for.


I’m torn on if I should include interviewing as a separate project. It is definitely a big focus at the moment and takes up a good chunk of my time.

It’s sort of like a big meta-project: I’m talking to people about existing projects and new ones, trying to figure out what’s interesting and worth the time to dig into further. I’m fortunate enough to not be under pressure to pick something immediately and taking your time with job decisions is one way to have control over a process that is frequently out of your hands.

For now, it stays off the list.

Coffee and phone calls

I thought a couple weeks of interviews would give me some nice downtime to wrap up a few projects. Turns out NOPE, it’s just an endless series of coffee dates and phone calls.

A few people have warned me to be super picky - possible because of the incredible demand for iOS developers - which is a great position to be in but also quite daunting. I still want to go through the first couple of steps with most people, until the ‘cons’ list starts piling up at least.

Perhaps this is what normal non-engineer days are like? There are people who essentially have ‘coffee and phone calls’ as their job description. That would probably take some getting used to but not entirely impossible.


Still, a few things did get done in the first half of the week. I made the necessary fixes for a much needed PermissionScope release. It’s mostly cleanup and bugfixes but I think I let the whole open source thing get away from me a bit so this was an attempt at getting the project back under control where I understood everything that was going on.

Try Again is actually on the public internet now, albeit in very rough form. It’s the standard publish-with-hugo-sync-to-s3 method I’ve been fond of for a while. I’m still narrowing down how to manage all the project views in the sidebar. I think it’s going to require some fancy templating work but that’s what I’m good at (definitely the thing I was known for when working on Movable Type), plus Hugo has an interesting data-driven content tool that I’ve been itching to experiment with.

The remaining time was spent on the couple bits of contract work I have currently. I don’t find balancing client needs all that difficult when all I’m doing is contract work but when I’m trying to work on other projects or interviewing it starts to reach the conflict zone. Still, it’s not a ton of hours right now so it’s relatively calm.