Looking back at 2022, I worked on a whole lot of side projects. I do this mostly for learning purposes, solving problems that I personally have in my own workflow.

This year I did a lot of “development live threads”. I’d make coffee in the morning and pull an idea out of my backlog and see how far can I get it by about lunch time. I post screenshots or comments every 10-20 minutes and a lot of people engage on twitter during the time. It’s fun!

In this post I’d like to share an overview of 12 of my favorite side-projects from this year!

1. Data Tile

Debugging can often be challenging. Many of the tools that I’m building are solving micro-problems that I have while developing. The data tile is addressing many of these in a more general way β€” it lets you print or log useful data and then monitor it seamlessly in an automated way.

This is something I’m actively polishing and aiming to release as a product. I think just about any iOS or macOS developer can get value off using this.

2. Got jobs?

Got jobs is a Safari extension I developed to help me quickly check if a company is hiring. Often times the jobs page is hidden in a footer or a sidebar and it can be very frustrating to find it. I’m looking at you companies that insist on having crazy on-scroll animations.

“Got jobs?” scrapes the current web page and finds the Jobs/Careers link automatically.

3. Rex Tables

In the last years I worked a lot on optimization, performance, automation and code quality. This required that I work most of the time with text logs, JSON files, test logs, and more.

This year I built a tool that helps me “unlock” all the structured data automatically instead of scrolling through text files and trying to make sense of the data hidden inside.

I posted a lot of development updates on Twitter but here’s a short walkthrough video:

4. Swift Light

My Swift scripting IDE. I use predominantly Swift for scripting on the mac but the experience isn’t as streamlined as I wish it to be β€” that’s why I made myself a scripting IDE where I can quickly add features as I please.

I worked on many of the IDE features posting progress publicly on Twitter. Here are just some of them:

Instrumenting code

Pinning messages in the editor

Ultimately, I ran a beta with a closed group and some of the feedback felt so aggressive that after some time I lost motivationg to work on this. The lesson learned here is to more carefully select the group to talk about product ideas, especially early on.

5. Timelane 3

Timelane is a custom Xcode instrument helping with debugging RxSwift, Combine and other reactive code. You can download Timelane 2 from here: https://timelane.tools

This year I worked on Timelane 3 that included special features for debugging async/await:

Xcode came with a pretty good built-in async/await instrument so I felt there was no need to compete with it and canned the Timelane 3 release.

6. SwiftUI Bot

I’m very visual and using SwiftUI constants for font size just doesn’t work for me. It’s been a while that I wanted to have a little tool that helps me when building SwiftUI user interfaces and I took a day to create it.

7. MarkCodable

I love markdown and I use it for a whole range of interesting things. It only made sense to also use it as a data storage format.

I released an open source package that adds Codable support for markdown.

Here’s an example of what kind of workflows using MarkCodable enables β€” I made a walkthrough for Rex Tables in literally no time by combining Pow and MarkCodable.

8. timeui

Similarly to other of the tools I’ve built β€” this is a tool that helps you on the command line to debug and profile.

This is a GUI powered command line tool that runs a timer and shows you signpost regions of another process:

This is open source so you can grab it and use it: https://trycombine.com/posts/introducing-timeui/

9. DoNilDisturb

In summer I worked on an Xcode plugin that prevents you from working outside of working hours and on public holidays.

Once you add the plugin to your project, Xcode will fail to compile your code outside of business hours. As simple as that!

I love this plugin.

10. Core Game

I worked on this pretty much in private, posting only a few screenshots. It’s a story-driven game that happens in Xcode’s documentation window.

The story, as it is in the moment, is following through your career as a software engineer. Here’s the game dialogue when you get fired and looking for a new position:

I still think the idea is really fun. I have the game infra and the layout but I think to build a complete game I need to pair with someone with more experience in this.

11. Powerups

While working on Timelane 3, I also built a markup language for building custom Xcode instruments to avoid having to work with 1000s of lines of XML in a single file.

This was a nice excercise to bring forward my understanding about what build tools can do. I posted a blog article about this here: https://trycombine.com/posts/xcode-powerups/

12. Heaviest running-time trace

While brainstorming on interesting developer tools, I built a simple prototype that takes your Swift project, injects runtime logging, compiles and then instruments it.

Ultimately, you can use it to automatically gather insights about command line apps built with Swift (of which I do a lot).

I think this is handy tool, but hardly a product so it just stays in a folder somewhere around here.

Where to go from here?

I was fairly focused on some niche problems the last years while working with my team at Apple and shipping Swift DocC. 2022 was a year of learning for me and I loved it. Building a whole range of fun side projects felt really good and I feel totally recharged and inspired. I’m looking forward to 2023.

If you’d like to support me, get my book on Swift Concurrency:

Β» swiftconcurrencybook.com Β«

Interested in discussing the new async/await Swift syntax and concurrency? Hit me up on twitter at https://twitter.com/icanzilb.