2022 in Review

A summary of work I did in 2022, and my plans for 2023.

Twitter

I’ve been on Twitter for years, mostly inactive, but it turned out to be the biggest and most pleasant surprise of the year. After I started publishing advice and ideas related to Ruby and Rails, the number of my followers grew from around 350 in September to over 1,600 at the end of the year. I’m grateful for everyone I met and all conversations I had there. Twitter is often the highlight of my day.

I’m going to continue publishing in 2023 and will experiment with the format and schedule of my tweets (there’s already one video almost ready for publishing). I’m @gregnavis, if you’d like to follow my work.

Articles

I started writing numerous articles, but published only four. I wish the number was higher, but in my case writing is coupled with research, so the process is more time consuming than publishing on Twitter. That being said, I’m satisfied with the articles’ quality. Here they are:

The goal for 2023 is to finish the articles I started, and continue writing on API integrations.

Active Record Doctor

Active Record Doctor has gathered a small community with regular and dedicated contributors, and over 1.6M downloads. I’m truly grateful for these developments.

The plan for 2023 is to clear the pull request backlog, handle some outstanding bugs, and release a new version. Additionally, I’d like to set up a project website with extensive and approachable documentation.

The Second Factor

I’ve never been satisfied with two-factor authentication apps, so I decided to build my own. I value applications that are native in terms of implementation and user experience. Given I’m invested in the Apple ecosystem, the choice of XCode, Swift, and UIKit was natural.

The principles behind the app, in addition to the aforementioned nativity, are privacy, openness, and freeness. I’m going to release the app in early 2023, including its complete source code, for free, without any kind of tracking, in-app purchases, or other gimmicks.

The project was not only about scratching my own itch, but also about investing in myself: I dedicated a lot of time in November and December to learning Swift, UIKit, and the iOS ecosystem, and immediately applied my learnings. An inevitable companion in my journey was iOS Development with Swift by Craig Grummitt. The main theme of the book is building an example app, enhancing it chapter after chapter, while learning various aspects of iOS development in practice. I would definitely recommend the book for learning iOS development.

Client Work

2022 was a busy year. I built three new products, and started helping one client transition their Rails app to Hotwire. Let’s have a closer look at each project.

Marketing Mix Modeling

I started the year with an MVP of a marketing mix modeling app. My client was an expert in maths, statistics, and data science, and built a complex marketing mix model in form of some Python code. The goal was to build a web app around that code, and deliver it to customers.

Since productivity was my chief concern, I picked a “boring” stack: Ruby, Rails, PostgreSQL and Heroku. There was some novelty, though: interaction-heavy pages were implemented with Hotwire and form objects based on Active Model.

The initial version got lots of positive market feedback, and my role has shifted to leading a team of developers as a fractional VP of Engineering/CTO.

Enterprise Health Tech

Health tech has always been one of my favorite verticals, so I was excited when a new project appeared on the horizon: a telemedicine company in need of a dashboard for its contracted medical staff. Since the client lacked in-house technical expertise, I chose a similar “boring” stack again, but with a twist. The client wanted to use React to have easy access to large frontend talent pool. I addressed that concern by adopting Inertia.js to get the benefits of Rails and React without paying the full cost of a single-page architecture.

Memento Mori

I also worked on a project distinct from all others: a security- and privacy-focused messaging app in the death tech space. Basically, the user is able to schedule encrypted messages (text, audio, and video) to be released after he passes on. What made the project special was the founder’s honest and complete dedication to security and privacy, including end-to-end encryption.

Those core values had to be balanced with efficient delivery and high quality. End-to-end encryption made it especially interesting: if the app crashes on a piece of data, the user shouldn’t be expected to share it to reproduce the bug in development.

To address these concerns, the tech stack was centered around TypeScript for both the app and the backend. The app used React Native with bindings to platform-native cryptographic APIs (for professional, battle-tested implementations). The backend used PrismaORM and PostgreSQL. Both pieces were integrated with jsRPC over a secure WebSocket connection. All this was to minimize the risk of shopping defects to production.

Hotwire in the Wild

Last but not least, I started working with an established company operating a large Rails app, who wanted to migrate from their existing mix of frontend solutions (some React, some CoffeeScript, some Backbone.js) to Hotwire. Our collaboration will continue into 2023, and I’m looking forward to establishing various Rails and Hotwire patterns in a mature and complex application.

Closing Thoughts

I’m really excited for 2023! I’ll continue working on two projects mentioned above, and hope to spend more time on research, development, and publishing. I’ve got a few research and development ideas lined up already, so expect to see many tweets, articles, videos, and open source projects.

Enjoyed the article? Follow me on Twitter!

I regularly post about Ruby, Ruby on Rails, PostgreSQL, and Hotwire.

Leave your email to receive updates about articles.