iOS Persistence Techniques

  • NSUserDefaults
  • Documents Directory
  • NSCoder
  • Core Data

To really grasp this one needs to understand the app lifecyle in iOS. But, first let’s introduce the AppDelegate

application(_:willFinishLaunchingWithOptions:) and application(_:didFinishLaunchingWithOptions:) are invoked right before the app launches, but are only invoked once for each time the app transitions from not running to active.

applicationDidBecomeActive(_:) is called every time the app becomes active from any state, and may be called multiple times.

The 1 thing likely to Determine if you are Successful next Year (2 min Read)

It is a great time to ponder where we should be making improvements in our lives. We can look back over the past year to recall moments where we excelled because of our strengths; and mediocre moments caused by what may have seemed like a weakness. However, we could be ignoring the one thing likely to determine if we are successful next year by not paying attention to our habits, because we wrongly assume a bad habit to be a weakness.

Focusing on Strengths vs Weakness vs Habits

“One should waste little effort as possible on improving areas of low competence. It takes far more energy and work to improve from incompetence to mediocrity than it takes to improve from first-rate performance to excellence” – Peter Drucker (Managing Oneself)

Focusing on one’s strengths rather than weaknesses is not a new idea. That is the basic premise of such literature as Strengths Finder. However, in practice it is hard to shake that itch to work on areas in which we seem to lack natural competence. This feels reasonable because it is not easy to accept that one’s poor public speaking skills should be left unattended. Won’t neglecting where we are weak put our success at risk? Maybe, maybe not.

The role of habits should get more attention when discussing how our strengths and weaknesses play into our effectiveness and performance. Sure, public speaking may not be your strong suit, but lack of preparation (a bad habit) will likely leave you worse off. Bad habits not only accentuate weaknesses, but they also dull strengths. On the flip side, good habits could be a buffer for weaknesses while sharpening strengths.

A Good Place to Start

If you are thinking about being a better version of yourself this time next year, then focus on curbing your bad habits and building really good ones. In The 7 Habits of Highly Successful people, Stephen Covey does a great job of highlighting some good habits to adopt. In Talent is never Enough, John Maxwell takes a different angle to address habits and mindsets that really make your strengths shine.

These and similar resources call out bad habits such as lack of preparation, lack of initiative or pro-activeness, lack of prioritization, never being willing to invest in a repeatable process, saying ‘yes’ to every request, and procrastination. With these we have a choice. This is how you draw the distinction between a weakness and a bad habit. You have a choice about your attitude or being lazy. These are not weaknesses. Drawing from Peter Drucker again, “things we do or fail to do that inhibit our effectiveness and performance” are fair game when identifying bad habits.

Game Plan

Investing in improving a weakness might move you from an F to a D+ skill level, but the right habits can make any B talent appear to be A+. The idea is not to ignore or pretend we don’t have weaknesses. Rather, we should be self aware and focus on building good habits. Game plan on what habits to build as you double down on areas of strengths next year. You can start with Strengths Finder to discover those strengths. In fact, why wait till Jan 1st? You should start right now.

