Day Off

Everyone deserves a day off every now and again.  Take it, and enjoy it.


Thank You

Thank you to my mother, late father, sister, wife, relatives, friends and family who have supported me, taught me life’s lessons and all out of the goodness of their hearts.

You are never alone – nor are you ever a one-person-show.  You build upon the foundation that others have helped you build.  Take the time to recognize this, both internally and externally.  Say thank you, but also reflect on who you are and the skills you have.  Realize that it took the knowledge of many others to help you develop the skills you have – and that you can help provide the foundations for others success.

Technology does not live in isolation, it builds upon the foundations of it’s past.  We can rapidly develop software only because high-level programming languages exist.  They only exist because we had enough experience with lower-level programming languages to create abstractions.  To develop something from complete scratch would be to ignore the contributions of all those that came before.

P.S. It doesn’t hurt to say thank you to open-source projects you have made use of and share your success stories.



For most, a perfectly productive day involves knowing when your meetings are, knowing the problems you face and working through to find an answer.  The reality is, not everything is inputs/outputs you can control.  How can you deal with what you don’t know or expect?  The answer is event-based thinking.

Event-based programming or planning is not based off input, but a generic event.  Dealing with events helps you take a possibly jarring event and turn it into something you can deal with regularly.

For example, you could have a process for dealing with critical events.  Your plan for critical events might be:

  1. Determine the issue in as much detail as you can.
  2. Determine the timeframe for a solution.
  3. Define an acceptable solution.
  4. Identify the resources (people or money) necessary to solve the issue.

No matter what the issue is, the above will give you all the information you need to then find and implement a solution.  Having plans for events lets you offload any worry about the unknown.




When it comes to content – and even services – being concise is king.  Time is a resource that always seems in short supply, and competition gets fiercer and fiercer by the day for attention span.  Everything you create for the purpose of consumption should be done with care, research, and consideration for use.

Before you hit send, before you add a post, before you do anything public – ask yourself – does this provide value.  Does this present something new, and are my facts researched.  If not, then use the discard button.



We live in the safest time in history.  It’s true that every day in the news you hear a new story of some violent act or some major service that has been compromised and passwords have been leaked.  While those events are real, when you consider the amount of people there are, and the watchful eye that the news is casting on every-day going-ons, it is a shock that there are not more events report.

My belief on the reason for this is because people feel that their basic needs are met, and when that is the case, (on average) people are good.  But that doesn’t mean that threats aren’t real, and that they can’t affect your life.  There are a few basic principles that work both in real life, and when it comes to technology.

Have 3 levels of passwords.

Pick a short, simple password for things that you don’t care about.  Any account that doesn’t store credit card information, or you don’t care if it does get hacked, use your short simple password for this.

Pick a long, fairly complex password for things you care about, but aren’t critical.  For some, this may be your facebook or twitter account, or your work email, etc.

Third, pick a unique password for anything bank related.  Credit card, bank account, etc.  In the terrible case that one of these gets compromised, you want to only have to worry about that, not every account you use.

If you are not a fan of remembering more than one password, there are password managers that have proven very secure.

Keep your personal information personal.

Despite all these crazy requests from companies that require you use special characters, capital letters, and no dictionary words in your password, the biggest threat is in social engineering.  Most password resets for things like e-mail require your phone number (and access to your phone) or access to a few key pieces of information – mother’s maiden name, full date of birth, favorite color, etc.  While I’m not saying you should never discuss your family lineage at a dinner party, you shouldn’t post it on your blog.

Be aware of your surroundings.

Sure, you know not to download random attachments from people you don’t know (and be suspicious of ones from people you do know), but we’ve been trained very well to be weary.  Even still, viruses get installed by thousands of users on a daily basis.  Protection is about knowing what file extensions are videos/pictures and what are applications, what websites are safe to download from and which are not.  But the same goes for the real world.  Is there proper security at the entrance?  Are they playing games on their phones or actively monitoring those coming and going?  Are people acting suspiciously?

