Article Archive

This is the list of everything I've ever written. If you want a curated list of my most popular articles, you can find them here. Get updates when new articles are published by subscribing to the newsletter.

Stop fighting holy wars

There are many “holy wars” in tech, and you’d be best served to stop participating in them. These discussions are bikeshedding: Spending an outsized amount of time and energy on trivial details. And when talking in public, they don’t paint you in a good light. In sport, they can be fun. However, I think getting

​Read More

Quarantine Work is Not Remote Work

I’ve worked remotely for nearly a decade: Either self-employed or at a job, it was always completely or partially remote. I can count myself as blessed during the current situation; I have a full-time job in an industry that hasn’t taken much of a hit. My job, knock on wood, is safe. I know others

​Read More

The Dangers of Content Platforms

Platforms are a useful tool, but it dangerous to use them as the primary home for your content. If you want to start publishing, you aren’t required to set up your own domain and personal site. There are platforms available now that allow you to post instantly, but I strongly suggest that you set up a site you own from the beginning.

​Read More

Which Shapes To Write? A Guide to Choosing Content Forms

How you write, what you write, and where you write should change based on your current goals. Your content strategy should be fluid. When setting goals, this is why it’s good practice is to review periodically. Here are some ways you can adjust your writing practices based on what you want to achieve.  Pieces of content can serve

​Read More

Side Hustle to For Investment, Not Income

If you have a side hustle, How much money does it bring in compared to your job? Have you considered the possibility that you could one day quit working for others and instead work for yourself? It can be hard to imagine moving from employment to making money solely off of things you create, especially

​Read More

An Actionable Definition of “Content Strategy”

While publishing more is almost always better than publishing less, it would be better not to publish randomly. For years, I fell into the trap of writing was Rochelle Moulton calls “a flea market of ideas.” The only overarching topic was “what Glenn is interested in this week.” Other times I’ve seen companies create content for content’s sake.

​Read More

5 Ways to Carve Large Pull Requests Into Bite-Sized Ones

Substantial, complicated updates break software in large, complicated ways. Smaller, simpler changes break in smaller, simpler ways. It would help if you considered applying the “ship more, ship smaller” mindset. It’ applies the single responsibility principle to your pull requests. Avoiding large pull requests also means avoiding arduous code reviews and delayed deployments. Here are five patterns

​Read More

Case Study: 1 Talk + 1 Article = 2 New Clients

Occasionally you get lucky and catch a wave in your career. Technologies come and go. If you adopt new technology before it crests, you can position yourself as someone proficient with that technology and can set yourself up for some great opportunities. Here’s how it happened in my career once. Why I Learned AngularJS Early

​Read More

How To Improve Documentation For New Users

Documentation has to fill the roles of onboarding new users as well as supporting existing ones. It has a marketing role when people read your documentation to get a sense of how your product works. Before signing up for a new product, I look at their API documentation. Chances are I will need it at

​Read More

What’s The Best Publishing Cadence?

If you’re starting a new blog or other publishing habits, how often should you be publishing?  My recommendation is to publish regularly, and as frequently as you can manage it.  The most frequent I’ve seen by individuals is daily. Seth Godin is famous for his daily blog, which has over 7,000 posts and counting. Seth

​Read More

Code is a Liability

The most valuable conversations I have with product leaders are the ones where I fire myself. Sometimes the best solution is not writing more code. Writing code comes with tradeoffs worth considering before starting a new initiative. All code, even perfect code, requires maintenance. Maintenance includes more than repairs when needed. It also includes hosting

​Read More

What BuzzFeed Can Teach Us About Image Sliders

Image sliders: People don’t click them, read them, or like them. You can come up with a better way to use your home page and present your content. Image sliders are ubiquitous across the web. I can’t complain, I’m part of the problem. Over the years I’ve built my fair share. However, now when asked

​Read More

How do You Make Technology Stack Choices?

It’s something we all do from time to time, but I’ve never thought about codifying how to do it effectively. I get irked by articles like “React vs. Angular vs. Vue.” It’s not a competition. There is no “right” answer. There is only the best choice given the context and constraints of the decisions. What’s

​Read More

How to Choose Your Blogging Platform

There are more tools and channels for publishing content online than ever before, but getting started is also more daunting than ever. It’s because of the paradox of choice. Heightened anxiety caused by more choices leads to analysis paralysis. Tools should be used to enable your work, not deter you from it. If you want

