Successful people do these 5 things

When I consult with young people (mostly in undergrad) one theme comes up more often than others: What should I do? 

As simple as the question is, the undertones are really complicated. I believe we live in the best possible time in history. We live in the world of abundance and because of this abundance, we starve ourselves. We live in a prison of freedom and end up not living to our potentials. As I reflect on my career and life, I can see some themes that may solve these problems. So let’s tackle this problem.

Continue reading “Successful people do these 5 things”


[ENDED] Student Learning Giveaway (Aug 2018)

I want to give out the basic monthly subscription ($25/mo.) of Treehouse for 3 months.

Treehouse has 300+ high quality courses on coding and technology and is being used by 200,000+ students around the world. It helps students learn new skills with tracks for Front End Engineering, iOS, Android and a library of 300+ courses.

Who is it for

You can apply if you are:

  • A student in Pakistan
  • Between 16 and 22 years of age.
  • Can write code and have an aptitude for programming

How to apply

Send the following to zakishaheen [at] me [dot] com by 15th Aug 2018.

  • A resumé
  • A cover letter explaining all of the following (500 word or less):
    • your achievements in programming
    • Why do you think you should get this giveaway
    • What do you plan to learn in next 3-6 months from treehouse, and why (you can signup and see all the tracks for free and even start a 7 day trial)
  • Sample code from Github/Bitbucket (assignments, projects, toy applications, whatever you have coded so far).

What do you get

  • You will get a $25/mo Basic subscription of Treehouse for a trial of 3 months
  • If you show progress, the offer can be extended for another 3 months OR upgraded to $50/month pro subscription
  • Email/Chat guidance/mentorship
  • Occasional access to various resources as needed

Why am I doing it

I want to provide access to cutting edge technology knowledge base to students in order to unlock their true potential there by increasing my impact in society by a tiny margin.

Why Treehouse

Because I had to start somewhere. I am in no way affiliated with Treehouse or any other product.

Why not just give it randomly

Because I don’t want to waste our time and money.

Attention Leak

I define attention leak as:

Having heightened productivity and purpose, yet straying away from the task at hand with blinding belief of taking another task as equally or more important – there by leaking attention.


This results in wasted hard work and productivity, as one hops from one important task to another – never really shipping anything but having opened a lot of avenues.

Some may think that this is similar to having a small attention ‘span’. I don’t think it is the same concept because people who have low attention span simply cannot put their focus on a plan. People with a big attention leak have the capacity to do deep work, and sometimes can get themselves in the zone and get stuff done. Their attention span is stellar. But they simply keep grinding their processors trying to jump onto the next important thing. For example, Hamza sits down and plans his week. He spends a good amount of time going thru everything and picking the important stuff. He has everything figured out, neat and tidy. Yet as the week progresses, he is mid way thru a very hard book… he finds a pointer to another book. At this point, he follows that rabbit hole and so on until his attention has deviated from the original week’s plan. Mind you, Hamza still gets a whole lot more done than his peers and he ends up in a better position in the long run, yet the satisfaction of ‘winning’ and ‘shipping’ comes seldom and that makes him fall into imposter syndrome.

WWDC 2018 Watch list

Every year since 2009, I look forward to attending Apple World Wide Developer Conference. In 2016, I got the opportunity to attend it in San Francisco. It was a great experience seeing Tim Cook and all the Apple heroes close by and getting surrounded by people who share the same passion.

There is obviously a tonne to cover every year and I curate a list of videos I plan to watch. Here is the watch list for this year. I’ll (probably) update with some comments against each of these as I go thru them.

Excited for another year and probably the best year to be an iOS engineer.


Platform State of the Union


App Design

Emerging Tech

iOS Infra

Software engineering

Frameworks we love


Do you have any other recommendation? Chime in.

Everything you need to know about computing

Everything that is built in industry today is in fact taught at your school. You just need to be able to block out the marketing fluff and know the fundamentals. A lot of times students ask me, or declare, or tell their juniors ‘you learn to learn at college- all this knowledge is not applicable in real life’. I want to dismiss this notion and also explain how this magnificent and exciting field of computing works. Of course it is a gross simplification but I assure you that grasping these fundamentals will set you up for future success.

I used course names from my Bachelor’s degree back in 2004-2008 but it still holds true. Some names differ from university to university.

Ready? Lets do it!