Awareness can both prevent and mitigate risk.  Spotting a problem as soon as it happens (such as identity theft) can make for easy cleanup, but letting it go can result in irreparable damage.  The key is being present and monitoring your surroundings.




Whether you’d like to think of it as repetition or reinforcement, we cannot fully grasp something until we do it over and over again.  Simply reading something once, or giving it a try is rarely enough to let you be efficient.  For this reason, I’ve made sure to keep a full archive of all the zen’s at and am working on an ebook which will be published before the end of the year.


Data-Driven Decisions

We all use data to make decisions in one way or another, but when was the last time you built a data-driven decision tree?  This is not only useful for difficult decisions, but even for smaller decisions.  Building a data-driven decision tree is simple if you follow these steps.  To make a universal example, I will describe the process of determining where to go for dinner.

1) Determine your critical data factors.What data elements will change your decision?  With the dinner example data points may include price, proximity (drivable, walkable, within 20 minutes, etc), take-out or dine-in, kid friendly, food quality.

2) Determine your thresholds.Objectively determine your cutoff points for each data point.  These are values where a boundary break causes a non option.  To continue the example, your cutoff point may be $20/person, so any place that has an average price of $20/person or more becomes a non option.

3) Determine your route.
There are many ways you can traverse a decision tree.  You can walk through all possible solutions, or you can choose to order your options in some logical fashion and choose the first full match.  In the dinner example, you could walk down Main Street and eat at the first place that matches your criteria, or you could flip through your stash of menus pulling out those options that don’t fit.  Determine your route before you take it!  An efficient route will yield an efficient (quick that matches your criteria) decision.  If you start to flip through your options, then decide to drive around, and while driving remember that there are more places in the next town over, you may end up wasting a long time simply making your decision.

4) Let go of decision regret.
Create your criteria in a way that you will be happy with the outcome – no matter what.  The goal in decision making is to find a solution that solves your problem – not always the best solution.  If your goal is to find dinner for less than $10/person that is within walking distance, saving $0.50 by going to a pizza place instead of Chinese takeout should not matter in the grand scheme of things if both are less than $10/person.  By freeing yourself from the constraint of finding the best option, you can focus on finding an acceptable solution quickly, executing, and then moving on to the next problem.

Being able to pivot
While data-driven-decision making may not seem that relevant when determining something like where to eat for dinner, it can highlight how a change in both assumptions and thresholds can change things.  Imagine your rich aunt comes to town and she wants to take you out.  She loves walking and doesn’t care how much food costs, but hates seafood.  If you already set up your decision tree, you could quickly change your assumptions, and even put in lower thresholds to filter out takeout and fast-food chains.

Trivial can add up
It may seem trivial, the amount of time saved by making data-driven-decisions on a small scale, but take a few days to be mindful of the amount of time spent determining what you will do for dinner.  Even if you take 5 minutes every day, that is 35 minutes each week.  Over 26 hours per year!  If you came up with a process to make that decision in 1-2 minutes, you’d have an additional day each year!  You could even craft an elaborate dinner decision tree including a ton of local restaurants all in an hour.

Decision trees can also be reused to make future decisions and referenced to defend a position in case if the outcome is less than desirable.




My son sat in his car seat while I was driving and pointed out the window and asked “what’s that.”  By glancing in the rear view mirror, I realized he was pointing to the left, but a quick glance to my left didn’t see anything out of the ordinary.  It was at that moment, I had an epiphany (or deeper awakening if you will).  Decision making is just like driving a car.

I was driving a car – my task was to ensure I didn’t hit anyone, that no one hit me, and that I got to my destination.  The information that I could perceive through the windshield, side-view mirrors, and rear-view mirror gave me enough information to achieve that goal – but it did not give me all the information.