​Read More

A Holistic Guide to Marketing Page Optimization

When people talk about optimizing their site, they could mean a few different things. Are they talking about performance? Are they tracking a certain engagement, such as email signups or clicks on a call-to-action? These go hand in hand. Bugs and performance issues will cost you sales and signups. The same goes for Usability. The

​Read More

Set & Achieve Your Goals Using OKRs

Plenty of people will tell you the importance of setting goals. What people don’t tell you is how to choose, set and accomplish them. In Measure What Matters, John Doerr lays out OKRs, an approach to goals to tackle these challenges. It’s used by tech industry juggernauts Google, Intel, Adobe, and Intuit and others.

​Read More

The Budget is Set. Now What?

Projects are sometimes doomed long before any designers or developers are brought in. Your work will never provide value or even see the light of day if you are working on something where the only possible outcomes are failure and mediocrity. But some can be saved. You can make it work. Your career will be better off if you can learn to avoid these projects and work within given constraints.

​Read More

How to Find Leads & Niche Down? – Reader Question

Recently I received these questions from a reader: What has been your best method for lead generation as a programmer? Please tell me a bit more about this in detail if possible because this is the most important question I wanted to ask you. Do you target only a specific niche? My Answer: How To

​Read More

Moving Fast Without Breaking Things

Why is speed important?  One of the most common recurring conversations I had with startup founders was how to get products and features out the door faster. Typically, all is running smoothly until it’s time to actually push your work out into the wild. People want to buy the poster that says “move fast and

​Read More

Reading Articles Because You’re Bored, Huh?

When people ask me how work is going, my response is “the good kind of boring.”  How so?  No pressing deadlines. No sense of urgency. A tried-and-true tech stack. Feedback comes in, and I implement changes. I send code off for review and review others — Features ship. Bugs die.  It’s not terrible. But, when

​Read More

Choose Your Next Article Topic With This Exercise

When I fall out of my writing habit, most often it’s because I can’t decide what to write about. Choosing an article topic can be paralyzing. Here’s an exercise I use to come up with new topics. Afterward, the issue is not that I have too little to write about, but too much. When coding,

​Read More

Writing With Siri

I’m writing this using Siri’s dictation feature on my iPhone. This new method of writing first draft has been a game changer for me. It’s more accurate and sophisticated than I was expecting. Once I got used to the cadence(Saying “Period. New line.” and stopping every 30 seconds because due to technical limitations ), it’s starting

​Read More

Why I Quit Freelancing

After a second full-time stint, I’ve decided to seek full-time employment opportunities. I’ve had a few people ask me why I’ve made this switch, so here’s my reason why. First, to clarify:  I don’t mean to put freelancing as a profession or those who make that career choice on blast. I have plenty of friends

​Read More

Freelancing vs. Employment — When to Go Solo and When to Join a Team

Most creatives freelance at some point. Either as extra nights-and-weekends work, filling gaps between jobs, or building your own business. I advocate for learning the basics of doing client work. It gives you immutable job security. If you know how to find clients and profitable work, you’re never unemployed. The ability to fend for yourself provides freedom. At some point, you’ll face

​Read More

What is a Marketing Developer?

When surgery was invented, the job title “surgeon” came with no modifiers. It didn’t matter what needed to come off or go in, you could see the same person. As medicine advanced, the job splintered. More knowledge meant increased complexity which necessitated specialization. Soon you would see one person for your war wounds and a

​Read More

What Did The Contractor Say to the Consultant?

There are three terms used for a technical service professional, often interchangeably: contractor, freelancer, and consultant. Let’s put a more specific point on it. Contracting… is the closest to employment. As a contractor, you are effectively an employee that doesn’t get benefits or pay payroll taxes. Engagements are often months in length, and 40 hours/week.

​Read More

Salutation Formatting For Nameless Subscribers

It’s a common use case: You want to personalize someone’s email by using their first name. You may try to use a liquid snippet like this: Hey {{ subscriber.first_name | default: “” }}, But there’s a problem. If the first name isn’t set, you end up with this wonky salutation with an awkward space: Hey

​Read More

Who Do You Serve? Defining Positioning