To achieve something of value, you follow some steps to take information you have and convert it into new information. For example, if you want to go from LA to Sf, you take a map, chart a route and make a plan. You learn all this in school. We can work these steps faster by using computers who follow simple instructions. Learn about this in ‘intro to computing’.

So, You write a set of instructions called a computer program. Most programs need memory to hold data temporarily or permanently. In our case it needs the map, and it needs to hold some information while it performs those steps.

Temporary data is held in variables or constants. Things like ‘x=42’ or ‘name=‘elon’’. Permanent data is stored in ‘files’ for example ‘inventory-store-2012.dat’. It then performs instructions on this memory. This is done using a ‘computer language’. Almost any language will do so stop fretting about languages, Learn about instructions and memory in Computer Programming.

Now, Programs have a state, which is a snapshot of its memory and instruction it is at. For example, if I give you a map of SF and ask you to give me a route from MoMA to Golden Gate bridge, you will open the map and start following some intuitive set of instructions in your mind to find the route. If I stop you at any point and ask you what you have done so far, whatever you tell me is your state.


It could be in-memory state, or it could be persisted elsewhere for long term. When you are playing a computer game, which is also a program, your character’s position, your score, your health and karma are all stored in-memory. If you plug your computer off it is gone. But the high score leaderboard is persisted for long term. You can also ‘save’ your game which basically takes a snapshot of your memory and saves it. Learn about persistence in ‘Database Management Systems’. State can be hard to manage. One way is to think in terms of objects so Object Oriented Programming course is for you. As code grows, you need better ways to manage your code itself. Learn about this in Software Engineering which also teaches other things like requirement gathering, testing, design patterns, etc.


How you represent information is crucial. Searching for your friend in a list of 200,000 names when they are not sorted will take time. If they are sorted, you can use binary search to find it quicker. If you index these names, its even quicker. Data representation is taught in Data Structures. Efficient steps to process that data is taught in Algorithms. Underlying principles of all this is in Automata. Fascinating stuff.


So, Programs run as a process on a machine. A process is executed on a CPU (learn about components of a computer in CS101 and history of computing). An operating system handles this scheduling of multiple processes on a single machine. Processes talk to each other using IPC and RPC. The operating system ensures proper usage of hardware resources(CPU, RAM, video processor, network adapter, power, etc). Learn about this in Operating Systems.

Operating systems make available the underlying hardware resources. Different needs require different hardware. Learn about how simple on/off switches, transistors, registers, circuits work together in Digital Logic Design, Computer Architecture and Assembly language programming.

In order to convert your code to something a machine can execute, you need to compile it. Compilers are simple programs that do it. Learn about them in compiler construction.


Sometimes programs run on different machines. They talk to each other over a network. It is like cable in your TV. There are different ways to do it but mostly they utilize sockets and file descriptors. Learn about this in computer communication.


While programs can talk to each other over network, sometimes its hard to find which program is where and what language it understands. It sometimes is better to not worry about the fact that programs are running on separate machines. They need to act as one system. A distributed system. So they need remote procedure calls, data serialization and message passing. Learn about this in Distributed Systems. When these systems need to do intense processing you need efficient ways. You can learn those in ‘high performance computing’. Think weather prediction, missile trajectories, nuclear impact and super computers. Fun!


Your program needs to help Humans do their job better. Learn in Human Computer Interaction on how to do it. It will teach UX/UI and other stuff.

At this point, we should talk about abstraction. You know how when you plan a trip to go from LA to SF you just assume that at certain points there will be gas stations and our car needs gas and we need food and there are roads? We don’t worry about how gas stations work and how cars work or how roads are build. It is because we work on a higher ‘abstraction’ level. Similarly, what if you could simple make a user interface and do some high level stuff and do things over a network? So we have Web Programming. It lets you write programs on top of programs: a web browser and an application server. Both of which are just simple programs as we discussed but a web programmer works at a higher level of abstraction.


But what if computers could learn and make decisions on their own based on a set or rules or even make up their own rules? For example what if you chat application knows who your favorite friends are and surfaces their names when you open the app? Learn about this in Machine Learning and Artificial Intelligence. These systems work on very large stashes of data gathered (analytics) and processed (data science) and stored (data warehousing). All this in Big Data Systems.


Finally, you want things to be visible and get as close to reality as possible or you want to show information in a meaningful way. Learn that in Computer Graphics.

Phew. So now you know and we can lay down to rest the silly notion that schools don’t teach stuff that is used in real life.

