Time is Money

When you first start out as a developer you find a problem and build a solution. This is how you learn and progress.

As you become older your outlook changes and you’d rather pay money to save time. Of course, you could still build it, but eventually, you hit a tipping point.

Developers are some of the worst offenders of this problem. We have a problem and spend lots of hours building or own version when we could become typical consumers.

To give a real world example of this, I decided to create a weekly newsletter and instead of paying monthly for a service I did it all myself.

After a few months, I realized I was spending close to five hours a week just getting it ready to send. I then switched to a paid service and it cut my time down tremendously. I could then spend the hours saved on more important things.

Show Your Work

They say reading at night is good for you. It’s relaxing and gets your body ready for sleep. Typically I would agree but not with Show Your Work by Austin Kleon.

It was 10 pm, I was tired, ready for bed, and I assumed reading the first chapter would put me right to sleep. I was wrong. I ended up reading almost the whole book and then couldn’t sleep for another few hours with ideas racing in my head. Finally, was able to fall asleep around 2 am and wasn’t excited about waking up the following morning.

I’ve always been the type of person that enjoys sharing things. That is the reason this site exists and all my other side projects are around this same notion. Even though I share a lot at times I hit that burnout point and Show Your Work happened to be the right book at the right time for me. It helped put clarity and perspective to the things I want to do.

The book is fairly short, around 200 pages, and is a quick read. Here is the list of chapters to give you an idea what it covers:

  1. You don’t have to be a genius.
  2. Think process, not product.
  3. Share something small every day.
  4. Open up your cabinet of curiosities.
  5. Tell good stories.
  6. Teach what you know.
  7. Don’t turn into human spam.
  8. Learn to take a punch.
  9. Sell out.
  10. Stick around.

If you decide to get this book I would recommend the paperback version. It’s small in size at 6×6 but it’s high quality and has lots of little drawing and quotes included like this one.

12544101755_17c1d95784_k
Be An Amateur

In the past, I’ve been hesitant to share what I’ve been working on for fear I’ll never finish it. Of course, all the other fears too, like being exposed as an amateur and mocked off the internet. Austin covers all of these excuses and more.

Which brings me to one of my favorite quotes from the book about dealing with people hating your work:

Sometimes when people hate something about your work, it’s fun to push that element even further. To make something they’d hate even more.

If you have the desire to get your work seen, improve your marketing, or just want a nice book to add to your collection pick up a copy. I enjoyed it.

Year In Review Marketing

The joys of a new year. A time to reflect on what all you accomplished and start planning out those new years resolutions. One of the hardest parts of this process is figuring out what all you did the past year. Sure big events are easy to remember and if you keep a journal then going back through it will help fill in the gaps, but there is a lot that slips through the cracks.

A new trend that has started becoming popular is apps and services sending you a personalized yearly review based on the data they have.

WordPress sent me one highlighting the number of posts, website traffic, most popular days, and most commenters.

Todoist, featured in the main post image, sent one showing how many tasks I completed each month, when I’m most productive, and how I rank compared to others using the app.

These are just two of the services I use that did this and I loved it because it made me want to share the results publicly and, in turn, give the vendor direct word of mouth advertising.

From a business standpoint if you have the data then generating user reports like this shouldn’t be too expensive to create, especially if you are comparing to other forms of marketing, but the benefits are a more personal recommendation.

Plus since it’s all in your database you’ll be able to reuse this same marketing tactic year after year with no further expenses.

Unsubscribes

I’ve been running a weekly Laravel newsletter for almost a year now and it’s been a lot of fun. When I first started, after each send I would watch the unsubscribes, subconsciously using that as a metric to see if what I was doing was any good.

A year later and my outlook is completely different. I now enjoy unsubscribes. When someone leaves it tells me they didn’t care what I had to say or lost interest in the topic and it prevents me from getting bumped up to the next pay grade.

Looking at it from the angle removes so much stress. I’d trade high subscriber numbers for high open rates any day.

Farewell Snappy

A little over three years ago the team at UserScape had the idea to start a new light and simple helpdesk application that would later be named Snappy.

snappy-tear

Today it was announced that we will be shutting it down. For me, this is a sad day. I’ve spent countless hours on the project, but it’s deeper than that. When you and your team have built something from just an idea on a whiteboard, you have a passion for it that others can’t see. It’s your baby.

There is a popular mantra among programmers, “You are not your code” and it’s true. I don’t want to be defined by any code I’ve ever created, but the code and product as a whole are deeply personal. Saying this is the end is sad.

As with all failed projects all you can do now is look back objectively. Try to grow from the experience and keep pressing forward.

My thanks to everyone involved in the project. It was a fun ride.

Twitter Cards for One-Click Newsletter Signups

Last week I moved my Laravel Newsletter off a self hosted newsletter application and over to Campaign Monitor. While I was working on the move I remembered a post by Ryan Battles on how to integrate one-click Twitter signup and decided to set it up.

Integration was super easy and in fact it would even work with the self hosted app Sendy if you have an SSL. I didn’t.

To get started I filled out all the instructions and downloaded Ryan’s free psd template. A few minutes of customizing and I was up and running.

laravel-newsletter

