I tend to ship things that are not perfect for a reason … Shipping something that works and solves the problem is often better than waiting until said thing is perfect. In other words … Done is better than perfect. How many times have you (or someone you know) worked on something … | Continue reading
Have you ever wanted a specific mentor in a particular area of your life? I’m sure you have. We all have. Maybe you want a mentor for … However, most of the time you can’t find a mentor because you dont know anyone who has those skills or you simply are in an area in […] | Continue reading
Ok, I admit, this is a clickbait title, but you’re here, right? So let’s keep going. Thanks for joining me. Here’s the TLDR … I removed an AppBar that was in a ComposeView from my app because using an XML Toolbar is far simpler and required less code. Pragmatism 101. Read on for … | Continue reading
… and why it’s OK. Have you ever wondered why grandparents spoil their grandchildren? As a parent yourself, you might be wondering “Why didn’t I get this kind of treatment from my parents? Why do they give it to my child but I didn’t get it?” 🤔 I have a theory on this, an … | Continue reading
If you’re reading this, you’re probably wondering how you can make the time to to do something. Maybe its … I’m sure you’ve heard this, but its worth repeating here … we all get the same 86,400 seconds in a day, but its what you do with them that counts. Saying you don’t have tim … | Continue reading
This is the story of how I bootstrapped Caster.IO to $7,500 MRR with WordPress and without writing any code. At the peak of Caster.IO it was pulling in 16K MRR with profit margins in the 60-70% range. The site is now defunct and shut down (shut down in 2021). The domain was sold … | Continue reading
Kotlin Multiplatform (KMP) is destined for mediocrity. KMP never gain mass adoption and will it remain in obscurity; only to be used by a small subset of the software world, regardless how much it is promoted and touted as the next best thing. Why? Human nature and scarcity. Ego … | Continue reading
I built a new software as a service (SaaS) tool to manage email lists – Listomo. It’s out now. Check it out here. If you’re a creator, builder, maker, marketer, or developer who builds multiple things you’ll probably find it useful. What is Listomo? Listomo allows you to manage m … | Continue reading
What Does “Native Where You Need It” (NWYNI) Mean? NWYNI refers to the practice of using native mobile components only in areas of your app where they’re essential and optimal. In all other instances, web components (web views) are utilized. AKA: Hybrid Mobile Apps. Part of the a … | Continue reading
A clarity doc is a purposeful piece of writing that you craft to help you distill your thoughts, opinions, and emotions on a subject you're grappling with. It’s meant to force you out of analysis paralysis and into decision making mode. | Continue reading
In the startup community you’ll hear these two terms used when folks talk about building a product (SaaS, App, etc). You’ll hear things like … “I bootstrapped myself to profitability …” and “I self funded the app and found product market fit…” They sound very similar. These two t … | Continue reading
I recently migrated the majority of a lot of my Rails applications over to Hatchbox from Heroku. It’s far cheaper and the speed of the sites has drastically improved. The speed of the sites is orders of magnitude faster (I’m hosting with Digital Ocean via Hatchbox). Furthermore, … | Continue reading
When I tell people that I speak at most events for FREE, they often are baffled. Free?! Why free!?! You should be getting paid to speak. They are even more baffled when I tell them that I will often spend my own money to travel to events to speak for free. It’s usually around tha … | Continue reading
Use this stimulus controller to quickly disable attachments in the Trix Editor. When you need to disable attachments in the Trix editor you’ll need to make sure you do three things: You can do this with the following stimulus controller: Save this as disable_uploads_controller.rb … | Continue reading
You want your time back so you can focus on other things. How do you do it though? Learn how in this article | Continue reading
If you approach meetings with the end in mind, you can do almost any meeting in 15 minutes. I changed the default meeting length in Google calendar to 15 minutes (here’s now). This has given me much more time back in my life. In other words, most meeting’s don’t need to be 1 hour … | Continue reading
This post will show you how to migrate an existing attribute to a Rails 7 encrypted attribute. Rails 7 has shipped with encrypted attributes, so its no longer necessary to use something like attr_encrypted to encrypt a field. Once set up, using it is easy: This works great if you … | Continue reading
Daily and weekly standup status updates should only be 60-90 seconds long per team member. Anything longer than necessary is likely to waste everyone else’s time. If people are interested in learning more or discussing a related topic to your status update, they should stay after … | Continue reading
I worked out for 1000 days straight, this is what I learned about myself mentally, physically and more ... | Continue reading
This post explains how I created the Tailwind CSS 3 + Middleman integration that is available on GitHub. Download the source or fork the repository here. Middleman is a Ruby static site generator that makes it easy to create custom static sites with the Ruby language (as well as … | Continue reading
In my previous post I showed you how to set up pg_search to search against ActionText::RichText fields for multisearch. This post takes it a step further and add’s the ability to scope your PgSearch multisearch calls to a tenant in a multitenant based Rails application. Problem Y … | Continue reading
If your Rails model has an ActionText rich text field, and you want to make it searchable with PgSearch (pg_search) you’ll need a way to index those records. This post will show you how to do that. Since ActionText::RichText objects are stored in the database you can access them … | Continue reading
Stoa is a Rails 7 application that currently runs on Heroku. During a recent deployment of my upgrade to Rails 7 Sidekiq started failing numerous background jobs around some image processing I had. The error message in Sidekiq was: NameError: uninitialized constant Vips Here’s h … | Continue reading
Learn the 20% of Git that will give you over 80% the benefit of Git. All in under two hours. This is the ONLY Git course you need to get started with Git. After watching this course you’ll have everything you need to use Git to do your day to day job as a developer, […] | Continue reading
In freelancing, it’s pretty rare that you’ll go visit your client. However, there are times in your career when visiting your client is the sensible thing to do. There are three parts to this: Why you want to visit your client What clients you should visit How often should you vi … | Continue reading
In this post, I’m going to teach you how to ship your side projects. How to turn them into a potential business. Keyword: potential. There are no promises here. I can’t turn water into wine, people. Now, back to shipping side projects … It’s easy once you realize how difficult i … | Continue reading
When you run a freelancing business (or any business for that matter), you’ll eventually need to outsource some things. When you outsource tasks, you need to make sure that the person executing the job is fully equipped with all the tools, instructions, and knowledge to perform … | Continue reading
How do you start freelancing or consulting if you have kids and a family, and a job? This also applies if you have a full-time demanding job. Or maybe you just have a very active personal life with family. Any of these situations can make it challenging to get going. I know, I’ve … | Continue reading
About 8 years ago this month I quit too early. If I had stayed with the business and rode through the storm, I’d be very well off right now. I wouldn’t be writing this newsletter to you about this story. I can’t say that I regret giving in at the time, but as always … … | Continue reading
I’ve been posting on twitter about how mobile developers should not ignore the Flutter technology and in response I received a lot of questions to why I’m stating this. I hope this post clarifies why I’m bullish on Flutter. Build the iOS and Android App at the Same Time There are … | Continue reading
I bumped into an article that reads like an article that I would have written back in the late nineties when I was learning to program. Heck, to this day I’m still learning how to program. In software, the day you stop learning is the day you become obsolete. It was late 1998 and … | Continue reading