Oh but you say what about ‘other courses’ we have to take?

Computer Graphics relies on Linear Algebra. You need to know about matrices, transformations, etc.

Data structures and algorithms need Discrete Mathematics as it relies on Graph Theory, Set theory etc.

Numerical computing, which is used in simulations of real world require knowledge of Calculus and Differential equations, maybe even Physics.

Other than all this, you need to learn about the legal and ethical issues that arise from working on all this so there may be courses related to that.

So, these are at least 30 courses that prepare you as a generalist in computing. It will expose you to a range of disciplines with in computing and different people get attracted to different things. If I were to tell you to simply learn AngularJS and Ruby on Rails, i am barely even touching the surface of what is possible in the field of tech.

So, stop worrying about languages and technologies and companies etc. Learn computing instead. Focus on fundamentals. Get exposed and find your true calling!

In some other post I may go into how, in light of this post, it is actually not just OK but good to do whiteboard interviews like they do in Tech Companies and how to ace them.

2017 reading roundup

In 2017 my reading volume was considerably higher than previous years. With this much reading volume my brain started to fatigue and it shows in 2018. 2017 was also a year of a big change as I switched my job.


The first quarter of the year was spent preparing for the programming interviews so I was going through some technical books.

  • NSHipster: Obscure topics in Cocoa and Objective-C
  • The NSHipster Fakebook
  • The Algorithm Design Manual
  • The Pragmatic programmer

The first two were iOS focused and the 3rd one is more geared towards computer science.

Space exploration

On a more interesting subject, I was able to cover some ground on space exploration.

  • Astrophysics for people in a hurry
  • Failure is not an option
  • No Dream is too high

Gene Kranz stole my heart this year with his epic adventures as the director of several key NASA missions including the infamous Apollo 13 mission. Neil DeGrasse Tyson did a wonderful job in ‘Astrophysics for people in a hurry’ and I thoroughly enjoyed it. ‘No Dream is too high’ by Buzz Aldrin was a major disappointment primarily because Buzz sounds too pompous and arrogant in the book. I’ll put “Failure is not an option” up there with “Astronaut’s guide to life on earth” and “starman”. I am continuously amazed and fascinated by their adventures and want to continue this category for years to come.


  • Hit Refresh
  • The Art of Learning
  • Saint Mother Taresa of Culcutta
  • The Everything Store

In 2017, I tried to randomize my sample of biographies. No longer am I just going to focus on Tech biographies – but don’t expect radically different subjects either. I really enjoyed ‘The everything store’ about Amazon (it was more about Jeff Bezos than Amazon though). Hit Refresh by Satya Nadella was a refreshing change in pace from the cut-throat Silicon Valley experience to a more mature Seattle/Microsoft setting. There were a lot of places where I could relate to Satya and its ‘refreshing’ to hear the POV from inside microsoft. The Art of Learning is about the life of a chess champion (and he has been good at other things aswell). Book about Mother Taresa was fairly disappointing because it was too ‘Christianity’ based.


  • How to raise an adult
  • How Children Succeed
  • Hero: become the strong father your children need

I want to make a claim: ‘any’ book you read is essentially improving you as a parent and parenting books specifically don’t really make people better parents. Yes they have really good advice and sometimes let you see things from different perspectives but nothing compares to an empathetic, knowledgeable parent with a growth mindset, who shows children that learning is a life long process – that parents don’t always know everything and that anything can be learned.

‘How to raise an adult’ is a phenomenal book. It starts with a lot of scolding especially for younger parents. This ranges from overparenting and setting expectations too high from kids which spoon feeding them everything. While I don’t agree with the tone of the book: taking an extremist approach to cull an extremist way of parenting – but I get the point. It has changed my mind and I would urge looking for some serious parenting advice for the long run to read this book.

‘Hero’ was a nice book, too – though I wouldn’t exactly recommend it unless you don’t have specific parenting agendas to complete first. Its about the author’s father and what she thought of him. ‘How children succeed’ was so boring I put it down after a few chapters.

Self help, Productivity

In this category, books I recommend:

  • Relentless
  • Superhuman by Habit
  • Deep Work
  • Managing Oneself
  • Ikigai

Books I don’t recommend:

  • Change Anything
  • 5% More
  • Start with Why
  • Standout 2.0


  • The Idea Factory: Bell Labs and the great American Innovation
  • Chaos Monkeys