The first problem any service business needs to solve is deciding who they are going to serve. Being a generalist makes marketing harder. If you’re talking to everyone, you’re talking to no one. Other consultants Philip Morgan and Jonathan Stark advocate for what they call the fool-proof positioning statement: I help $TargetCustomer solve $expensiveProblem. Unlike

​Read More

How To Use Pipedrive to Close More Sales

Many sales conversations go nowhere. It’s frustrating and like it’s a waste of time. How often do you start a conversation with a potential client, only to have them ghost you after two emails? Having a process to follow up and start new discussions helps alleviate this problem. I use Pipedrive to keep track of this,

​Read More

A Workaround for CSV Upload Limits

Sometimes, applications have a limit on how many records you can import at once. Sometimes massive imports flag for a manual check, adding a roadblock to your work. Want to split one CSV into many quickly and avoid those pesky upload limits? Here’s a short bash script I use to split .csv files into multiple files while maintaining the header

​Read More

How to Run Losing Split Tests and Still Win

By showing different variations of a product or feature to segments of your audience, you can quickly learn what works and what doesn’t. There’s a reason that every major tech company such as Google, Apple, Uber, etc. Use split testing as a part of their design and research process. Done correctly, you can learn about

​Read More

12 Ways to Increase Revenue With Drip

Email marketing is so much more than a “weekly newsletter” these days, and with powerful tools available at lower price points, a lot more companies can take advantage of these. My go-to tool is Drip. It has a great balance of affordability, simplicity, and power.  There’s a lot of businesses out there that could gain

​Read More

Using Growth Initiatives To Increase Focus

Is your marketing department allergic to project management? Here’s a strategy that might help you reign in the chaos a little bit: Morphing my vague marketing tasks into discrete, measurable projects: I call them growth initiatives. Others call them experiments, which I don’t use here because when I say that people tend to think “A/B testing”.

​Read More

The Difference Between Marketing and Growth

Marketing and Growth are two terms have different meanings depending on company culture and context. Here’s how I think about the difference: Marketing is the discipline of increasing the number of eyeballs on you. Marketing is focused on lead generation; building email lists, getting people to sign up for free trials, and general brand awareness.

​Read More

How to Increment a Custom Field In Drip

Let’s say you want to keep count of how many times a user performs a certain action in Drip, how can you do that? Drip doesn’t support this feature natively, but it’s easy to implement. Here’s an example using a rule that counts the number of times a user completed a particular event: Check out

​Read More

How to Write More Analytics Friendly Code

Why Does Tracking Matter?  Software built for business should be useful to the consumer and valuable to the company that produces it. To optimize software towards these ends, you need a way to track results. No analytics tool does this out of the box. You can install Google Analytics and see how many monthly visits you

​Read More

How do You Create a Portfolio Before You Have Clients?

Clients buy based not on what you can potentially do, but what you have already done. A portfolio showcases previous accomplishments, but if you’ve been doing work for a company, you may have an NDA or non-compete clause in your contract preventing you from showing off your work. Having a portfolio reduces the risk of hiring

​Read More

How to Raise Your Rates with Existing Clients

Every Freelancer I Know(Myself Included) Made The Same Mistake Starting Out: Charging Too Little Maybe it’s because they didn’t have experience. Maybe it’s because they thought the formula was rate = salary rate / 2000. They didn’t consider all the overhead and liability of being an independent business owner. The Good Ones Wise up. They

​Read More

Increase Retainer Profitability Using Assets

One way of selling retainers to clients is what I call the “cell phone plan retainer”: A client pays you $X,XXX dollars a month, and you work for up to XX hours that month. In effect, you are pre-selling a bank of hours. This approach comes with tradeoffs: You get recurring revenue, and your client

​Read More

It’s Never About Your Slide Deck

Hey there, I’d like to share a story with you about my first conference talk, back at the end of September.   The First Day September 28th, I arrive in Norfolk, Virginia for the speaker’s dinner. Brennan invited all of the speaker’s out to a fancy restaurant before the opening mixer at the Double Your Freelancing Conference .

​Read More

Tiny Rock Side Hustle

Mother works in Elberton, GA, The Granite Capital of the World at a local Quarry. Here is their #2 best selling product: Tombstones. I love companies like this, invisible enterprises that build something important to everyone. But this isn’t a letter about tombstones; this is a letter about their all-time #1 bestseller: Gravel. If you ever think