How Specialization Could Hurt Innovation (2min Read

It is pretty common place today to pick a discipline and embark on the path to 10,000 hours and expertise. But, do we really give thought to the tradeoff we make when we solely focus on depth over breadth through specialization? Is there something we lose by choosing to learn more about less?

The Industrial Revolution

With society transitioning from largely agrarian to manufacturing, specialization was one of its persistent legacies. You can look further down in time to Henry Ford’s factory line. One worker dedicated to one task on the assembly line. Specialization lends itself to developing expertise in one area. This works well for management because increased specialization is great for efficiency. However both innovation and creativity are inherently inefficient. So, let us take a closer look.

“I contend that creativity is about collecting and connecting dots … dots being ideas, disciplines, ways of looking at problems, and experiences.” – Stephen M. Shapiro

Innovation and creativity have a lot to do with making connections between things that seem unrelated. Specialization by itself however is not likely to expose you to more unrelated things. Nurturing creativity requires exploring the edges, which is interestingly what Henry Ford was doing when his visit to a meat packaging plant inspired the assembly line approach to production. This was collecting and connecting more dots on display.

Leonardo DaVinci was an artist, painter, sculptor, engineer and scientist. Benjamin Franklin was a politician, author, printer, postmaster, scientist and inventor. The renaissance and enlightenment periods had a strong legacy of creative thinking and innovation. And, one thread streaming across both time periods shows people who explored and excelled in different domains. Not everyone was a DaVinci or Franklin , but if you study those time periods you will observe that these men were not exceptions to living broadly.

This is not a promotion to be a Jack of all trades and master of none. Knowing a lot about a little as well as a little about a lot is a worthy goal. The reality though is that we are often not challenged to broaden our view and areas of competence. Instead there is a huge incentive to be a specialist because it is more efficient for the organization.

There is merit to specialization in the flavor of what IDEO promotes as the ‘T’ Shaped individual – having depth in one discipline and breadth across many others. Additionally, it is hard to innovate in a field without depth in that domain.

Can I prove to you that you have to be a polymath to be a genius or make a lasting difference? Absolutely not. It does seem obvious that you have a better chance of connecting more dots, the more dots you have at your disposal. So, take on the challenge to build competence (not expertise) in a different domain.  Think broadly, read broadly and live broadly. Be a collector of new experiences. Try something new today.

The Illusion of Competence and the Knowledge Worker (2 min Read)

Do you remember struggling with some math problem back in school? And after a few failed attempts at solving it, you peek at the answer and the solution seems to all make sense. You probably thought to yourself, “I got this next time”. But, you really did not quite have it next time, right?

“Merely glancing at a solution and thinking you truly know it yourself is one of the common illusions of competence in learning” – Barbara Oakley, PhD, PE

I believe many Knowledge Workers are in danger of the illusions of competence by  mistaking information acquisition for knowledge.

Information, defined simply, is a collection of (possibly related) facts/data. However, it does not become knowledge until some fresh perspective is formed based on that information. Such knowledge should also be demonstrable by being able to change something based on that fresh perspective. In essence, gaining knowledge involves being changed by new information and being able to execute change based on that information.

“Knowledge work is work you can only do by applying things that can only be learned or best learned in a formal education process” – Peter Drucker

Peter Drucker first coined the word ‘Knowledge Work’ and he seems to imply here that it entails application. If we are to stay relevant in our respective fields it is not sufficient to just acquire new information. If no fresh perspective is gained or we are not able to change something based on this new perspective I dare say we have not acquired knowledge. This might be the difference between being an Information Worker versus a Knowledge Worker.
“In the new market we’ll be paid to do things not just know things “- Dan Appleman

Your value in the modern economy will not simply be based on what you know, but what you can do with what you know. With the advent of MOOCs like Coursera, Udacity and PluralSight, it is clearer than ever that information has become a cheap commodity in the digital age. A high school kid can now be better qualified for a task than you are because she combines her learning with hands on application.

The crux of this is that information by itself provides no advantage today if it is not transformed into knowledge. We should not be satisfied with acquiring new information. We must think deeply on two questions as we are immersed in information we care about

  • What fresh perspective have I gained based on this information?
  • Am I able to change or influence someone or something based on this fresh perspective?

So what will it be?

Why you might not be comfortable asking for help (1min read)

Asking questions or asking for help does not come easy to everyone. This is the case even when we understand the value of what we are missing out on. I have had plenty of such moments myself.

I realize that this may have to do with how we think people may perceive us and our abilities. Interestingly, we all know that knowledge or expertise is not innate, yet we choose to stay ignorant in order to appear competent.

Any deficiency or inability can be improved upon and expressing ignorance is actually an opportunity to learn. We all start out as novices in new domains. No one starts out as an expert in a new field or ability. Expertise comes with commitment, time and effort.

There is something to be said about how we ask smart questions and how we can ask for help without coming across as incompetent. But for many, the first step is getting over that mental barrier. We all can be confident learners.

So, if you find your self wrestling with the urge to not ask questions or for help, know now that it simply is an opportunity to learn and get better.

Why you Don’t have to Finish Reading that Book (2min Read)

We are taught and encouraged to finish what we start, but maybe that does not quite apply to everything. Time is a precious resource and if we are to finish everything we start the math says we will not get to start or experience everything we might desire. This is not a post encouraging tardiness or lack of attention to detail. Just the reality check that not everything requires exactly all of your energy. I went through over 24 books last year and did not finish every single book. Yet, I was able to glean key ideas I may have missed out on if I chose to read only books I was confident I would finish.

Consider this, you probably do not read every single word of every single blog post or article you come across. You might skim a news site but pay closer attention and detail to a legal agreement. Herein lies the point. There is so much to experience in life yet only so much time and resources. The trick is knowing what deserves finishing and what might not be as deserving.

Author John Maxwell’s reference to ‘The three R’s of decision making‘ comes in handy here. It really is a guide to prioritizing. He offers the three R’s as progressive filters. My spin on this instead is that we use the three R’s to segment our experiences to figure out what is worth finishing. It asks

  • What is required of me?
  • What gives me the greatest return?
  • What gives the greatest reward?

If some experience or activity is tied to what is required of you as a parent or on your job, it requires your attention and follow through. You should be wholly present physically and mentally to something you cannot simply delegate. For those things that are not required of you, your next filter would be to figure out what gives the greatest return for the level of effort you will put in. If a task or experience has a solid ROI tied to it, then it deserves some attention. That two hour optional training or online course could go a long way to keep your skills up to date. For those things that do not scream importance or productivity, there is the filter of personal satisfaction. You can plan to take a daily walk to clear your head, but it is ok if you miss it here and there.

Life can be hectic and it can be a challenge to follow through on the things we prioritize. As long as we make the main thing the main thing, we should let the chips fall where they may. Fear of not finishing is not good enough of a reason to not start. There are many other reasons why we do not follow through or finish well and we do need to put in the effort to be better finishers. However, the next time you pick up that book to read, remember that chapter 1 might be all it takes to change your life.

3 Tips for dealing with Ambiguity

How do you deal with ambiguity? That is a one question I bring up these days when I interview job candidates. It is an interesting question because it does not have clear boundaries on its own and how the candidate answers the question tells me a lot. So, what is the deal with this question anyways?

Well, do you ever give thought to how your team handles situations when no clear direction is given? We live in a disruptive world where change is not only constant but rapid. We need people who know how to deal with uncertainty and risk. This skill is an essential currency in the modern working environment unless your work culture is staffed with cookie cutter employees. Here are 3 tips for dealing with ambiguity.

Admitting and Accepting It

There is no need pretending like the Elephant is not in the room. Personally you need to come to terms with the lack of clarity and if possible surface it up to stakeholders. This minimizes any unnecessary pressure.

Getting Organized

Here is where you get to work. What is known? What are the assumptions? Get clear on those and articulate them very clearly. Figure out what you have to start with and It might be a good place to ask questions like the 5 Whys.

Experimenting and Learning

Now you need to take some actions based on what is known and prep your mind for feedback. The act of experimentation allows you to sharpen your focus. It helps to raise the level of clarity.

There are wrong ways to deal with ambiguity. You would want to watch out for the following

  • Rushing to conclusions without reasonable amount of data
  • Ignoring feedback
  • Ignoring history or precedent

In a nutshell, clarify what information you have at the moment and take action while adjusting based on feedback.

Did you settle for a Career or your Calling?

I always knew what I wanted to do from an early age. It took some time to realize that not everyone grows up having such a clear picture. Making a career of something that inspires and is fulfilling is a journey for many. A journey often without a map.

I like it, Understand it and I am good at it

Not everyone finds fulfillment in the work they do daily. They may know about their field and may be good at what they do, but they are missing the ‘like it’ factor. I could say I am pretty good at cutting my lawn, but I sure don’t like doing it. Interestingly, there are scenarios where people like something a lot, understand it, but are no good at it. In my world that would be something like professional football. I get it, like it but I am definitely no good at it. Now, those examples are extreme. But, you get the point . It does not feel quite right when what you do daily does not mesh all 3 elements.

What Is the Big Deal with a Calling Anyways?

Well, I believe a calling inspires you. When you are inspired you are moved to create great things with care. I can’t imagine many masterpieces were ever created without a deep level of care and passion. If we want to live a life far above mediocrity then we have to be inspired in what we do. You don’t want to look back on life and see a trail of mediocrity. Secondly, satisfaction and fulfillment makes life more meaningful. I read once that once you make beyond $70,000 per year, monetary compensation doesn’t bring more happiness. I’m not sure if that’s your threshold, but I’m sure there’s a point at which more money doesn’t mean more happiness. It is bad enough to wrestle mediocrity, we shouldn’t add dissatisfaction to the mix.

Hints of your Calling

You may be reading this and say, I’m fine with my career even if I don’t like it all that much and I’m not great at it. At least you know it’s not your calling and take it for what it is. However, if this makes you pause to consider what that calling may be, here are few things I’ve observed. Your calling

  • Stimulates Curiosity in You – You are not tired of reading or learning about it
  • Out of sight is not out of mind – Your mind often wanders there in your free time
  • Makes you Smile (Most Days) – Leaves you with a good feeling and can’t wait to get started on it tomorrow feeling
  • How you feel about it hasn’t changed much in years – Through all seasons of life, it still excites you
  • Worth Risking For – What other’s might consider a sacrifice doesn’t seem that way to you. Time flies by while at it

It might be that this season of life doesn’t afford you the opportunity to make a career of your calling. However, it’s good to figure out what it is, so you can make time for it. And maybe, just maybe your calling is your career, then in Seth Godin’s words, you have found “The life you don’t have to escape from”.

3 Conscious Steps You can take to Deepen Experience in a Skill

It is common today to get skill endorsements on LinkedIn. Have you ever received one and cringed because, even though you have spent some time on that skill a true assessment would still mark you as a novice? For instance, I have owned and played my guitar for almost 15 years, but can only mark myself as an Advanced Beginner (maybe close to Competent) using the Dreyfus model of skill acquisition. But, saying I have been playing for 15 years can be misleading and doesn’t highlight the fact that I have played my guitar on and off and that my dexterity on it hasn’t changed much in the last 5 years. I can claim exposure, but how much in experience?

So, what does it mean then when we say we have experience? Is your inclination to look down on a candidate who claims 6 months experience on a skill vs another with 5 years? Andy Hunt in his book Pragmatic thinking & Learning: Refactor Your Wetware, described experience as a change in thinking that results from performing a skill. Can someone who still relies heavily on detailed instructions to perform a skill really claim to have competence in that skill even if they have been at it for a decade? A claim of ‘little’ experience seems more appropriate. However, no skill endorsement or resume will point this out.

I should clarify that when I speak of experience I mean competence, proficiency or expertise. Such experience is a byproduct of discovery and doing. The ability to observe feedback in learning and self correct. It is hard to gauge how long it will take one to get this level of experience since it depends on the degree of exposure, self application and the complexity of the skill itself.

However, I believe we can use these fundamental elements of discovery and learning to evaluate experience in ourselves or a job candidate. Are there learnings through mistakes and challenges, while persisting to produce results? It shouldn’t matter if this sort of education is formal or informal. The crux of it really is discovery, learning and improving through doing. The more of that, the more experienced I would say they are. This is more valuable than simply evaluating based on time spent on a skill.

There are a few things you can do to consciously deepen experience and develop more intuition in a skill. Outside of the more obvious approach of having a mentor and practice, you need to

  • Keep poking the box (asking questions, exploring the edges and trying different things) for more discoveries
  • Articulate what is learned from each mistake or failure
  • Act on those key learnings for improvement

How do you evaluate experience in yourself and others?

My 2016 Challenge : The Foundation

Technically I started work on my 2016 challenge late 2015. The goal remains to have something tangible done as the year progresses. This brings me to foundation of all I intend to build: The Architecture.

As a Software Engineer, I deal with Architecture decisions daily. Making best guesses on future design and ruminating on past bad decisions. In the Agile landscape I have come to terms with that fact that Architecture is really where you land and the initial key decisions are around mitigating risks. How much time one puts in upfront architecture decision depends on what you are building: A shed or a skyscraper. In my case I choose to land somewhere in between.

I typically advocate for a factor of 3 to account for the smallest unit of complexity. In this first round I was focused more on simplicity which meant a single node and single broker where possible.

My current tech-stack includes:

  • MQTT
  • Kafka
  • ELK Stack
  • Cassandra
  • 1 Linux box
  • Programming language choice –  Python
  • Sensor Peripherals (Efergy Electricity Monitor and R820 Tuner)


Screen Shot 2016-02-29 at 5.13.56 PM.png

Here is my view from Kibana

Screen Shot 2016-02-29 at 10.06.11 PM.png



Create a free website or blog at

Up ↑