The Idea Factory should be a required reading for computer scientists, all Americans, all engineers and anyone interested in innovation and technology. This is an amazing book about the amazing inventions and discoveries made at Bell labs.

Chaos Monkeys was apropriate to read before joining Facebook, right? It chronicles the author’s journey from Wall St. to y-combinator and finally Facebook. He doesn’t hold any punches back and has a great style of writing.

  • Dealers of Lightning
  • Lean: Quickstart Guide

These two books were subpar and I wouldn’t recommend them.


  • Gun Germs and Steel
  • Sapiens
  • Homo Deus

I could write a separate blogpost about this topic and in particular the books i read in 2017. I’m kind of disappointed that I picked two of Yuval’s books in the same year based solely on the populatity with the younger crowd and advertisment. Guns, Germs and Steel hands down beats Sapiens by a mile. Sapiens is amateur work in sociology, GGS is text book level stuff. It must be a required reading in schools.

As for homo deus, Yuval shows that he doesn’t have a great story line or way of writing so he blabbers abount any subject here. Common themes include religion bashing, etc. You would be better of reading’ The future of mind’ by Michio Kaku.


  • The sun also rises
  • Exit West

I had high expectations from Hemingway but somehow I just don’t get his dry writing style, especially in this book.

Mohsin Hamid disappointed me with Exit West. Too many show-offsy lines and a lack of coherent plot.


  • Long story short
  • Option B
  • Lean In

These three books are amazing in their own right. Margot is awesome on stage and the way she demystifies the magic of story telling in ‘long story short’, its inspiring.

Sheryl is a very thoughtful writer and a person full of life and stories. Both Lean In and OptionB are great samples of thorough writing and stories.

  • The daily rituals
  • Hal Higdon Half Marathon Training
  • Cryptocurrency
  • Creation
  • Status Update

Not much to see here. Bitcoin came and went and as most of the people round me were betting on its worth, I kept away. Tried to learn more about it but I just don’t click with Cryptocurrencies yet. ‘Creation’ was something I picked from Jeff Bezos’s biography The Everything Store but somehow found it really hard to read. Other books here are meh.

So onwards to 2018!


The more people I work with I develop more empathy. I wish I had learned this earlier: people are people. They all have the same issues, the same stories. Everyone struggles at different levels. Every is scared. Everyone is insecure, vulnerable – on a gradient of intensity. The more people I work with the more empathy I develop for nationalities, genders, opinions, etc.

As I pass thru the corridors of my workplace I look at people wondering if they care? If they wonder why I am looking at them? If they wonder the same about me? If they are better than me? If they are smarter than me? If they are happier than me? And the more people I meet, work, sit and talk with I realize we are more similar than different.

Then there is the imposter syndrome but I will leave that topic for a later exploration.

I think I have been conditioned in a certain way in last 30 years. Some of these conditionings are:

  • 10 girls to 25 boys in a class.
  • All boys school from 7th grade onwards.
  • Girls score grades and boys become street smart.
  • Girls get married and their husbands outshine in careers.
  • Physical beauty is real beauty
  • Girls maintain kitchen and boys geek out.
  • I am smart, others are not.
  • Love equals marriage.
  • Marriage equals children.
  • I am not smart as the white folks, non Pakistani folks, rich folks, other folks.
  • Boys only court girls.
  • Other people are always right.
  • There is a single right way of doing things and only other people know what that right way is.
  • Worry about how you chew, how you fold your shirts, how you speak, how you dress, how you comb your hair
  • Worry about making Queen Victoria happy in her grave.
  • Worry about what other people will say.
  • Worry about if everyone is happy.
  • Indians are evil
  • Westerners are immoral
  • Judgement passing is ok
  • Perfect is better than done
  • Elders are always right
  • People are born to fulfill their god-anointed role and for some people it is being dark skinned christians in Pakistan cleaning sewerage only

Just to mention a few. (It is a very complicated society with a lot of good and bad and everything in between).

This turns into conditioning because everyone around me is following the same curriculum. There is no diversity. Its only when you work, live, talk, sit with other humans that you realize there is no single truth, no single way. Queen Victoria’s etiquettes are not the end of the world and her passive aggressive clones are not the only people who deserve to be made happy all the time. That the world is much larger than my need to look like the cool boys in the next street or to become as cool as the rich uncle.

At this point in my life I think diversity and inclusion is very, very important – probably more than schooling and academics. This is, among other major changes, that I have been feeling lately.