​Read More

Breaking Out Of The Bad Client Cycle

Working with bad clients puts your business in a vicious cycle. You start out meeting with a client that sets off your Spidey sense a little. You need to pay rent this month, so you agree to the work against your better judgement. You end up working with a client that belittles you, doesn’t trust,

​Read More

Places to Find Work Besides Upwork and Freelancer.com

How to you find quality clients on freelance marketplaces like Upwork and Freelancer.com? Getting quality client work on these sites is nearly impossible. When an average Day Job in India pays as little as $0.65/hour, then doing web development online from the comfort of their home is a dream job. How can you compete?

​Read More

Why You Should Charge Flat Project Rates

There are two modes of billing you have probably used or considered using as a freelancer: Billing by the hour, or billing with flat project rates. There are other options, such as billing by the day, the week, or setting up recurring monthly retainer arrangements. It’s my opinion that you should most definitely not be

​Read More

13 Lessons Learned From Consulting In 2015

One of my New Year’s resolutions is to create more valuable content in the coming year. In addition to my annual post-mortem, I wanted to share some of the most valuable lessons I’ve learned throughout the year so that you can apply them to your own bootstrapped or creative service business.

​Read More

A Guaranteed Strategy to Get Your First Clients

Getting clients as a freelancer is like a catch-22 problem. If you ask other freelancers how they find clients, they typically say “word of mouth” or “referrals.” How are you supposed to get referrals without previous work? Getting started seems impossible. If you are thinking about starting a freelance business, you need to be proactive

​Read More

Integrating Calendly with Drip

I hate playing the back-and-forth “what times works for you?” game when it comes time to book a meeting. As a one-person shop, I’d rather spend my time providing value to clients and taking care of more important matters than spend time negotiating appointment times. I use Calendly to make booking appointments easier. I can

​Read More

A Simple Solution for Complex Software Estimation

The Problem For Tangent Solutions, a growing software products company, the biggest hurdle they faced was a lag time between contracts. Due to the scale of software and complexity in orchestrating development teams, software products often encountered problems like going over budget and missing target deadlines. They needed a solution that made complex estimates more

​Read More

How to Survive Feast or Famine Cash Flow

One part of the freelancing puzzle I haven’t solved yet is keeping cash flow stable. Here’s a lifetime graph of my revenue, month, by month: There’s a lot of peaks and valleys. Good clients, bad clients, late payments, upfront payments. Sales slumps. Family emergencies. It’s all there. About a year after I became a freelancer,

​Read More

What I Learned at the Double Your Freelancing Conference

I just got back from the first annual Double Your Freelancing Conference, and I haven’t felt this exhausted and excited in some time. I met so many great people and listened to informative talks by some brilliant speakers. Instead of getting into individual tactics and strategies, I thought it’d be more beneficial to you to

​Read More

A Real World Metaprogramming Case Study

Metaprogramming is one of the unique features of Ruby. Metaprogramming is an interesting concept, and a tool can save a lot of time. It can also be confusing for developers and difficult to maintain if not used properly. Here is an example of how I used Metaprogramming to solve a real-world problem and save a

​Read More

5 Ways to Build a $200,000 Consultancy

I recently read an article entitled five ways to build a $100 million dollar business. It discusses different business models that vary in the number and size of your customer base. Some businesses work with a few enterprise scale clients while others work with a larger number of smaller customers. Patrick Mackenzie mentioned on Twitter

​Read More

How to Test Controller Concerns in Rails 4

Concerns are a new feature that was added in Rails 4. They allow to clean up the code in your models and controllers. They also allow you to share functionality between models or controllers. However, they can be a bit tricky to test in isolation. In this article, I want to show how you can

​Read More

AngularJS: an Overview

AngularJS is a JavaScript framework made by Google for building complex client-side applications. Angular’s killer feature is ‘directives’ that allow you to extend HTML by creating tags and attributes. Angular projects have a somewhat different structure than other JavaScript MVC frameworks, but it can be highly modular and easy to maintain once you understand the

​Read More

My Eureka Moment With Regular Expressions

Regular expressions are a tough cookie for most programmers to figure out. They are terrifying to look at with their daunting syntax. There is also nothing quite like regular expressions anywhere in programming. Programmers may learn to hack together basic regex expressions, or how to cut and paste some they find online for their needs,

​Read More