I pushed the Twitter card live on November 28th and have already seen good results. In five days, around a holiday, I added over 100 new subscribers from just the card. I assume that is a decent number.

I am curious to see how it works over a longer time frame or if this is just a short term gimmick.

Verizon iPhone Trade-In Ripoff

About a month ago my two year Verizon wireless contract ended and they had a special trade-in offer. Trade in any iPhone 4 or higher and you could get up to a $200 gift card. I thought this seemed like a decent offer and up until this point I have been satisfied with Verizon.

I filled out the information on 4 iPhones, all in great condition by the way. Removed activation lock and did a full factory reset on each, then sent them off. Tonight I was sent an email with the value of the first phone. They gave me not $200, not $100, not even $50. A $36 credit!

I am upset and just thinking about the run around I’m going to have to go through makes my blood boil.

Apparently, I’m not the only one either.

What also surprises me is that I follow a lot of Apple bloggers and I haven’t heard mention of this.

How Broken Glasses Led to Great Customer Service

Have you ever had those crazy weeks where everything goes wrong? That describes this week for me.

It all started Tuesday night. After dinner I dropped my glasses and the lens fell out. I squinted while trying to fix them but that just caused a massive headache. Concerned about staring at a computer the next day and the ensuing headache, I asked for the morning off so I could get them repaired. But not before fixing them myself:

glasses

Pretty genius right? I think so as well.

The next morning I dropped the kids off at school and went out on a mission to get them fixed. The first place I stopped, a nice lady welcomed me and asked what she could help me with. I told her my situation and she took the glasses back in a top secret room where I can only assume they do really cool stuff.

A few minutes later she came out and had not only fixed the problem, but tightened all the screws and even got the glasses bent back in shape. At that point I asked, how much do I owe you? It caught me by surprise when she said nothing.

I’m not sure if my genius™ fix made her feel sorry for me or if it was just the store policy. (I’m thinking the former) Either way for my future vision needs they have a new customer.

A writer with no head for business isn’t going to make a living with the words they write, no matter how glorious, how well-crafted, how extraordinary they are, outside an incredible run of good luck.

— Kameron Hurley on Writing as a business

This applies to developers as well. Even if you have no aspirations to start your own business, knowing about options, employee contracts, personal finance, and retirement would do you well.

Open Source Marketing Tips

It’s 1 am, I’m unable to sleep and have all these crazy ideas running through my head. As I start to doze, I have a spark of genius. I think to myself this would be an awesome open source package. I guarantee others would love this. It’s so useful why hasn’t anyone else thought of it.

Over the next two weeks I spend hours and hours thinking, building, refactoring, and creating this package. I think it’s going to be the best ever. Seriously it has to be, it’s so useful.

I’m finally ready to release it. I spend at least an hour crafting the best tweet I can. Secretly wishing it will go viral, hoping others will love it, and just from one single tweet Hacker News will have it featured all day. It’s time! I hit “tweet”, sit back, and watch in great anticipation.

After the first five minutes nothing happens. Sure, some friends retweet it but it’s not gaining momentum. So now I think I’ll just wait till tomorrow when more people have seen it. But still nothing.

Where did I go wrong? Was this a dumb idea? Why doesn’t anyone like it? Is the code horrible and no one told me?

As software developers we tend to look at things from our own perspective. Assuming everyone else will see it the same way. I’ve spent all this time developing but I didn’t take those extra few minutes to really polish the marketing text. This is the big mistake. I know you are thinking it’s open source, do I really need marketing? Without a doubt yes you do!

Your readme is the first page people see when they find your package. It’s important to clearly define what the package does. List out benefits not features. Features are important but only after you’ve sold me. I need a quick overview of why your package is going to make my life easier.

The fact is you have very little time to sell someone and people do not read. They glance. If nothing stands out, they move along faster than a cheetah chasing a gazelle.

I’ve seen it time and time again where I find something that sounds cool only to have this be their main section of the readme:

  • Includes awesome package
  • Uses x design pattern
  • BDD, DDD, TDD
  • And on and on.

What does that tell me? Nothing. I really don’t care about this. Instead show me the benefits. Show or tell me why my coding life is horrible without your package.

Here are a few packages I found that I believe excel with this:

Intervention Image

Look at the demo code which is the first thing you see:

// open an image file
$img = Image::make('public/foo.jpg');

// now you are able to resize the instance
$img->resize(320, 240);

// and insert a watermark for example
$img->insert('public/watermark.png');

// finally we save the image as a new image
$img->save('public/bar.jpg');

I think to myself. WOW. That’s all it takes to upload and resize an image? I’m using this!

Carbon

Both Carbon and Intervention use the same style by letting the code speak for itself. Here is a portion of their main page:

printf("Right now is %s", Carbon::now()->toDateTimeString());
printf("Right now in Vancouver is %s", Carbon::now('America/Vancouver'));  
$tomorrow = Carbon::now()->addDay();

Dispatcher

Dispatcher is a package for scheduling tasks inside Laravel:

dispatcher

Notice how these packages explain and demonstrate why I would want to use them. It’s really that simple!

Take the extra 30 minutes and ensure your readme is clear, precise, and tells me why I should care. Be specific. Sell the benefits. Take a screen shot. Wow me.