The next ah-ha was the true importance of having multiple roles with multiple perspectives.  If you have 3 drivers in the car, I can only imagine that would be a very bumpy ride.  When you add a second person to a car – they become the navigator.  They worry about directions, allowing the driver to focus even more on not hitting others, and not getting hit – synergy in delegation!  Now, the navigator also does not have to pay attention to the road at all times, so they can turn their heads to look at blind spots, and keep there eyes out for subtle details, like a small street sign.

Adding another person, and you put a person in the back – with a completely new perspective.  They don’t have as good a vision of the front area, but they have more focused vision of the sides.  Additionally, they have more mobility to look behind.

Where things intrigued me most, and lead me to write this post is because all of this relates to a huge reason why different people with different perspectives have such a difficult time getting along.  We all believe we are making the best decisions.  And we are (well most of us) given the information we have.  The navigator who is paying focused attention to road signs gets annoyed at the driver who missed their exit because they didn’t see the sign (they were busy avoiding a bad driver and ultimately avoiding an accident).  The knowledge that one person has is not the knowledge another has.  Even worse – our knowledge bases are not all the same.  Some people (such as those sitting in the back, or even the 3rd row of a larger car) have little knowledge of impending traffic, and therefore may be frustrated if the car is not going very fast.

This is beneficial to us in many ways.  The first is, it helps us to deal with people we may be frustrated with easier.  Maybe they acted the way they did because they weren’t aware of some important detail.  Can we educate them?  Maybe they have some detail we do not have, and are actually frustrated with us for making a bad decision.

Even more powerful, if you assume that everyone who has a different opinion as yourself has some data piece that you do not have, you can question them and find out what that knowledge is.  By gaining a more complete picture and getting more facts, you can make higher quality decisions.

Not to say that all disagreements are knowledge based.  Some people make decisions without facts, and some people simply interpret facts differently.  For example, studies may show that a room painted blue make you slightly happier, but if you’re a person who loves green, you’ll paint your room green.





The paradox of choice states that giving people too much choice is actually a bad thing.  Also known as “analysis paralysis” having too many options actually hinders our ability to make decisions.  Take for example a simple question: “What do you want for dinner.”  Unless you have a burning desire, that question can be difficult to answer.  But, by adding a constraint: “Would you like Pizza, Chinese, or Burgers for dinner,” you get much quicker results.

The principal is often applied to business and user experience, but I’ve been practicing it for the past few years as a way to spur creativity.  When attempting to be creative, you rarely have a clue as to what your final solution or product will look like, but you can use artificial constraints on your tools or methods.  “What can I make in 15 minutes using only a blue pen?”  “What gift can I give that utilizes a 3 or 4 section picture frame?”

Some examples of common constraints:

  • Must build from scratch
  • Must use a pre-built solution (if you can restrict things to specific retailers, even better)
  • Must use a specific coding framework
  • May not use a specific framework/software
  • Must be less than a specific dollar amount

The key is to accept your constraints as hard constraints until you’ve hit a max.  If you need, give yourself a short time constraint to think, this will reduce your time spent going down a potentially incorrect path if that is what you are worried about.




Depending on who you ask, being a “Jack-of-all-trades, Master-of-none,” is either a compliment or an insult.  The reality is – while being a master at a specific skill has wonderful short-term benefits, being a jack of all trades ensures success in the long run.  This is true with all technology.

Being a top master of a skill takes tremendous focus.  It ensures that you can demand high wages and have steady employment as long as that skill is in demand, but as history has shown, skills come in and out of demand.

One concern with being a master is the expert-trap.  Another way of putting it is, “when the only tool you have is a hammer, everything looks like a nail.”  Because you have spent so much time honing one specific skill, every problem you face you try to solve with that skill, even if it is the wrong tool.

Being a jack-of-all-trades enables you to be more nimble and essentially makes you a master of learning new skills.  It gives you the ability to look at a problem and determine what the right tool is for the job.

There are some examples where you need to be a master – doctors, scientists, etc.  As for technologists, your best bet is to keep learning and become a jack-of-all-trades.