Let Me Know What I Can Do Better

“But you already have a good physique!”, Oscar replied, his face matching the level of surprise in his voice.

Oscar’s a regular at the gym I’ve been going to for the last few months. We’d never spoken before today, but I was at the dips station when he wanted to use it so he started a conversation.

He did his dips flawlessly, so I asked him to watch my set and tell me where I can be better.

After the workout, I told him if he ever sees me doing an exercise improperly or has a tip to help me improve, he shouldn’t hesitate to let me know.

Getting advice at the gym

He seemed genuinely surprised that I’d take advice from him; maybe because it seems like I already know what I’m doing.

Thing is, the first time I ever worked out was just three years ago.

I still have no idea what I’m doing.

Continue reading Let Me Know What I Can Do Better

Why Do People Use My App?

“The learning and knowledge that we have is, at the most, but little compared with that of which we are ignorant.” 
– Plato
Just in case Plato is a little bit more refined than what you’re used to:

“Nobody will never ever really know, because the more you know, the more you know that you don’t know shit.”
It’s weird to realize and publicly admit that I have no idea why people use the app I spend most of my time working on.

Yes, I know what it says on the marketing site and pricing page. I know what features we have. I can tell you how many clients we have and how many of our client’s clients use our service.

Knowing all that doesn’t help me answer the most important question I need to know as someone who makes a living making software:

Why Do People Use My App?

Continue reading Why Do People Use My App?

Do It For The Dummies

I’m a dummy. I have so much to learn and an embarrassingly high number of things I’ve forgotten.

I’ve estimated it’ll take 10 minutes to do something and I’m still at it 3 hours later.

I’ve started tasks with confidence only to realize you need the manual to do finish what you started.

There’s nothing wrong with being a dummy. It doesn’t mean I don’t know anything; simply means the fields I know almost nothing about far number the ones I excel in.


Most people are dummies. Nobody has the time to master every subject and get real life experience in all of them.

Keep this in mind when you’re making things for people because chances are the person is a dummy. They don’t know a lot and they’ll often forget the little they knew a while ago. It’s not their fault. They’re too busy trying to be better parents, partners or people in general.

People you care about, work with, are married to or gave birth to are dummies. Lets make the world a better place for them. Do it for the dummies.

Most Important Slackbot to Install

While I’ve known about Slackbots for almost as long as I’ve used the service, they’ve mostly fallen into the “nice to have but not mission-critical” category.

Do I really need to spam the rest of the team every time a commit or pull request comes through? Do I need to know when an item has been checked off on trello if it wasn’t blocking my progress? Will I never get tired of DJ Khaled’s quotes randomly inserted into my conversations?

The answer’s almost always no, and as a result I’ve never really given Slackbots serious thought. Not until I discovered the bot I couldn’t live without.

Slackbot - forever happy :)

Continue reading Most Important Slackbot to Install

One Weird Trick to Debug WordPress Quickly

Have you ever needed to build a new feature or fix some bugs for a WordPress site? Chances are the code you need to work with is way too complicated to understand quickly.


You can use a combination of var_dump()  and wp_die()  to do some basic introspection, but that’s really just a snapshot of a moment in the code.

What you need to understand to fix the bug is to know where the application execution started, what was triggered and how you ended up at a certain point. What you need is a trace.

Continue reading One Weird Trick to Debug WordPress Quickly

Make Code Great Again

There’s very little code that’s completely independent of other code. A simple “hello world” in your favorite language relies on the code powering your language. As your objective gets more complex, you start relying on more and more code to get things done. Your code depends on other code, which depends on other code, which … you get the idea.

An unfortunate side-effect of code dependency is yours inherits the flaws of other code it relies on. As a result, your code sucks because the code it relies on sucks.

Instead of getting on a soapbox about poor code, since we’ve written and released our fair share of it, lets focus on how you can make code great again.

Continue reading Make Code Great Again

Laptop Failure Playbook


Something in my laptop died a few days ago. I’m hoping it’s a simple change and it’s back to its (very) old self. Thank God I was able to get my hands on an alternate machine to use in the interim.

While the scary prospect of not having a machine to work from was avoided, I had to go from a fresh installation of Windows 7 to something that resembled my work environment. No easy feat since this particular machine is a culmination of software and configurations from the last six years.

Continue reading Laptop Failure Playbook

CJS-Task 0.0.8 Release

The JavaScript ecosystem encourages creating and using small utility functions and libraries.

While this encourages code reuse and interoperability, you’re left with the responsibility of writing glue code to marshal oft misaligned paradigms to accomplish your objective.

CJS-Task was created with the desire to bring simplicity by acting as a high-quality glue between all the pieces you’ll use.

How? A few tricks.

Continue reading CJS-Task 0.0.8 Release