How to Be Everything by Emilie Wapnick

Uncovering your Inner Polymath

Has the desire to pursue multiple different disciplines been a constant thread in your life? Do you sometimes feel flaky about being like this? This isn't something unusual, in fact there have been numerous polymaths throughout history including Benjamin Franklin and Leonardo Da Vinci.

On my own journey I have studied numerous topics including foreign languages, computer programming and psychology. I have found that there are times in my life where I am drawn to a certain topic and there are times when I feel like I want a break from it and explore something else.

This has never meant that I gave up on studying a topic entirely, sometimes I simply need a break from it so that when I come back to it I have a new perspective to work from. Learning new skills and work in general isn't all about discipline and focus, play and curiosity also play a large part.

How to be Everything is a book that normalises this desire to create a career from pursuing multiple disciplines. The book helps to de stigmatise the very normal urge within some of us to pursue multiple passions.

This book serves as a practical guide to open your mind to the many options that exist for a multipotentialite (Emilie's word for a polymath). Did you know that for almost a decade in the early 1900's Albert Einstein worked as a patent officer for the Swiss government? It was during this time that he produced some of his most notable work.

The Einstein Approach

In How to be Everything Emilie presents strategies for pursing multiple disciplines in a practical way that respects important factors such as your unique tolerance for risk. In the book she refers to the Einstein Approach. Simply put The Einstein Approach is having a full time job or business that fully supports you, while leaving you with enough time and energy to pursue your other passions on the side.

How do people find the energy to pursue The Einstein Approach? Emilie presents an interesting insight in a case study of a guy called Charlie. Charlie's full time job is in IT which allows him to tap into his analytical and problem solving skills but his hobbies on the side are more intuitive, artistic and body centered. Thus he is reenergised by the shift from a logical mode of thinking to a more intuitive way of being.

The 4  strategies outline in the book ate:

  1. The Group Hug Approach - one job or business that allows you to wear many hats.
  2. The Slash Approach - having two or more part time jobs that provide you with variety.
  3. The Einstein Approach - having one full time job or business that fully supports you and allows you enough time and energy to pursue your other passions.
  4. The Phoenix Approach - working in a single industry for a few months or years and then starting a new career in a new industry.

Emilie empahsises that it is OK to mix and match these approaches, in fact that in itself is the essence to being a multipotentialite.

The Practical Balance

Emilie lays out 3 components to a happy multipotentialite life:

  1. Money
  2. Meaning
  3. Variety

She methodically takes each aspect and breaks it down into bite sized take aways. For example with money she points to the fact that we need money to live and flourish but the amount varies dramatically from person to person.

In my own life I have found that more money was available for me to spend on training and personal growth when I started to prioritise what mattered to me. This meant that I was less inclined to purchase random items and experiences impulsively.

When to Quit

Emilie draws an interesting distinction between quitting because things feel tough and quitting because you got what you came for. She calls this point in the journey The Personal End Point.

It is easy to confuse this with Resistance as they are both accompanied with feelings of boredom, dread, restlessness and fear. The key distinction she makes is how long it took for the feeling to arise and what is its intensity. If it is sudden and intense then you are more than likely dealing with Resistance but if it has gradually taken hold of you it is more likely an indicator that you have reached your Personal End Point.

Special Tools for Zero-Progress Days

Emilie points to the truth that there are some days where you will not feel up to the task and that is normal and OK. On days such as these there are two approaches that will help you to navigate the day with a little more grace:

  1. Lower Your Expectations -  Instead of expecting myself to churn out similar amounts of work a day I  have found that the freedom lies in self care and being OK with having a 'low productivity' day. On such days it is more beneficial to focus on that one thing that you want to get done that will help keep you trucking.
  2. Track Your Small Wins - the brain is wired to focus on the negatives more than the positive. This aspect of humanity is one of the reasons why your ancestors didn't get eaten alive. Using this piece of knowledge we can recalibrate by tracking our small wins.

How to Get Yourself to Do the Work

Emilie suggests a number of options, three of which I also utilise:

  1. Meditation - meditation can help to distance yourself from the many thoughts that flow through your head on a daily basis. Meditation is a state of mind rather than a practice but it comes down to knowing yourself and if the practice can help you move into this state then this is a worthwhile practice to cultivate.
  2. Movement - movement helps you to get out of your head and back into the body. I have found that when I can get out of my head just enough space is created for fresh thinking to come in. This new thinking can help shift my perspective towards the solution I have been looking for as well as help me to connect new dots that I haven't connected before.
  3. Gratitude - this can help you to notice the good things that are already in your life. I have found that in the learning process I can focus on the process itself more, the more I can appreciate where I am now and it is from this space that I can move forward. Emilie suggests to take the time to intentionally write a list of the things you are currently grateful for.

Your Learning Environment

It is important to focus on the process itself instead of thinking about everything you need to do. The book points to a useful question to help refocus the mind - which one to three itty-bitty action steps can you take right now to move your project forward?

A useful technique that can be used in tandem with this question is the pomodoro technique. This is a technique that was developed by author and entrepreneur Francesco Cirillo in the early 1900's, that helps to cultivate focus and intention. You can use the pomodoro technique like so:

  1. Set the timer for 25 minutes for doing work.
  2. Take a 5 minute break.
  3. Repeat steps 1 and 2. When you've completed four pomodoro's, take a 25 minute break.


The book highlights some of the insecurities that multipotentialites experience. Insecurities such as how to explain what you do to others? Emilie highlights that there isn't a one size fits response and your answer can depend on the context and who it is you are talking to.

Emilie also highlights the fact that there is no Expert Guild who gives its approval to the real experts. She points to the fact that it is normal to feel like an imposter and that it is helpful to keep in mind that there will always be someone at a better or lower level than you so the best thing is to focus on your work and your process.


The book helps to highlight that you are not bounded to certain people who may not share your values and enthusiasm. You always have the choice to leave and seek out like minded people.

In my own life I have found that finding the right communities has mean't that I can get much more done and come up with much better ideas than if I were to try and do it all alone. It also helps me feel more connected to other people, find more meaning, direction and purpose and decrease the feelings of loneliness and isolation that can come up when you set out to create something from nothing.

Over to You...

Have you experience in pursuing multiple different topics all at once or in a sequence? Have you read How To Become Everything? I would love to hear your thoughts and insights.

Does Busy Really get Sh*t Done?

The Hustler Mentality

'You just got to hustle, hustle, hustle' - a familiar piece of rhetoric in the current landscape. There are times when I feel like I could be doing a lot more. In such times I have noticed a tendency to beat myself up over my perceived procrastination. I wonder why I don't have the same energy levels as the hustler archetype and I conclude that he or she is just more talented or hard working.

It can easily feel like I need more energy and more time in order to become more effective and get sh*t done but when I put this logic to the test it almost always fails. Instead of being more effective I just end up feeling like I have been hustled into purchasing a one way ticket to burnout.

So why isn't hustling the magic X factor? On further inspection I begin to see that hustling is simply a variable to a much larger equation. Hustling doesn't make you a more effective person it just means you are taking more action. Whether that action is effective or ineffective is a function of your level of skill and your capacity for insight and realisation.

Hustling when taken in isolation is based on the premise that all thinking is equal when in fact nothing could be further from the truth. One trail of thought can take you from zero to hero in a fraction of a second while another trail of thought can have you lying in bed crying in frustration and cursing the world about the exact same situation.

Busy is a state of Mind

Be quick but don't hurry - John Wooden

I wish I had known a little earlier that busy is a state of mind and not a personality trait I was cursed with. The busy feeling isn't an indicator that I am in productivity mode rather it is an indicator that I need to take a break.

That busy feeling has the same function as the engine light in a car, it is telling me to slow down and pull over at the next convenient opportunity. The quality of my thinking suffers when I am in busy mode. I lose perspective, clarity and a sense of relaxation -  basically all the traits that one would associate with a state of flow.

In busy mode I feel eager to find the solution to the problem, pass the exam and get the job all at once. I feel like I need to prove something to myself and to the world, I feel like I need to prove that I am worthy of love, success and respect.

In this state I lack the clarity and foresight to focus on the simple questions that will cut to the core of the real problem I am seeking to solve. Finding new questions requires some space for reflection and introspection and my busy mind cannot comprehend how this would be useful.

My busy mind thinks that slowing down equals lost time and that introspection is something that hippies made up. This line of thinking makes perfect sense to my busy mind. The problem is that the busy mind is completely unaware to the existence of other states of mind more grounded in reflection in much the same way that a child tucked safely into his or her car seat and toy wheel thinks that he/she is the one steering the car.

A man will be imprisoned in a room with a door that's unlocked and opens inwards; as long as it does not occur to him to pull rather than to push - Ludwig Wittgenstein

The good news is that you are not your state of mind, you are not a busy person, sometimes you will feel busy but you are experiencing a state of mind and not an identity that has wrapped around you like a proverbial straight jacket destining you to a restless life of despair.

Space Cake Questions - shift from Busy to Reflective

Have you ever found yourself stumped by the logic of an inverse question? This happens to me all the time and it never ceases to amaze me how utterly lost I feel when it happens. It is as if there is a whole other world that I have remained blissfully unaware of my whole life.

On a brain level a light can be shone on this peculiar phenomenon with a cognitive bias called the confirmation bias. This is the tendency to interpret information in a way that confirms one's preconceptions, leading to statistical errors.

What the thinker thinks, the prover proves - Robert Anton Wilson

I guess the freedom in this bias lies in the fact that my confirmation bias also holds vast amounts of my limiting beliefs. When I take the time to examine some of my most limiting and debilitating beliefs it isn't long before I begin to see some of the flawed assumptions wrapped up in my confirmation bias.

'If I admit that I was wrong people will lose respect for me'. 'Being productive feels great but it comes with the sacrifice of hard work and stress'. The list is endless, my recent conversation with Micheal Neill has allowed me to gain more clarity around the productivity assumption I have held on to for so long.

These assumptions can also look like - 'I am no good with computers'. This assumption was built into my human operating system until I got curious and began to learn about computers with a more open mind.

Over to you ...

If it feels to you like there is a direct correlation between feeling busy and getting stuff done consider the following question - what if you are getting things done in spite of feeling busy? I would love to heard any insights that may arise for you as you reflect on this simple question.





Intent on Taking Action

Have you ever had the feeling that you were missing a vital piece of the jigsaw puzzle? It is all too easy to ignore this nagging feeling and continue on with the mental model of the world that I have already created.

We all have mental models: the lens through which we see the world that drives our responses to everything we experience. Being aware of your mental models is key to being objective

- Elizabeth Thornton

The Simplicity of Intention

There are times when I feel utterly perplexed by the world around me. In any given day I drift into feeling states of disconnect with the people around me, even the few people I consider myself close to.  As I try to hear them through the mental chatter in my own head things start to make sense until the following hour, day, week or month when that person does something that doesn’t fit my logic.

For a large portion of my life I felt like I needed to understand the people around me in order to fit in and feel a sense of belonging. It hadn't yet occurred to me that I was trying to fit a square peg into a round hole. As I put my energy and focus into this task I was gradually losing sight of the bigger picture and a sense of connection to my true identity.

This awareness gradually shifted as I became more aware of the power of my own intention. When I come from a place of intention I feel more aligned with reality. With intention in mind all I have to consider is where I am coming from. It simplifies things in an instant and brings more clarity to my moment to moment experience.

From this place the mental chatter gradually drops away as it makes less and less sense to listen to my mental model of how the world appears to me. I start to see that models were built to be deconstructed and reconstructed. From this space it begins to make more and more sense to simply listen to and respect the people and environment around me. My model transforms from a very tangible and concrete edifice to one made of lego and play-dough.

Action as a conduit for Intention

Intention is a good foundation but intention alone doesn’t bring results, new experiences and new outcomes. Intention and action combined is where the balance lies.

When I am aware of my underlying intention to every interaction then the surface level successes and failures are more easy to roll with. When I am in touch with my intention my action is infused with that energy regardless of the outcome. I can then take the lesson from the failure and build from the success with more clarity. The overall vision takes on the forest and the action consists of planting the many different individual trees.

Over to you…

Have you ever found yourself acting with intention or having intention without action? What changed when you combined the two?

The Value of User Research

Imagine this—you’ve just landed a project where the client needs a redesign of their website and app.

Client: “We’d like to improve the user experience. We want our customers to fall in love with our product—it has to be jaw-dropping!”

Here’s the good news: At least this client is aware of user experience (UX), cares about their customers’ needs, and sees the value in investing in a great user experience. They’ve asked for an expert with UX skills to help… but do they really understand what it means to deliver an exceptional user experience?

UX is more than following a collection of rules and heuristics in the product design process. As the name suggests, it is subjective—the experience that a person goes through while using a product. Therefore, it is necessary to understand the needs and goals of potential users, their tasks, and context, which are unique for each product.

user research and user experience design

User research is a vital component of UX design. Don't let anyone tell you otherwise.

The UX expert will be familiar with the maxim, it all starts with knowing the user, but may very quickly discover that many clients have common misconceptions about UX.

A UX expert knows that user experience research will help drive the redesign and usually begins by asking about the users: Who are they? What do they do? What do they want? What are some of their pain points?

Unfortunately, not every client or stakeholder will immediately recognize the value of doing user research. What happens when their response is that they think it’s a waste of time and/or money?

It’s the responsibility of UX specialists to educate and convince clients that good UX is next to impossible if it is not preceded by good user research.

No Need for User Research? There Is Always a Need for User Research

You cannot create a great user experience without understanding target users or their needs. User research is one of the most essential components of user experience design.

ux form design, part of user experience research

User research should shape your product design and define guidelines that will enable you to make the right UX decisions.

User research will help shape your product and define the guidelines for delivering a good experience for your users. By not spending any time on research and basing design decisions on assumptions, you risk not meeting your users’ needs effectively and efficiently.

The UX expert should act as an advocate for effective design and never simply accept the argument that there is no time or money for user research.

This is how senior UX architect Jim Ross of UXmatters sees it:

“Creating something without knowing users and their needs is a huge risk that often leads to a poorly designed solution and, ultimately, results in far higher costs and sometimes negative consequences.”

Lack of User Research Can Lead to Negative Consequences

What problem is the product trying to solve? When designing and refining a product, everything should lead back to the target user.

Sometimes, even the worst ideas can seem great at first, especially when the deeper nuances of human behavior are not accounted for or tested against. Take Google Glass—originally released as a consumer gadget, the high-tech wearable failed to achieve widespread adoption. While the technical functionalities worked as expected, the lack of a clear user need and the device’s off-putting presence on the wearer’s face hint at anemic contextual user research.

Skipping user research will often result in “featurities,” decisions that are driven by technical possibilities and not filtered by user goals. It’s the designer’s responsibility to validate every feature idea against the core use case.

A great example of “featurette” design gone wild is the common television remote control. They are unintuitive and covered with more than a dozen buttons for which your average user has no clue as to their function, which results in annoyance and a frustrating user experience.

complicated remote controller

Old remote controls are another example of hit and miss UX. There is little in the way of standardization, so each one takes time getting used to.

The same mistakes are often made in the digital world when the end user’s goals are not considered, understood, or designed for, such as frustrating user flows that add friction or confusion to the user’s experience or too many fields in a form that asks for too much information.

Instead of encouraging habitual use through a quality user experience, poorly designed and implemented interfaces are more likely to scare off potential users—and the most effective way to understand your users is to conduct user research.

Start User Research with Existing Sources of Information

The user research process will expand the timeline a little and its costs will vary, but both time and costs can be minimized. One option is to start with existing, easy to access sources of information about user behavior. Some of these methods may include:

  • Data analytics
  • User reviews and ratings
  • Customer support
  • Market research
  • Usability testing

quality user research driven by good user data

Quality user research requires time and resources. However, you can start by using existing information to get a sense of what your users need.

Whether you need to collect quantitative data or qualitative data will inform which type of research method to employ. It’s advisable to draw from more than one research method and synthesize the findings. Let’s take a closer look at some sources for existing information.

Data Analytics

If you are working with an existing product, your client may have some data and insights about its use. User data analytics is a user research method designed to obtain a good overview about general product usage: how many visitors are coming to the website, what pages are most visited, how many people download the app and from which geo area, where visitors come from, when they leave, how much time they spend and where… and so on.

By looking at user data analytics, a savvy researcher can begin to draw some conclusions about what users are doing—or not doing—and why. Looking at the abandon rate on sign-ups, for example, can point to a problem in the form design. Analyzing scroll-depth and navigation paths can hint at which content is most compelling to visitors.

user data analytics

User data analytics give insights into how users find content, what they are looking at, and where they go next.

However, quantitative data can only paint part of the picture. It doesn’t tell you how the experience feels to a user, what users think about your service, or why they are spending time on your website. On its own, data analytics can tell you when a user leaves but may only partially hint at the reason.

For example, the data indicates that users are spending a lot of time on a specific page. What it doesn’t explain is why. It might be because the content is compelling, which means users found what they were looking for. On the other hand, it could be an indication that users are looking for something they cannot find.

Data analytics are a good starting point, but further qualitative data is needed in order to support the interpretation of the statistics.

User Reviews and Ratings

Your client’s product may have already received some user feedback. There might be a section for feedback or ratings on the website itself, and external sources may also be available. People might have talked about it in blog posts or discussion boards or may have given app reviews in an app store. Check different sources to get an idea of what users are saying.

However, it’s important to be aware of the limitations when employing these kinds of qualitative research methods. People tend to leave reviews and ratings about negative experiences—don’t take this as a reason to shy away from user reviews or to ignore feedback.

Instead, try to look for patterns in the responses and repeated themes in comments. Here are a few tips for making the most from user input:

  • Check whether any action has been taken on negative comments.
  • Compare the timing of negative comments to releases and changelogs. Even great apps can suffer from poor updates, leading to a lot of negative comments in the days following the update.
  • As much as possible, weed out baseless comments posted by trolls.
  • What are users saying about the competition? Identify positive and negative differentiators.
  • Don’t place too much trust in “professional and independent” reviews because they aren’t always very professional or independent.

User reviews are a good source for collecting information on recurring problems and frustrations, but they won’t give you an entirely objective view of what users think about your product.

Customer Support

Clients may have a customer support hotline or salespeople who are in touch with the user base already. This is a good resource to get a better understanding of what customers are struggling with, what kind of questions they have, and what features/functionality they are missing.

Setting up a couple of quick interviews with call center agents and even shadowing some of their calls will allow you to collect helpful data without investing too much time or money. Conducting a focus group is also a great way to get a group of users to discuss and expand on the information gathered through customer support. Launching a survey is yet another inexpensive method for encouraging users to supply feedback.

customer interviews are part of user experience research

Customer interviews and focus groups are a great way to get actionable feedback from real users.

Customer support provides a good opportunity to learn about potential areas for improvement, but you will still have to dive deeper to get detailed information about a product’s intrinsic problems.

Market Research

The client may have some basic information about the customer base, such as accurate demographic information or a good understanding of different market segments. This information is valuable in order to understand some of the factors behind a buying decision.

By considering the information reported by market research, a UX expert can get a better picture of a variety of factors in user behaviors. This research helps pose questions around how the target user’s age or geographic location may factor into their understanding and use of a product.

Market research is a good source of information for a better understanding of how the client thinks, what their marketing goals are, and what their market looks like. It should be considered alongside other user experience research in order to draw a conclusion.

Usability Testing

If you are lucky, your client might have done some usability tests and gained insights about what users like or dislike about the product. This data will help you understand how people are using the product and what the current experience looks like.

It is not quantitative research, and therefore you won’t get any numbers and statistics, but it helps you identify major problems and gives you a better understanding of how your user group interprets your interface.

usability testing is a qualitative research methodology

Usability tests help product teams understand and optimize user flows and user experience design.

One highly informative method for assessing a product’s usability is by conducting a heuristic analysis, although this might be a hard sell for some clients. Completing a task analysis exercise may be a lower overhead qualitative research methodology for usability testing.

Activities like card sorting can help you understand how users organize and prioritize information. Conducting contextual interviews while watching a user navigate your product in the appropriate environment will help you gain valuable insight into their thought process.

Usability tests are another good way of identifying key problem areas in a product. There is also the option to do some quick remote testing sessions by using services such as usertesting.comto gather data.

Like what you're reading?
Get the latest updates first.
No spam. Just great design posts.

How to Educate Your Client about the Value of User Research

The budget might be small and the timeline tight, but ignoring user research will eventually come back to haunt you. Help your clients avoid costly pitfalls by making them aware of the benefits of user research.

understanding users through empathy maps

What's the ROI of good user experience? Knowledgeable UX experts must be able to communicate the value of user research to clients.

A client may insist that user research is not necessary because they are relying on, and trusting in, your skills as a UX expert. As a UX designer, you need to view user research as part of your toolkit, just like a craftsman’s hammer or saw. It helps you apply your expertise in practice, and just as a carpenter can’t work without a saw, you can’t do your job without your tools.

No matter how much expertise you have as a designer, there are no generic solutions. UX design solutions always depend on the user group, the device, and the context of use, so it’s essential that they be defined and understood for every product respectively.

You are the UX design expert, but you are not the user. User research helps to provide an unbiased view; to learn about the users’ natural language, their knowledge, mental models, and their life context.

a ux designer using quantitative research methods

A great UX designer employs a variety user research methods and pulls data from a variety of sources.

Another argument against conducting user research is that the product will succeed by “following best practices.” Best practices originate from design decisions in a specific context, but the digital industry is evolving at a rapid pace. Design trends and best practice recommendations change constantly, and there is no fixed book of rules.

Product designers need to be able to adjust and adapt to changes in trends, user behavior, and technology. Those decisions should be made based on user experience research, not solely on practices employed by others for different projects.

Some clients or stakeholders may insist that they know all there is to know about their users, and therefore user research is unnecessary. However, without a clear picture of what the users are doing and why, a large piece of the puzzle is missing.

Inviting your client to a user needs discovery session will help them observe how users are using their product. Start with small tests and use remote usability testing tools such as usertesting.comto get some quick insights and videos of users in action. Your client may be surprised at the results.

The work product that comes from these exercises might be a user journey map or a user task flow. Aim for a visualized document that identifies unresolved questions so you can define areas that need more research.

user journeys and user flows

A UX designer maps out user flows and customer journey maps to understand what the user is experiencing.

Some clients may point to personas as a stand-in for user research. Personas are a good tool for making a target user group more tangible and for surfacing needs, such as building key user task flows and how that might vary for different groups. But personas are intended for identifying a target user base and to help the product team gain empathy for the user.

Personas will help you understand who the users of the product are but not how they will use the product. They will outline certain attributes, behaviors and motivations, goals, and needs but will not give the UX researcher habits, culture, or social context.

user personas form a part of ux research

User personas are a useful start to user research.

To design a robust product, it’s necessary to develop a better understanding of the actual usage. Designers need to know how people work with the product, what they do with it, and when they get frustrated. Ask for further details about user stories and task flows to make use of personas.

One universally-dreaded argument against research is that there isn’t enough in the budget. When that’s the case, a resourceful designer gets creative. The above-mentioned sources of information about user behavior (under the heading: “Start User Research with Existing Sources of Information”) should provide a good starting point for sharing ideas with your client even if their budget is tight. The results of these user research methods will inform and focus any further user research you deem necessary.

Uninformed decisions that lead to mistakes can end up being more costly than the price of doing good research. Make your client aware of the risks if product design decisions are made without a good understanding of the user.

User Research Is the Basis of Every Good User Experience

User experience is still a bit of a “mystery” in many circles, and non-designers may not know what user research is. Everybody talks about user experience, yet it is hard to define, as a good experience is in the eye of every user.

Research is, therefore, key to gaining a sound understanding of the context, the user goals, and the thinking necessary for designing a truly exceptional user experience.

The more transparent you are with your work process, the better your client will understand your tools and the information you need to make good decisions.

ux wireframes and prototypes

Leverage user research data and insights to inform designs and optimize the user experience.

While some clients may not be open to the idea of using additional resources on research, it is necessary for user experience specialists to explain the value of user research and to argue for further research when necessary. To accomplish this, UX designers will require negotiating skills to make their case. Help answer the question: Why is UX important?

Luckily, proper user research is beneficial to clients and UX designers, so convincing clients to divert more resources towards research should be achievable in most situations. Reluctant clients may be swayed when shown cost-effective user-research methods, and hopefully, some of the tips and resources outlined in this article will help a designer make his or her case, even if money is tight.


This post was written by Frauke Seewald, User Research Designer for Toptal.

The Talent Code by Daniel Coyle

The Talent Code deals with the question of greatness and how it comes into being. The premise of the book is that myelin, a sort of insulator for the synapses connecting neural pathways, is the magic sauce for skill. It is said that Albert Einstein's brain had about 20% more myelin than the average brain. The book is divided into 3 main parts.

1. Deep Practice

This section poses three thought provoking questions to the reader:

  • How does a penniless Russian tennis club with 1 indoor court create more top 20 women players than the entire U.S?
  • How does a humble storefront music school in Texas produce superstar singers such as Jessica Simpson and Demi Lovato?
  • How does a poor scantly educated British family in a remote village turn out 3 world class writers?

Daniel goes on to highlight the effect deliberate practice has on myelin. Every human skill, whether it be playing a sport or a piece of music is created from the chains of nerve fibres carrying a tiny electrical impulse. As myelin gets thicker it allows these electrical impulses to flow more effortlessly which in turn means faster and more accurate movements in our thoughts and our movements.

Myelin is shown to important for several reasons:

  • It's universal: everyone can grow it, most swiftly during childhood but also throughout life.
  • It's indiscriminate: it's growth enables all manner of skills both mental and physical.
  • It's imperceptible: we can't see it or feel it, and we can sense its increase only by its magical effects.
  • It provides us with a vivid understanding of skill.

To highlight the effectiveness of deliberate practice over observation an experiment from Bjork is highlighted. In the experiment students were divided into 2 groups; Group A and Group B. Group A studied a paper for 4 sessions while Group B studied the paper once and was tested 3 times. A week later both groups were tested with Group B scoring 50% higher.

Bjork explained that the reason resides in the way we use our brain:

We tend to think of our memory as a tape recorder, but that's wrong. It's a living structure, a scaffold of nearly infinite size. The more we generate impulses, encountering and overcoming difficulties, the more scaffolding we build. The more scaffolding we build, the faster we learn.

Deliberate practice is different to regular practice as deliberate practice harnesses failure and turns it into a skill. The trick seems to be to choose a goal just beyond your current abilities. The aim is to struggle. Trashing blindly doesn't work but reaching does.

2. Ignition

In the ignition section Daniel looks at the conditions that create explosive growth. In this section an experiment run by Gary McPherson in 1997 is highlighted. The aim of the experiment was to find out why certain children progress quickly at music lessons while others don't. This was a long-term study with 157 random children. The study used interviews, biometric tests and videotaped practice sessions.

After the first 9 months there was a mixed bag of results among the children that resembled a bell curve of skill. This prompted the question 'what caused the curve?'

A number of factors were put to the test and factors such as IQ, aural sensitivity, math skills or sense of rhythm, sensorimotor skills and income level were all dismissed. Then a simple question came to light. A question that was asked before the experiment began:

How long do you think you'll play your instrument?

The options given to the students were as follows:

  • Through this year.
  • Through primary school.
  • Through high school.
  • For life.

For the sake of simplicity these were broken down to:

  • Short Term
  • Medium Term
  • Long Term

Next McPherson measured how much each child practiced per week:

  • 20 minutes - low
  • 45 minutes - medium
  • 90 minutes - long

A graph was plotted with the above measurements. The result was astonishing. The long term commitment group outperformed the short term group by 400% when the practiced for the same amount of time. It got even more interesting. The study showed that the long term group surpassed the short term group when they practiced for 20 minutes versus 90 minutes.

Another study in this section served to shine a lot on how and what we praise students for. The study was conducted by Dwech on 5th graders in a school in New York. Each child was given a test. Half of the students were praised for their intelligence and the other half were praised for their strength. A second test was then given where students were given the choice of a harder or easier test. 90% of the students praised for their effort chose the harder test while the majority of students praised for their intelligence chose the easier test. A third test was then given to the students. This test was uniformly harder. It was found that the effort group dug in and grew more involved in the test, trying solutions and testing strategies. However the group praised for their intelligence hated the test as the perceived it as proof that they weren't smart.

3. Master Coaching

The third section takes alook at the master coaches. In this section a study conducted by Gallimore and Thorpe on the famous basketball coach John Wooden is highlighted. In their observations they noticed that 75% of Wooden's teaching acts were pure information of what to do, when to do it and when to intensify the activity. One of Wooden's most frequent forms of teaching was a 3 part instruction where he modeled the right way to do something, the incorrect way to do it and then remodeled the right way. Amazingly demonstrations were no longer than 3 seconds. The key was the clarity he brought that left an image in memory for the players.

Wooden also taught in chunks - he would teach players an entire move and then break it down to work on its elemental actions. He formulated laws of learning: explanation, demonstration, imitation, correction and repetition. His way of thinking was not to look for the big, quick improvements but to seek the small improvements one day at a time.

When talking about a master coach Gallimore goes on to describe a matrix. The matrix as Gallimore saw it was the word for a vast grid of task-specific knowledge that distinguishes the best teachers and allows them to creatively and effectively respond to student efforts. Gallimore explains it this way:

A great teacher has the capacity to always take it deeper, to see the learning the student is capable of and to go there. It keeps going deeper and deeper because the teacher can think about the material in so many different ways and because there is an endless number of connections that can be made. A mix of technical knowledge, strategy, experience and practiced instinct ready to be put into instant use to locate and understand where the students are and where they need to go.

Another thing that was noticed about master coaches is that they constantly change their input. If A didn't work, they tried B and C, if they failed the rest of the alphabet was holstered and ready to be used.

What would seem on the outside to be patient repetition was actually on close examination a series of subtle variations, each one a distinct firing, each one creating a worthwhile combination of errors and fixes that grew myelin. A common phrase in the talent hotbeds was

Good. Okay now do ___

Over to you…

I would strongly recommend this book for anyone who is looking to gain a better understanding of brain activity when learning a new skill. By reading this book you will gain some insights into causation and correlation, how master coaches approach teaching and how talent hotbeds allow talent to ignite and flourish.

Are you thinking of learning a new skill? Have you read the Talent Code? What did you learn from it?

Teacher Blindspots

I have come to believe that a great teacher is a great artist and that there are as few as there are any other great artists. It might even be the greatest of the arts since the medium is the human mind and spirit - John Steinback

A Surface Level Understanding

On the surface, teaching appears to be a rather straight forward profession. We have the teacher on the one hand and the student on the other. The teacher is given the task of educating the student and imparting his/her wisdom from a certain domain.

One of the implications of this teacher/student dynamic is that there is a linear journey that the student needs to go on. It is assumed that the teacher is further along this journey and that they will help the student to up level. Each mistake will be corrected with a new adjustment until the day arrives where the student is deemed worthy enough to graduate from the class.

A Bug in the System

The problem with this assumption is that learning is not found in a single linear path. This linearity of the learning journey assumes that the teacher has seen every nook and cranny that the student will see. The problem arises when a student catches a glimpse at one of the many other paths that lead to the same destination.

Real learning begins when a student sees a path that a teacher has overlooked. As a teacher we have an instantaneous choice to make. We can either become curious to our own blindspot or  put an abrupt end to this perceived personal attack.


The problem with Blindspots is that they are Real

The problem with being an expert is that I can only ever be an expert who has expert blindspots. It is much easier, and more aligned with reality, to embrace blindspots as a fact. When I am willing to accept that I have and always will have blindspots the energy I bring to teaching fundamentally changes.

I start to feel my curiosity emerge and I feel more lighter about the whole experience. I am more receptive to listening to the student from a place of curiosity and more willing to communicate and clarify certain points for both my understanding and theirs.

The limits of my language means the limits of my world - Ludwig Wittgenstein

When I approach a lesson as an opportunity to help the student and at the same time remain open to seeing through another one of my blindspots then we enter win/win territory. In this space I am no longer just helping to expand my student's vision of the world but also my own.

Over to you...

Have you ever learned something from a student that allowed you break free of an assumption? For the next lesson with your student my challenge for you is to simply listen and respond and see where the conversation takes you.

Command Line Tools for Developers

In today’s online world, the battle to attract users continues to rage on, with app makers preferring either mobile or web apps. Desktop applications are becoming less and less relevant. Moreover, they also tend to be nothing more than rich clients to web apps—Electron being the popular platform of choice. Does this mean we will soon abandon the desktop as a platform? No, of course not, I wouldn’t say that. Besides, while GUI apps seem to have been stalling recently, there is a segment of desktop apps that continues to grow.

Have you ever seen any movie featuring hackers? More often than not, these people are shown working in front of monitors displaying some sort of terminal (usually with a dark background and light foreground). This terminal, in turn, tends to be flooded with passing characters that apparently have some meaning to the person watching them.

Illustration: command line tools and hacking look cooler in the movies than in real life

Such representations of hackers in action are often mocked by professional developers, and there are even some programs that simulate various “hacker” effects, just for fun.

However, in the real world, command line tools aren’t used for their entertainment value.

Why We Still Use Command Line Interface Tools

This article focuses on the practical side of using command line interface (CLI) tools. Knowing CLI commands and using quality tools can make you more productive and can also open doors to various approaches to automation that are far more practical with textual interfaces than with GUI apps.

You can get better at doing repetitive tasks in GUI, to the point that your multiple clicks are heard as a single long one. The problem is, this still won’t beat the efficiency of a specialized script. What’s more, performing the same operations manually introduces both an added cognitive load and the increased possibility of human error. As usual, we rely on computers to handle tasks humans may find boring, repetitive, or overwhelming.

It is worth knowing that a terminal tool can offer several types of interfaces. There are non-interactive ones like ls, which simply take the parameters and provides the output. There are interactive or semi-interactive interfaces most often found in package managers. (“Are you sure you want to proceed with the installation from unverified source?”) Then, there are textual user interfaces (TUIs), which are interactive GUI apps designed to fit the limitations of a terminal. Probably the most famous one is Midnight Commander (mc), a clone of extremely popular (in the 90s) Norton Commander.

Essential Command Line Tools

If you want to become a console dweller, you need to equip yourself with a minimum set command line developer tools—-the bare essentials. Things you most definitely can’t live without are an interactive shell(aim for something modern with convenient tab-completion) and a text editor.

Illustration: essential command line tools

Now, I will mention the UNIX philosophy, which is often the foundation behind design decisions made by the tool’s authors, whether consciously or not. Some of the key points can be summed up as follows:

  • Treat everything as a file.
  • Do only one thing, but do it well.
  • Read from standard input, write to standard output, and communicate errors to a standard error stream.
  • When succeeded, return code 0. A non-zero value means an error (which can be specified by the exact return code).
  • Allow for command chaining and scripting.


The first thing you see when opening a terminal is a shell. This is the part that makes the interaction between the user and the machine possible. It interprets your commands, splits them into program names and arguments, and executes all shell commands you throw at it.

Historically, there have been many different kinds of shells. Among the most popular ones were csh (C Shell) and various implementations of the Bourne Shell (usually known simply as sh). Bourne Shell got extended into Korn Shell which also gained some traction and is still being used by its enthusiasts. Csh is currently the default shell on some BSD systems, while almost all other UNIX-like operating systems prefer some kind of a Bourne Shell. Linux distributions tend to favor bash while Mac OS X comes with zsh as the default choice.

There are other possibilities out there, but they are far less popular, except Microsoft PowerShell on Windows systems. PowerShell is inspired in part by the interactive UNIX shells such as zsh and in part by the .NET runtime. Instead of treating everything as text, a concept common in UNIX world, it allows for object-oriented manipulation of data.

Even though Microsoft PowerShell is quite popular in the Windows realm, many programs with UNIX origins (most notable being Git, Autotools, or Make) tend to prefer some variation of Bourne Shell. Because of this, projects such as msys (bundled with Git for Windows), Cygwin, or Microsoft’s recent WSL were born. If you want a Linux-like feeling on Windows, MSys is the best choice here. If you want a full-featured Linux environment able to run standard Linux binaries, then WSL is the way to go. For something in between—UNIX API but compiled as a Windows executable (only use it when you actually know why you need this)—Cygwin is the answer.


Once you get acquainted with your shell, you will want to pick up some useful skills. As most of the coding work revolves around writing text (code, READMEs, commit messages), a good knowledge of interactive text editors is essential. There are many to choose from, and since an editor is one of the most necessary tools for any developer, there are probably just as many opinions on which editor is best.

Illustration: a command-line editor has a simple interface

The most popular text editors can be separated into two basic groups: Simple text editors and programmable text editors.

Both can be great for writing code, but, as the name suggests, the programmable ones offer the ability to shape and customize the editor to perfectly suit your needs. This comes at a price, though, as they also tend to have a steeper learning curve and may require more time to set up.

Basic Text Editors

Among the simple text editors, GNU Nano is the most widespread. Actually, it is a clone of the pico editor, so if one is not available on your system, you can try the other. Another, more modern, alternative to both is the micro editor. If you want something simple and extensible at the same time, this one is a good place to start.

Programmable Text Editors

Many developers rely on programmable editors from different camps, such as Vim and GNU Emacs. Both editors can run in the console or in GUI mode, and both had an impact on the key bindings found in other software. They both offer not only an API but also actual programming languages built-in. Emacs focuses on LISP and Vim uses its own VimL, but it also offers interfaces to other popular scripting languages (like Lua, Perl, Python, or Ruby). A more recent approach to Vim, called Neovim, is also worth mentioning, as it is starting to get a serious following.

It may be somewhat confusing, but there is also an editor called vi which is a predecessor of Vim (which, incidentally, stands for “Vi improved”). It is much simpler than Vim, but if you have enough confidence to write in Vim, it should not be a challenge to you if you find yourself needing to use vi.

Since pico/GNU Nano and vi/Vim are usually preinstalled on various systems, it is a good idea to at least grasp their basics (quitting Vim is a notoriously hard problem for beginners). This way, if you need to edit something on a remote machine, you will be ready regardless of what editor is already there. On your private device, feel free to use any editor you find the most comfortable.

Default System Editor

One last thing to note is that your system may have what is called a default editor.

The $EDITOR environment variable points to the default editor and in Bourne-compatible shells (sh, bash, ksh, zsh) you can see it by entering echo $EDITOR. If the value differs from your personal choice, you can set it yourself by adding export EDITOR=my-awesome-editor to your shell’s runtime configuration (~/.profile~./bashrc~/.zshrc, and so on).

Other programs, such as version control systems and mail clients, will use this editor when they need longer text input.


As soon as you start doing serious stuff in CLI, you will encounter the limitation of being able to keep only one application open at any given time. When coding, you may want to edit the code, execute it, fix the mistakes, and execute again. When looking for a bug, you may want to list logs and see what gets logged when you send a request to the server. Typically, this would either mean switching between the two applications constantly or opening several terminal windows.

This is where a terminal multiplexer can help you. When speaking of multiplexers, some people immediately assume the topic to be of GNU Screen. It was the first widespread tool of its kind and is still very popular today (often being installed by default). Its modern replacement is tmux which, unsurprisingly, stands for “terminal multiplexer.”

These two allow you to have more than one window open in a given terminal session and switch between those sessions freely. They allow you to split the windows into panes, which helps running several applications at the same time and observing their output in real time (without switching any windows). Also, they work in a client-server mode, which means you can detach them at any given time and come back later to continue the work just where you left off. This last feature led to Screen’s popularity when people wanted persistent IRC sessions.

For most use cases, GNU Screen or tmux should be great for you, but if for some reason you would consider them to be too heavy on resources, there are also lighter alternatives. There’s dtach/atach and there’s abduco. They are limited in scope on purpose but can perform their respective duties well.

Package Manager

At this point, you may start thinking about getting all the aforementioned software installed on your machine. One problem is that each of the tools has different installation instructions. Sometimes, you need to download sources and compile them yourself, sometimes you get the self-contained binary, and sometimes you get what is called a binary package, which usually means an executable compressed together with some metadata.

To ease the process of installing software, operating systems creators came with a concept of package managers. Put simply, a package manager is like an app store for CLI and desktop apps. It precedes actual app stores by some decades. The problem is that almost every system has its own package manager. Debian, Ubuntu, and derived GNU/Linux distributions use APT, Red Hat-based distributions prefer yum or DNF, other Linux distros have more exotic means of installing software and so does different BSD clones. Besides built-in package managers, there are also user-installed ones like Chocolatey for MS Windows and Homebrew for Mac OS X/macOS. When you want to write instructions on how to install your program, you may end up writing cases for each of those systems. Seems like a bit too much, doesn’t it?

Fortunately the last of the mentioned systems, Homebrew, may be the most portable one, thanks to Linuxbrew, a port of Homebrew to GNU/Linux systems. The funny thing is, it even works on WSL if you want to have a similar user experience on Microsoft Windows. Keep in mind that WSL is not officially supported, though.

So, besides portability, what else can Homebrew offer? First of all, it does not interfere with the system packages, so everything you install resides on a separate layer to the operating system. Besides, no root permissions are usually needed to install packages. You can, therefore, have system packages which are stable and tested but at the same time check their newer versions without sacrificing the stability of the system.

If you wanted to test the editors, I mentioned earlier that all you need to do on a system with either Homebrew or Linuxbrew is to run this command:

brew install emacs micro nano vim neovim.

The Shiny Stuff

What we have already discussed is undoubtedly useful for work. But there are also applications that, while not necessary, still bring comfort to everyday life. You may not need them, but it is always worth to know them.

Interactive Filter

Searching the command history can be tedious. While both bash and zsh feature Ctrl+R keybinding, it only shows one substitution at a time. What is more, you need to enter the exact text that you used before. Since this is quite a common operation, once you start using the command line, it looks like a fine place for improvement.

Interactive filters, like fzypercolpeco or fzf help you with filtering long lines of text. This can either be the aforementioned command history, all the lines of code in a project directory, or a list of filenames generated by find .. The general idea here is to present you first with all the lines available and then rely on fuzzy finding algorithms to filter out everything that doesn’t match.

For example, binding Ctrl+R to fzf shows you a list of the most recent commands, which you can navigate up and down using arrows, or you can type git to only show commands that feature Git somewhere inside. Personally, when I work with a shell that does not have an interactive filter, I feel suddenly a little bit lost. This feature is really compelling!

Plus, you can make your interactive filter available inside your programmable text editor. This way, you will have unified searching capabilities between your shell and your editor.

Interactive Navigator

Facebook PathPicker was a great help when I was working mostly with C++ projects. The error log generated by the compiler can get pretty big and pretty nasty, and the ability to find the actual paths inside that log was a productivity boon.

In any given text file, or the content of your screen when used with tmux, fpp filters everything but the file paths. It then presents a UI where you can select one or more of those paths and run a command with them. The most common response would be to open the files in an editor, of course, which is the default action.

Git UI

Chances are at least one of the projects you work on uses Git as a version control system. While being entirely powerful, the Git CLI is not the pinnacle of excellent user experience. To save you some stress reading through all the options in the Git help $SUBCOMMAND, I recommend that you check out tig. It offers a nice console UI for the operations that benefit from it, like log or blame.

Another tool that aims to help GIt users is fac, which is an acronym for Fix All Conflicts. As you might have guessed, it comes in handy when you run into conflicts while doing merges or rebases. It’s an alternative to other merge tools like vimdiff.

File Manager

There was a time in the 90s when everybody wanted a two-pane file manager. The trend started with Norton Commander. Many others followed the same path, but the one that still sees a stable user base is Midnight Commander. The most obvious use case is using mc to manipulate local files, but it’s also very useful when working with remote machines.

Like most command-line programs, it’s very lightweight, so there is no problem running it over ssh and thanks to supporting FTP and FISH protocols, you can have a local file system visible in one pane and the remote one in the other—a convenient feature when you want to avoid typing or copying files names as arguments to scp.

CLI Tools Just for Fun

“All work and no play makes Jack a dull boy,” they say. There are a lot of programs, command line and otherwise, that only serve your amusement. The Rogue video game falls into this category. It even gave name to the whole genre of games! Other popular toys are fortune and cowsay, which can make your day a bit less dull if you use them somewhere in your CI scripts, for example.

But for some of us, the main appeal of using a console in the first place is to feel like a hacker in the movies. No More Secrets and Hollywood Hacker represent this group well. Try it when somebody’s watching you work, and your hacker cred is certain to rise!

Command Line in Practice

So, what is so appealing about the command line that offsets the hours spent learning how to use the shell, the editor, and all the switches of various apps? The short answer is productivity, which comes from two things:

  • One is that when you are presented with only a terminal window and nothing more, you can focus more intensely, as there is not much to distract you. No notifications popping up, no ads, no pictures of pretty kittens. Just you and your goal.
  • The second thing is automation. You can put several frequently combined actions in a script and call it later as a whole instead of typing them all by hand each time. You can quickly get back to a particularly complex command you once wrote by searching through your shell’s history. Basically, you can record and replay anything, and the code is available as a documentation of what you did.

The ability to add aliases also contributes to the gains. For example, I find myself often crafting commits in Git by updating the same one until it’s perfect (for the moment). Once I stage the desired files, I run git carmh. Don’t try to look it up in the manual, as it is my private alias meaning commit --amend --reuse-message=HEAD. It saves some typing for sure.

Thing is, people get bored repeating the same actions over and over, and boredom reduces focus. This can lead to mistakes and errors. The only way to avoid them is not to interlace high-focus and low-focus actions. Writing code is high-focus and reviewing a commit message and contents is high-focus, but when you need to repeat several mechanical clicks here and there to get to the stage of commit review, chances are your focus is lowered. Command line isn’t, of course, free of such mechanical activities, but thanks to automation, you can avoid most of them.

Further Explorations

You may already have been aware of some or all command line tools mentioned in this article. You may have learned something new and useful while reading it. If so, excellent—my aim here was not to offer a comprehensive overview and comparison of different tools, but to demonstrate a few crucial tools that I have found helpful in my daily work, in the hopes that you might find some of them useful, too.

There are far more interesting command line programs out there, and if you are interested in them, I recommend checking the Awesome Shell curated list of some of the best command line tools available today.

Most of the GUI apps have their terminal counterpart. That includes web browsers, email clients, chat clients (IRC, Slack, XMPP), PIM suites, or spreadsheets. If you know of any good programs that I haven’t mentioned, please bring them up in comments.

This post was written by Piotr Gaczkowski, Python Developer for Toptal.

What really stops me from Speaking French?

But, we have always done it this way...

I have been learning French for 5 years now. I have passed the necessary exams that were markers of perceived 'progress'. I have spent hours with my head in a grammar book and even more hours memorising never ending lists of seemingly random 'functional' words. I now have a qualification that says that I am proficient in French.

But what does this actually mean? I go to the job market and I suddenly realise that the world has progressed since the time I put my best foot inside a classroom. I am now competing with French natives for a job here in Ireland. I finally see the meaning behind the phrase 'He is only book smart'.

I meet some French people and we are talking in English. I can't bring myself to speak to them in French. 'I want to say something as simple as where are you from in France?' 'How do I say that again? umm.. what is the second person of the verb to be?' I suddenly realise it is too late the conversation has moved on and I have found out that Amandine is from Dax a quaint touristy town not far from Bordeaux.

Wherever I see people doing something the way it's always been done, the way it's 'supposed' to be done, following the same old trends, well, that's just a big red flag to me to go look somewhere else - Mark Cuban

Some call it 'un cauchemar', I prefer to chalk it up to an experience

I can remember my first stint in France in 2007. I was 18 years old and it was my first time even visiting the south of France. When I landed in Marseille airport I can remember some moments of panic as my co-ordinator failed to show up as I had anticipated.

No doubt it was a break down in communication as my phone calls with her were the first real functional interactions I cam remember having in French.

I ended up spending a night in a hostel and the next day I eventually found my accommodation in Aix-en-Provence, a town located thirty minutes away. At the time I thought that Aix was some district in Marseille.

I was 18 and naive but more importantly I was about to realise that I had spent 6 years learning French without any real understanding of what a functional understanding of French looked like.


It's not personal, muscle memory couldn't care less about your feelings

My second interaction was just as fruitless. As I was watching a rugby match in one of the local pubs in Aix-en-Provence I initiated a conversation with the bar tender who had brought me some free olives with my drink. Initially we were speaking in English and I explained why I was in France. As I got a little more comfortable I tried to switch the conversation to French.

Instead of having some lines spring to mind like 'Where are you from originally ?' or 'Do you like rugby?' my mind was cluttered with grammar rules and verb conjugations. It took me what seemed like an eternity to string together even the most basic of conversations. Eventually I gave up and thought nothing more of it other than I was still a novice in French, even though I had spent 6 years learning it at that point.

Hindsight has allowed me to see that information overload was the problem I was facing. I had spent years learning grammatical rules and verb conjugations with little understanding as to why I was learning French and what it means to learn a foreign language. This approach to learning was the very thing getting in the way of the real time practice that my skillset needed.

When I take the time to inspect my native language I suddenly begin to see that I am 'fluent' but I don't necessarily know as much about the grammar as I do in my foreign language. I speak fluently in English from the many years of real world experience that I have acquired. I have built that muscle memory that I can rely on in real time. I don't have to think twice about stringing together a sentence in English and this is what my French was missing.

You can think of building muscle memory like building muscle when you go to the gym. The more you use the muscle the stronger it gets and the stronger it gets the more intuitive it becomes.

I started to become good at French when I increased my time spent in real time conversations. When I did this I gradually embraced the uncomfortable feelings that go with making mistakes and as I did this I received real time feedback that helped me progress in the language.

Over to you...

Have you been struggling to learn a foreign language? What one thing in your approach are you willing to change today?

Take Action Today

Are you struggling to acquire real time experience speaking your foreign language?

  • Do you want to gain more clarity around why you are learning your foreign language?
  • Do you want to procrastinate less and take more action?
  • Do you want a simple step by step approach to functional language learning?
  • Do you want to be more comfortable putting yourself out there and making mistakes?

If you answered yes to the above questions then book a Free 30 minute consultation to see if you would be a good fit for my 4 Week Language Learning Course.




The Learning Curve

A Funny Kind of Logic

For a large portion of my life I unintentionally limited myself with a funny kind of logic. I tended to want to do more of the things I was naturally good at and less of the things that took me a little longer to get the hang of. I'm not quite sure when I picked up the strange idea that I needed to be a certain level of good to do something.

On a rational level it would make sense that I would learn to become better at things that I was initially really bad at. However, my life has often been controlled by all sorts of irrational thinking. Being bad at something brought up a lot of insecure feeling and rather than being open and curious to this feeling it was much easier to feel a tingle of anxiety and run a mile.


There is Always a Curve To Climb

The truth of the matter is that there is always a learning curve. The choice lies in whether I choose to acknowledge the curve or not. When faced with this truth it no longer makes much sense to perceive learning as a struggle. There is no right time to begin or there is no perfect amount of time to do something for. The real question is why do I choose to learn this?

Possibility is Where the Curve Begins

I guess it is easier to embrace the learning curve when I know that it starts with possibility. The possibility of becoming a guitarist will give me the incentive to buy a guitar and start playing a few notes. The possibility of speaking a foreign language will move me to do a Google search in order to find the nearest Meetup group where I can practice.

Possibility is where life begins and boredom ends. Possibility is where adventure and a sense of aliveness come from.

Over to You...

Have you ever became good at something you thought was not for you? I would love to hear some of your insights in the comments section.


The Art of Learning by Josh Waitzkin

The Art of Learning: An Inner to Optimal Performance is written by Josh Waitzkin. In this book we get a glimpse into the journey Josh went on from his days as a chess prodigy to becoming a World Champion in Tai Chi Chuan. On the surface these skills look completely unrelated but as we go on the journey we begin to discover how both worlds compliment each other. Art of Learning

More than one solution to any meaningful problem

When facing a problem I have found it more difficult when I operate from the flawed assumption that there is only one correct answer. 😕 In fact there are numerous solutions to any meaningful problem.

In the book we see how Josh deals with an arm injury that prevents him from using his right arm to fight. Instead of taking the conventional approach of resting until his arm was strong enough he decided to train using only his left arm. In doing so he was able to improve his overall game.

Obstacles are not obstacles but challenges to overcome

In the book we see that Josh embraces challenges rather than run from obstacles. It is the same stimulus but we get to see the stimulus from Josh's perspective. We see how Josh intentionally seeks out opponents who are stronger than him with the intention of investing in loss in order to grow in the areas he needed to grow in

3 Core Principles

Josh identifies 3 core principles that serve to point out what the 'magic' is built on.

  1. Making Small Circles - take a single technique or idea and practice it until we feel its essence. Then we gradually condense the movements while maintaining their power until we are left with an extremely potent and invisible arsenal. In computer programming the concept of a for loop will initially seem foreign to you but as you practice and internalise the technique of creating for loops your understanding will deepen and you won't need to consciously think about what you are doing, this happens without any compromise on the power of the for loop.
  2. Slowing Down Time - focus on a select group of techniques and internalise them until the mind perceives them in tremendous detail. This happens because the mind is able to process more frames in less time. An example of this is when you learn a foreign language and from practice and repetition your brain starts to pick out words, as your understanding of the language deepens the language appears to slow down as your brain is able to process more in less time.
  3. Illusion of the Mystical - use the previous two principles to control the intention of the opponent - this is done by zooming in on very small details to which others are completely oblivious. This can be observed in language learners who seem to speak effortlessly in their foreign language.

Two Worlds -  One Center 🌐

From reading this book we gain a better understanding of how chess, a highly analytical field, compliments Tai Chi Chun, a field which works more with the physical body. We see that Josh leverages his strategic mind as his strength. Rather than striving to become someone entirely different he chose to double down on his strength and find a way to leverage it to his advantage. Rather than fight power with power he chose to build from the strategic mind he had cultivated from a decade spent as a chess player.

Small Fish, Big Pond 🐟

Josh demonstrates a small fish, big pond approach to learning. When he entered the Tai Chi Chuan world it would have been much easier for him to stay within the confines of the U.S., instead he chose to challenge himself in Taiwan.

Reduced Complexity

It is interesting to see that when Josh learned to play chess he took a reverse engineer approach to learning. Rather than start from the beginning with all the pieces on the board, he chose to start from the end. In this way he began with less pieces on the board and less for his brain to process. He then gradually added more and more pieces to the board as he worked backwards.

A similar approach can be applied to language learning. By utilising a word usage frequency approach we focus on the most frequent individual words that will get us speaking and interacting as soon as possible. When we do this we set ourselves up for instant feedback and we quite quickly move into a process of growth and confidence in the foreign language.


Being True to Yourself

Perhaps the most important take away from this book is to be true to yourself. It was by being true to himself that Josh was able to more clearly see his strengths and how he could leverage them. Instead of being content with spotting the patterns and modelling successful people, Josh took the time to operate from an expression of his true self. He seemed to do this by taking action, being a small fish in a big pond and embracing the growth mindset, also know as beginner mind.


Over to you...

I would strongly recommend this book for anyone who is looking to transition into a seemingly unrelated field. By reading this book you will gain some insights into what you already have going for you and how your different background will quite quickly turn into a huge advantage.

Are you thinking of learning an entirely new skill? Have you read the Art of Learning? What did you learn from it?

Front-end Frameworks: Solutions or Bloated Problems?

Modern front-end frameworks require you to download a development environment, complete with dependencies, and compile your code before even trying to view it on your browser. Is this a good thing? Is the problem that we are building more complex sites, or is it that the frameworks are complex in their own right, introducing an unnecessary level of complexity?Are front-end frameworks a quick solution or a bloated problem Web development today has evolved a lot since the ’90s; we are able to create entire experiences that are very near what any native application can do, and the development process has also changed. Gone are the days when being a front-end web developer was a matter of opening Notepad, typing a few lines of code, checking it on the browser, and uploading it to an FTP folder.

The Front-end Web Development of the Past

I must start by stating the obvious: The world isn’t like it was 10 years ago. (Shocking, I know.) The only thing that remains constant is change. Back in the day, we had very few browsers, but there were a lot of compatibility issues. Today, you don’t see things like “best viewed on Chrome 43.4.1” much, but back then, it was pretty common. We have more browsers now, but fewer compatibility issues. Why? Because of jQuery. jQuery satisfied the need to have a standard, common library that allowed you to write JavaScript code that manipulates the DOM without needing to worry about how it was going to run on each browser and on each version of each browser—a true nightmare in the 2000s.

Modern browsers can manipulate the DOM as a standard, so the need for such a library has diminished greatly in recent years. jQuery isn’t needed anymore, but we can still find a number of extremely useful plugins that depend on it. In other words, web frameworks may not be necessary, but they are still useful enough to be popular and widely used. This is a trait common to most of the popular web frameworks out there, from React, Angular, Vue, and Ember to style and formatting models like Bootstrap.

Why People Use Frameworks

In web development as in life, having a quick solution is always handy. Have you ever done a router before in JavaScript? Why go through the painful process of learning when you can npm-install a front-end framework to overcome the issue? Time is a luxury when the client wants things done yesterday or you inherit code from another developer designed for a particular framework, or if you are integrating with a team already using a given framework. Let’s face it—frameworks do exist for a reason. If there were no benefits to them, nobody would be using them.

So what are some of the benefits and unique properties of using a web development framework?

Time is money. When you are developing a project and the client doesn’t care which framework you use—indeed, probably isn’t even aware of what you use—they only care about getting results, and the faster the better. Established frameworks let you create an instant sense of progress from the beginning, which the client craves from day 1. Additionally, the faster you develop, the more money you make, since the time freed up by the framework can be redirected to taking on more projects.

It’s all about the community. When choosing a framework, this is a very important point—who is going to help you when you get stuck on an issue? You and I both know that it’s going to happen at some point. You’ll reach a spot where you need to do something that the framework wasn’t intended to do, or that the framework was never designed to give you access to, so having a community supporting you is essential. Development—especially freelance—can be hard, as you are immersed in a virtual world, and if you’re the sole front-end web developer in a team, it means you’re the only one with the experience and expertise to find a solution. But if the front-end framework you use has solid support, there is going to be someone on the other side of the world who has faced the same problem and might be able to help you.

Standards are beautiful. Have you ever noticed that, when you look into an old piece of your own code, you can navigate through it pretty easily? Or at least, more easily than a piece of code written by someone else? You think in a certain way, and you have your own way of naming things and organizing the code. That’s a standard. We all follow them, even if they’re only for ourselves. We tend to eat similar things for breakfast, wake up at a certain hour, and place our keys in the same place every day. And indeed, if we changed up our routines every day, life would be a lot harder just from the overhead of figuring out how to do stuff. Ever lost your keys because you put them in a different place than normal? Standards make life easier. When working as part of a team or a community of developers, they become absolutely indispensible.

Frameworks provide a standard from the moment you install them, guiding you to think and to code in a specific way. You don’t need to spend time creating a standard with your team; you can just follow how things are done in the framework. This makes it easier to work tgether. It’s easier to look for a function when you know that the function must be in a certain file because it is built for adding a route in an SPA, and in your framework, all routes are placed in a file with that name. People with different skill levels can work together if you have this level of standardization, because while the advanced coders know why things are done that way, even junior developers can follow the standard itself.

When Frameworks Fail

A few years ago, saying something like “I don’t use frameworks—I don’t see any real benefit from them” would bring people with torches and pitchforks to your door. But today, more and more people are asking themselves, “Why should I use a framework at all? Do I really need them? Is it that hard to code without them?”

I’m certainly one of them—I’ve never been a fan of any specific framework, and I’ve been coding without them for my entire career. If I have a choice in the matter, my choice is always, “No, thanks.” I’ve been developing in JavaScript for years and in ActionScript before that. I was coding in Flash when most people already considered it dead. (I know, I know… but I was doing lots of animations, and animation in plain HTML is hard.) So if you’re one of the many who never think about coding without frameworks, let me show you some reasons why you might be struggling.

“One size fits all” is a lie. Could you imagine writing a single piece of software that can do everything you’ve accomplished in your career? That’s one of the main problems with web development frameworks. Your project has very specific needs, which we tend to solve by adding libraries, plugins, or add-ons to extend the framework’s scope. No framework offers 100% of what you need, and no framework is 100% composed of things that you’re going to find useful.

Having too much code that you don’t use can result in load time lag for your site, which becomes more important with each additional user. Another issue is that the “one size fits all” mindset results in inefficient code. Take, for example, $(‘sku-product').html('SKU 909090');, which is jQuery code that, in the end, we all know is going to be translated into something like document.getElementById('sku-product').innerHTML = 'SKU 909090';.

That kind of difference on a single line might seem unimportant, but changing the content of a specific element of the page is precisely the virtue of React. Now, React goes through the process of creating a representation of the DOM and analyzing the differences in what you try to render. Wouldn’t it be easier to just target the content that you want to change from the beginning?

That tangle of weeds you’re walking through is growing thorns. Have you ever been in the situation where you’re using your framework and trying to add a library to it, just to realize that the library version you need doesn’t work well with the framework version that you’re using? Sometimes it takes more effort to make two pieces of code work together than it does to just write the code yourself. And since the frameworks and libraries that you use are often built on other frameworks and libraries that can have hidden incompatibilities that you can’t even anticipate, the problem can grow exponentially more complex, reaching a point where they’re impossible to manage if you want the project to keep growing.

Keeping up with the Joneses is a thing. Ever worked on a project in AngularJS only to find out that you need something that didn’t appear until Angular 4 was released? Did you even know that Angular 5 has been released? This is another huge issue; even if you’re sticking to a single front-end framework, when a new major release happens, things can change so much that the code you worked so hard to make won’t even run on the new version. This could result in anything from annoying little changes that need to be made on a lot of files to a complete rewrite of your code.

Keeping up with the latest builds of a framework is challenging, but on the same note, other frameworks suffer when updates stop completely and they can’t keep up with the rest of technology. In 2010, both AngularJS and Backbone were released for the first time. Today, Angular is on its fifth major version, and Backbone is completely out of the spotlight. Seven years seems like a long time. If you build websites, they’ve probably changed completely in aesthetic and function. If you’re building an app, betting on the wrong framework might put the company in a tough—and expensive—situation later, when things need to be rewritten.

When all you’ve got is a hammer, everything looks like a nail. If you’ve used web development frameworks frequently, this has probably happened to you, where a single codebase defines the shape of the code you use in the future, even if it’s only peripherally related. Let’s say you’re going to build a platform like YouTube and you want to use Framework X. There might be a point where, even if it sounds ridiculous in this day and age, you decide to use Flash for the videos because that’s what comes built in with the framework.

Frameworks have opinions, and they are strong; React, for example, forces you to use JSX in a specific way. You can see code being used in that way everywhere. Is there an alternative? Yes. But who uses it? This isn’t always a bad thing, but if you need to perform complex animations, you might only need a framework for animating and not the entirety of React. I’ve seen people do crazy things like add jQuery to a page just to append a node to an element, something that could be accomplished in vanilla JS with document.getElementById('id_of_node').appendChild(node);.

Eval Is Evil, but .innerHTML Is Machiavellian

I want to take the time to explore this point separately because I think this is one of the reasons more people don’t code without frameworks. When you see how most code works when trying to add something to the DOM, you’ll find a bunch of HTML injected by the .innerHTML property. We all seem to agree that eval is bad for running JavaScript code, but I want to put .innerHTML in the spotlight here. When you inject HTML code as a plain string, you lose any reference you might have had to any of the nodes you created. It’s true that you might get them back by using getElementsByClassName or assigning them an id, but this is less than practical. When trying to change the value of one of the nodes, you’ll find yourself rendering the entire HTML back again.

This is good when you start coding. You can make lots of simple things easily without much experience. The problem happens with the complexity of modern websites, which tend to be more like apps—this means that we need to constantly change the values of our nodes, which is a high-cost operation if you’re doing it by reattaching the entire structure via .innerHTML. React solves this problem efficiently via a shadow DOM, and Angular addresses it by using binding as an easy way to modify a value shown on a page. However, it can also be solved fairly easily by keeping track of the nodes you create and saving the ones that will be reused or updated in variables. There are also other reasons to stay away from .innerHTML in general.

The Biggest Myths about Coding Without Frameworks

Time is money. Yep, I’m bringing this concept back from earlier. Many people feel like if they stop using a popular web framework, we will instantly devolve to the internet of the 90s, when <marquee> was everyone’s favorite tag, rotating GIFs on a Geocities site were hip and edgy, Alta Vista was the go-to for web searches, and hit counters were ubiquitous.

With web frameworks, your first lines of code seem to make a lot of time-saving progress, but at some point, the gains turn to losses. You spend your time reading about how to make the framework do things it isn’t built for, how to integrate libraries and make them play nice with the framework, and finding out that the code you built while following the framework’s standards isn’t going to work at all and now you need to rewrite it. When you do things without a framework, you start slower, but you make steady progress. In the end, it’s all about where you want the easy part to be. It won’t make much difference in total time.

My code will be longer than the Great Wall. Writing without a framework is like buying a movie instead of subscribing to a streaming service. You don’t get instant access to hundreds of movies that you want to watch, but you also don’t have to spend money on thousands of other movies you’d never even consider downloading from the store. You can just write what you need.

Is the middleman useful? Sure. But it’s not usually necessary. Every line of code you write has more meaning, as there’s no need for you to adapt to the requirements of a framework. It can feel like you are writing more code with pure JavaScript because the way to create the DOM elements takes lines to create an element, attach it to the DOM, and perhaps add a class for styling, as opposed to calling up a single line of code in JSX. But if you compare code using a library like jQuery or React, vanilla JS can be pretty similar in length. Sometimes it’s longer, but sometimes it’s shorter, too.

There’s no need to reinvent the wheel. The mantra of computer science professors everywhere. And it’s true—it just doesn’t have to mean frameworks specifically. Sending an Ajax request to load or save data is a requirement in almost every web app, for example, but not having a framework doesn’t mean that you need to write the code anew every time. You can create your own library or codebase, or you can extract code from others. The smaller it is, the easier it is to modify or adjust as needed, so it comes in handy when you need something specific for a project. It’s easier to modify 100-200 lines of code than navigate through the mountain of files that a third-party library or framework might contain.

It will only work for small project. This is a very common myth, but not true at all; currently, I am working on an entire system to manage all aspects of a company online in a single place, including a module that is something like Google Drive. Whether with frameworks or without them, I go through very similar steps and encounter very similar problems. The difference is negligible. However, without frameworks, my entire code is smaller and more easily manageable.


Okay. Let’s stop talking about theory and jump to a real-world example. Some days ago, I needed to show a list of brands with logos for a store. The initial code used jQuery, but it had a problem where, when loading in Mozilla, it was showing a broken image icon for brands that didn’t have logos uploaded yet. We can’t have the store looking unfinished just because Company X hasn’t finished their end of the work yet, but the feature needed to go live.

The following code uses the jQuery equivalent of .innerHTML:

var list_brand_names = ['amazon', 'apple', 'nokia'];
var img_out = '';
for (i=0;i<list_brand_names.length;i++) {
   var brandName = list_brand_names[i].toLowerCase();
  img_out += "<a href='/pages/" + brandName + "'><img src='images/" + brandName + "' /></a>";

Without going too deep into the pros and cons of jQuery, the problem here is that we don’t have any reference to the images we created. While there are solutions that don’t involve changing code, let’s use this opportunity to see how it can be done without any library at all:

var brands = ['amazon', 'apple', 'nokia'];
var brand_images = document.getElementById("brand-images");
for (var iBrand = 0; iBrand < brands.length; iBrand++) {
  var link = document.createElement('a');
  link.setAttribute('href', '/pages/' + brands[iBrand]); = 'none';

  var image = new Image();
  image.src = "images/" + brands[iBrand] + "png";
  image.onload = function(){ = '';

The original jQuery code was six lines long, while the vanilla JS solution took twelve. To solve the problem, hiding each image until it’s been loaded, takes twice as long to code. So let’s look at the alternative. Can it be solved in jQuery too? Check it out:

img_out += "<a href='/pages/" + brandName + "' style="display:none"><img src='images/" + brandName + "' onload="showImage(this)"/></a>";
function showImage(image){ = "";

With a couple additional lines of code, there is now only a three-line difference between the jQuery and the vanilla, but on the jQuery, you can see that the img_out line is quickly growing very complex, to the point where you need to pause and think carefully about what you’re doing. Coding the DOM directly by using node functions to add attributes, functions, and the like might be more lengthy, but each line has a clearer, more precise meaning, making it easier to read and maintain in the future.

Let’s take a look at React:

function BrandLink(props) {
  var url = "images/" + props.brand + ".png";
  return (<a href="{props.brand}"><img src={url}/></a>);
class Brands extends React.Component {
  constructor() {
	this.state = {brands: ['amazon', 'apple', 'nokia']};
  render() {
	const links =, move) => {
  	return (<BrandLink brand={step} key={step}/>);
	return (<div className="brands">{links}</div>);
ReactDOM.render(<Brands />, document.getElementById("root"));

This version is clearly sub-optimal. The code is no shorter than it is in vanilla, and we still haven’t even gotten to the point of solving the problem and hiding the links until the image inside them has loaded.

For every example, the results are going to be different. Sometimes, jQuery will be shorter. Sometimes, React will win. There are times when vanilla JS can be shorter than both of them. In any case, the goal here wasn’t to prove that one was inherently superior to the other, but to demonstrate that there isn’t a significant difference between using vanilla JS and using a framework when it comes to code length.


As with just about any real-life issue, nothing is black or white. Coding without web development frameworks might be the best solution for some of your projects and a nightmare in others. Just as with every tool, the key is in learning not just how to use it, but when, and what the advantages and disadvantages to using it might be. Coding in pure JavaScript is just like with any framework—mastering it takes time before you feel comfortable using it.

But the key difference, at least for me, is that frameworks come and go, and even if a framework is popular for a long time, it can change dramatically from one version to another. Pure JavaScript will be an option for much longer, until it stops being relevant entirely and some other language emerges. Even then, there will be more concepts and strategies that you can migrate directly from one language to another than you can with a given framework to another. Time and effort being roughly equivalent where a single project is concerned, the reduction in knowledge depreciation and the lessons you can take with you to the next challenge are very important factors to consider.

This post was written by Juan Carlos Arias Ambriz, JavaScript Developer for Toptal.

The End of Traditional Employment—The Other Gig Economy

This article was co-written with Jon Younger, Founder of the Agile Talent Collaborative. One of the dominant trends in society over the past five years, and certainly in business, is the “gig economy”. Companies like Uber, Fiverr, Instacart, 99Designs, and TaskRabbit allow people from all over the world to provide on-demand services in a wide range of areas, from driving people to the grocery store to designing someone’s next book cover.

There is no debating the impact these platforms have had on the way we live and work. It took Uber only five years to disrupt a taxi industry that dates back to the 17th century, deploy over 1 million drivers in over 300 cities, and log its billionth ride. Numerous studies and articles highlight the growth of freelance, or “gig” work, from McKinsey, who estimates that up to 162 million people in the U.S. and EU-15 currently engage in independent work, to Forbes, who suggest that 50% of the U.S. workforce will be freelancers by 2020.

The companies driving the Gig Economy celebrate the benefits - flexibility, additional income, freedom, access to opportunity for workers, and ease of use for customers. Conversely, there has been a significant amount of coverage on the challenges presented by the Gig Economy, including lack of stability, downward wage pressure, limited opportunity, and a hollowing-out of the employment prospects for workers.

While there is certainly cause for debate with respect to the impact of lower-wage, commoditized Gig Economy offerings, are these things true for all independent work? Is a lack of stability in employment a result of the Gig Economy and the platforms driving this shift in work, or are the platforms responding to a general shift in the nature of employment, where employers can no longer guarantee lifetime employment, and employees can no longer expect it?

Lost in the discussion is a deeper understanding of the root causes of this shift, as well as a distinction in the types of independent work that people engage in. The situation of an A-list Hollywood actor is not the same as an Uber driver, and a student working 15 hours a week making Instacart deliveries is not the same as an independent consultant helping a Fortune 500 company take advantage of a new technology.

We suggest that there are actually two “gig economies” - the Gig Economy, where work is commoditized and the platform is the differentiator, and the Talent Economy, where the talent is the differentiator and the platform is an enabler.


In the Gig Economy, customers are provided with on-demand access to broadly available and undifferentiated services - the ease of access and low cost is the differentiator, not necessarily the individual who provides the service.

In the Talent Economy, the customer is actually buying the skill and expertise of the Talent - the platform is merely a “market maker” to paraphrase Arun Sundararajan and other pundits, that reduces the inefficiency of traditional employment and staffing markets, and enables the discovery of talent that is otherwise invisible to the customer.


One topic that is even more frequently discussed and written about than the Gig Economy, especially in business circles, is the talent gap. Several studies, including those by PwC and Capgemini (along with our own research), have identified the ability to find the right talent as a key business risk.

We recently surveyed over 1,000 business leaders and managers around the world and asked them to list the primary drivers for engaging non-employee talent to work with their internal teams. The top three reasons were flexibility, access to expertise, and speed - cost was a distant fourth. A survey by Deloitte in 2014 found that 51% of executives surveyed expected the use of contingent (agile) talent to increase in the next 3-5 years. Our own survey in 2017 saw that number jump to over 76%. There is no doubt that executive confidence in the durability of the talent economy side of gigging continues to grow across geographies and industries.

This makes evident sense. The pace of change in business and technology is unrelenting, and the range of talent needed by an organization - the specific skills, capacity, and experience - changes weekly, if not daily, while the competition for in-demand skills grows ever more intense. With a more efficient market for talent, companies are able to build teams with exactly the right talent they need, exactly when they need it. Talent, in turn, are more able to find the best opportunities for them and their career, based on what is most important to them at that time (flexibility, opportunity, income, ability to work remotely, etc.).

The pace of change in business is requiring teams to form with greater pace, as well as adjust more repeatedly, all of which is putting pressure on traditional hiring and talent acquisition mechanisms. The Gig Economy, through the commoditization of certain services, is making it easier and more cost-effective to obtain commoditized services more quickly, but it does not do an effective job at providing a platform for organizations to obtain highly-skilled, differentiated talent and services. For highly-skilled talent, the same “gig” concepts are being applied, but with very different impacts on workers, and for very different reasons.


In the Talent Economy, people with in-demand skills and capabilities can unlock opportunities from around the world, and organizations can quickly and easily build the teams they need to compete in a dynamic global economy. In our recent survey, we also asked the same group of business leaders to identify the important factors in engaging outside talent - the quality of the talent was the most important driver by far, almost twice as important as cost.

This suggests that in the Talent Economy, businesses are looking for the best people, not the cheapest. As a result, rather than be limited to a small number of opportunities that are right in front of them, talented individuals will be able to make themselves available to a much larger range of opportunities, both locally and globally. With more choice, they will be able to optimize against the considerations that are most important to them - flexibility, compensation, skill building, or the opportunity to work on a particularly interesting project.

But what about stability? As the Talent Economy takes hold, and the marketplace for talent becomes deeper and more efficient, it could actually bring more stability to talent, especially talent with more valuable skills. Rather than being reliant on a single company, or in the case of consultants, a single consulting firm, talent will have access to a much wider range of work, which in turn, drives stability.

Certainly, laws and regulations will need to change to support talented workers in this new model, and we will need to rethink many traditional support structures. But the ability to build teams of highly skilled workers when required, and the ability for talented workers to choose from a wide range of opportunities, is an emerging trend that could provide significant benefit to all involved, if done correctly.


Basic economic theory tells us that when something in a marketplace is not differentiated, it becomes commoditized, where cost is the primary decision-making factor. This will inevitably push down the price of that commodity in that particular marketplace. We could certainly debate whether an Uber driver or Instacart delivery person is providing a commoditized service to those platforms, but either way, the marketplace is treating those services as such, because they are driving the price of the labor powering those services downward.

But is that also the case with software engineers, data scientists, machine learning specialists, finance professionals, or cinematographers? Is there a difference between two software engineers, and the value they provide an organization? Our research and experience demonstrate that there is a difference, and when the value point in a market is highly differentiated and in-demand, prices rise, especially for the best.

As a result, the Talent Economy may be the end of traditional employment, but that won’t be a bad thing, for the talent that powers it, or for the organizations that benefit from engaging the best talent. While they are similar in some respects, there are distinct differences between the Gig Economy and the Talent Economy - and their impacts on individuals, businesses, and society. As we noted earlier, the Talent Economy offers organizations access to highly skilled talent (a crucial problem for employers), and differentiated work, high growth potential, and control for workers - all the employee benefits that appear non-existent in the commoditized work currently driving the Gig Economy.

With this offering, it will come as no surprise when more highly-skilled professionals turn to agile work. As such, this will have a profound impact on how organizations discover talent and build teams, and how skilled individuals find opportunities.

This post was written by Michael Kearns,VP of Enterprise Strategy for Toptal.

We Are All Weird by Seth Godin

We are all Weird: The Rise of Tribes and the End of Normal is written by Seth Godin. In this book he proclaims the end of mass media and mass marketing and the rise of uniqueness and tribes. 👷‍♀️👨‍🎨 The core idea of the book is that in the modern era pandering to the masses is no longer an effective use of time because the market has become far too saturated. We Are All Weird by Seth Godin

The solution put forward in this book is that we instead embrace our weirdness and build tribes. Doing so will lead to meaningful work and help serve our tribe more effectively because we actually give a damn.

The book itself is quite short at 97 pages but it is one of those books where there is so much wisdom to be obtained that I don't recommend reading this in one sitting.

A Pregnant Elephant 🐘

The book begins with the story of the pregnant elephant, the thought of which immediately grabbed my attention.  The story is about a Belgian Zoo that had begun to lose public attention only for it to be restored by a pregnant elephant and an ad agency harnessing this opportunity for an effective message to the masses. However, Seth proposes that this story is an outlier in the modern day of saturated mass messages.

Mass is dead. Here comes weird

Embrace the weird

The book argues that mass worked for a period in time after the Industrial Revolution. It was a period of mass capitalism and producing average products to cater to the socially pressured masses worked well. However, society has since progressed off the back of mass capitalism and we are no longer in this period. The internet has helped to democatrise knowledge and information. Weirdness is now a choice and finding a tribe where our weirdness is expected is now easier to do than it ever was.

The book identifies 4 forces that are driving the push towards Weird:

  1. Creation is Amplified - you need only write a few sentences and push a button and your message has the capability of reaching a multitude of people.
  2. Rich Allows us to Do What we Want and We Want to be Weird - standing out takes time, money and confidence, more of us than ever before have all 3 now.
  3. Marketing is Far more Efficient at Reaching the Weird - it is easier than ever before to reach a tribe of weird people and serve them with the things they obsess over.
  4. Tribes are Better Connected - because we can find and share with others of a similar nature, weird is perversely becoming normal. The Internet has helped to connect and amplify these tribes.

Antelopes Don't Have Hobbies  🎮

There was a time when catering to the masses led to immense wealth but eventually that wealth trickled down to the extent that more people became rich and money gave us choice. If people are poor then a take it or leave it strategy will work but when people are rich enough to make a choice then vanilla ice-cream is no longer enough for us.

Over time as we have gotten wealthier and more productive our weirdness has followed. Seth points out that there used to be a handful of caveman paintings scattered around the world now we have an abundance of art galleries to cater to many different interests.

Capitalism isn't all that Bad

Seth points out that Adam Smith may have embraced capitalism because it leads to productivity but that the market also encourages engagement and choice. As humans we improve our well-being by enabling choice, this choice leads to embracing our weirdness and weirdness compounds over time.

Connected Weirdness

Instead of living the life of a loner, embracing weird comes from a feeling of connectedness. It is easier to be weird when you don't feel you are alone. Small tribes and the internet have helped to facilitate this sense of connection.

Stuff is not The Point

In the era of tribes it is not the stuff that inherently matters. What people are seeking from tribes is a sense of connection and shared values.

There is no 'Us v.s. Them'

The book isn't a guidebook on how to niche. Neither is it a book about an 'us v.s them' philosophy. Rather the book is about looking at the present day reality for what is is. The bell curve is no longer as pronounced in the middle as it once was. The mass middle has gradually been flattening out and what has been emerging from this are bands of tribes.

Embrace Educational Diversity 🎓

The educational system is built around the premise that there is a 'normal middle'. Seth argues that this is not the case and that most stories of successful people are built from a sense of non conformity. Seth proposes that instead we work from the assumption that we are all weird and look for what the student is naturally interested in and good at.

Have you read We are All Weird: The Rise of Tribes and the End of Normal? If so I would love to hear what you thought of it and what golden nuggets you extracted from it.

How to Create a Blog That Boosts your Career

I am a firm believer in self investment and spending time up front in order to help minimize long term repeated mistakes. 👨‍💻 Recently I decided to take the  How to Create a Blog that Boosts your Career course by Jon Sonmez of Simple Programmer and in this post I will give you a break down of 3 key takeaways. Create a Blog that Boosts your Career

1. Specificity

It is better to be as specific and as niche as possible when it comes to creating a theme for your blog. The idea is to be a big fish in a small pond rather than a small fish in a big pond. 🐟 When it comes to topics like Python programming it is easy to get lost in an ocean of detail so therefore it is better to find your passion within the field and become the expert.

At the moment The Happy Mindset is still quite general with a focus on an understanding of state of Mind to help language learners in the self learning process. However, this is a lot more specific than it was only two years ago when it was called dideaboard and filled with random ideas. My personal process has been driven by an innate curiosity and as I move through the process I am becoming more specific in order to help solve tangible real world problems.

2. Post Ideas & Schedule

I have been down this road before. 'It has been 15 days since my last post... shit I need to post something, but what?' In this course I was set the task of coming up with 50 blog post titles. Initially I was thinking that this would take a lot longer and that I would spend most of my time drawing a blank. I gave myself about 30 minutes.

Life without a Schedule

I was surprised to discover that I was able to do this within the 30 minute time frame, yet another nod to Parkinson's Law. I soon realised that when I commited to this task a simple principle took over - I dropped the need for a perfect topic. Once I did this the filters gradually started to drop and title after title came to my mind. It is important to note that I didn't consider these amazing titles but I did discover that once I let go of the illusion of perfection then I had a lot more material to work with.

3. Consistency & Community

Consistency is key and my calendar is my friend. This year I have written the majority of my posts for The Happy Mindset. The two years previous were sporadic and I wrote when I felt in some way inspired to do so. It was only this year that I decided to commit to creating a blog and when I did this I made the commitment to write a post a week. What I hadn't done, until this course, was book a weekly block of time on the calendar.

My calendar is my friend

This is an easy thing to do when you set it on a repeating schedule, and it only takes a couple of minutes to do. Now that I have done this it seems like an automatic lifestyle decision has been made for me. It seems to have already freed up some mental space where I was conscious of the amount of days that had passed since my last post.

In this course I also learned about the value of community as it relates to blogging. Prior to this course I didn't feel I had the time to also keep up with what other bloggers were doing. After taking this course I realised that this rather than being a luxury this is an important element of a blogger's workload.

I spent some time thinking about what sector I am in, then I did some research and I picked two blogs that I will read and post comments to. I also find it useful to keep in mind that my sole intention is to add value to the community.

Moving Forward in 2018

This course is quite concise and is intended to be done over 5 to 6 weeks. I finished the course in about 6 weeks. I am glad that I decided to take the time to complete one lesson a week as I felt that this gave me time to internalise more of the information that I was reading. Moving forward I have structure in place to allow me to write weekly posts and contribute to other blogs in my industry throughout 2018. 🎊


Have you taken any courses recently that have helped you to become aware of something new?



Learning From Context

Learning without Context

Learning without context is kind of like watching someone else paint their own picture. Days upon days can be spent observing their movements and how they reach the end goal but I will be left with no idea as to how they do what they do. Their internalisation of the skillset remains hidden from view. The skill has long become automatic for them, to the extent that large chunks of the process are no longer in their conscious awareness.

Grammar Before the Fact

As a student of foreign languages I spent a lot of my formative years operating with the assumption that real world conversations began at the intersection of where I had mastered the grammatical rules. However, this assumption was flawed. What actually happened was I had an endless amount of information in my head that was getting in the way of the real world conversations I had longed to have with native speakers of my target language.

Learning from Context

Eventually I began to see that learning from context is a much more effective approach. When learning from context I am able to harness my innate curiosity and desire to learn. When interacting in Spanish I wanted my knowledge to deepen in order to convey my message more accurately and precisely. I wanted to become a better listener in order to hear the subtle nuances that can go unnoticed to the untrained ear.

I was able to do this from real world interactions and listening to real world material, I could turn to books when I noticed the inevitable gaps in my knowledge. With a context I stopped living in my imagined reality of a day when I would be able to speak and instead I began to take steps from where I was already standing.


Using The Brain as the Processor It Always Was

My Brain as a Storage Device

A lack of conscious thought on my part has lead me to living with the assumption that my brain is intended to be some form of storage device. In computer terms I would relate it to the HDD or SSD on a computer.

And who could blame me? My brain seems to be able to recall past events at will. My brain seems to allow me to relive experiences from the past on a visceral level. It is only natural that I would think of it as a storage device for my memories both happy and melancholic.

Nevertheless, this assumption is based on the premise that I am using my brain the way it was intended to be used. But what if my brain wasn't designed to be used as a storage device but as a processor?

My Brain as a Processor

It's almost astonishing how this 'little' assumption has created an entirely fresh conversation. If the brain were to function as a processor then maybe the memories that I am constantly reliving are sign of a bug and not a feature? The primary function of a processor is to process information in order to create something coherent and meaningful. A processor isn't functioning correctly when it fails to process the information it is fed from input to output.

So what if this bug is keeping me trapped in the past, locked into the future and overlooking the present moment entirely? If nothing else it's an interesting question to entertain.


Living in Sequence

I laugh at the donkey who died of thirst because he couldn't decide whether to eat the hay or drink the water first. Nevertheless, I am confronted with this donkey in my head every day. To create the space necessary for this simple blog post required overcoming the donkey. Living_in_Sequence

Every day I am tempted by the tools of procrastination. My brain has become addicted to the constant hits of dopamine that my smartphone notifications willing give it. Left to it's own devices my brain would believe that the never ending exposure to trivial and petty dramas actually mattered.

My brain cannot comprehend the depth to life in the same way that my heart intuitively can and I cannot listen to my heart when my mind is clouded in countless trivialities. It is a vicious circle, that is until I consciously begin to create a space for prioritisation to emerge. It is at this point that I can begin to once more live more in a sequential order.

Multitasking is by it's very nature shallow work. Try listening to two people at once and this becomes evident very quickly. So how can we get started living a sequential purpose driven life today?

3 Simple Steps for Sequential Living

  1. Record the top 3 things you want to get done today. It doesn't matter how small these items are. It could be as simple as meeting up with a good friend.
  2. Take 30 minutes out of the day to relax and chill out. Going through the day on 'thoughopilot' can lead to a narrow focus. Over the long term this narrow focus leads to a sense of 'same shit different day'. The hard truth of the matter is that it is never the day itself that is the issue.
  3. Create a long term vision. At the beginning may feel quite strange and a little 'grandiose' but you can think of it this way - You are creating the vision for your future self to grown into.

I would love to know how you are allowing the space to emerge to experience more of what really matters to you?


Find the best site to hire the right Python developer in under 60 seconds

Finding the perfect site to hire Python developers shouldn’t be as difficult as it is. If you have a minute, you should consider filling out Developers for Hire’s Python questionnaire. On average, it takes only sixty seconds to complete. Answer a few of their questions and you’ll receive personalized results based on your needs. It’s an extremely useful tool if you’re lost on how to begin your talent search.

If you’d rather sort through this list, however, you can rely on the companies compiled below. In short, the best places on the web will let you have it all: you’ll have access to quality developers, and can expect expediency and consistency. This list attempts to compile those exceptional sites for finding developers.

Here are the top 15 places to find a Python developer:

1. Toptal

Toptal is a matching service, initially created with only tech talent in mind. Although it has expanded its pool of talent to include designers and finance experts, the company’s bread and butter is its developer vertical. If you want to be sure that a Python developer is up to the job, hiring an exceptional developer from Toptal is likely your best option.

Why? Toptal boasts an elite developer base. Their trademark system for vetting talent allows for only the best to become a part of their community. According to Toptal, only 3% of applicants make it through their battery of technical tests and their comprehensive vetting process.

2. Hired

Hired helps employers find software engineers and developers. On Hired, you can use their pipeline to find custom matches. You can create a company profile, search for candidates using their search algorithm (which can eliminate gender and racial identifiers for fairer hiring), and request interviews with candidates.

What’s best about Hired? It’s great for finding specialized Python developers who are actively searching for new opportunities, have relevant experience (as most candidates on Hired have at least two years of experience), and are in your area.

3. We Work Remotely

We Work Remotely is a job board dedicated to remote listings. As a result of the remote-only restriction, there is a higher than average amount of tech and tech-creative hybrid job postings, which include front-end web developer and Python developer positions.

Posting a job listing may be a bit more expensive than other job boards listed at $299 a month. However, if you’re looking to fill a remote position and are uninterested in recruiting local employees or freelancers, you should strongly consider utilizing We Work Remotely.

4. GitHub Jobs

Don’t waste your time perusing large job boards like Monster and Indeed. You’ll have far better luck with job boards geared toward tech talent. GitHub has a massive front-end developer community as it’s one of the largest open-source online repositories for coders. For a relatively small fee, you can post a Python developer job listing and gain a great deal of exposure on GitHub’s huge developer community.


The official Python job board is one of the surest ways to find a qualified Python developer. While you won’t be personally matched by tech professionals as is the case with Toptal or Hired, it is one of the best communities focused solely on advertising Python job openings.

If you’re open to writing up a job description, querying interested candidates, and conducting a technical interview yourself, and would like to forgo a massive general job board like Indeed, Monster, and GitHub, you may want to strongly consider’s job board.

6. Authentic Jobs

Authentic Jobs is a job board for leading web, design, and creative talent. It has been steadily rising in popularity since its inception; the board is used by The New York Times in part of its acquisition process.

As Python development often involves both creative and technical aspects, Authentic Jobs is a great place to begin your search. Much of their job board is populated with listings of web developer and Python developer positions which are likely similar to your own needs.

Authentic Jobs allows for posting developer positions remote or local, so you won’t be limited to remote employees or freelancers.

7. Remote Python

Remote Python allows you to find remote Python developers by posting job ads that fit their guidelines. If you’re open to hiring remote Python developers and to performing the vetting and screening yourself, the Remote Python job board could help supplement your search.

In addition to posting job ads on the site, you’ll be able to search Python developers registered with the site. It’s important to take into account that these developers aren’t vetted, however. If you want developers selected based on stringent technical criteria, you should consider using a talent matching service.

8. Stack Overflow

Stack Overflow has an online community that rivals GitHub. Arguably, it’s the absolute largest and most trusted community of developers on the web. Stack Overflow is often used as a resource for all kinds of developers, novice to expert, seeking to learn more about coding. Their job board, like GitHub’s, allows for an incredible amount of exposure to dedicated Python developers around the world.

9. Upwork

If recruiting services and job boards aren’t your thing, you might want to consider a freelance marketplace like Upwork.

Upwork has one of the largest marketplaces with millions of registered freelancers. You can hire contractors for a few simple coding tasks or begin a long-term relationship with a series of complex Python projects. If you like the idea of finding, interviewing, and managing freelancers, Upwork’s colossal marketplace will likely meet your needs.

10. People Per Hour

People Per Hour is another freelance marketplace akin to Upwork. What makes People Per Hour unique is that it holds contests and allows Freelancers to post their own job postings called hourlies.

People Per Hour has millions of members, thousands of confirmed hours, and a plethora of success stories from freelancers and entrepreneurs alike. The ease of posting jobs, contacting freelancers, and paying for hours worked makes People Per Hour a superb choice for employers interested in searching for and vetting freelance candidates themselves.

Additionally, with People Per Hour, you can connect with local freelancers, so you aren’t necessarily limited to remote talent.

11. has a growing community of developers over 25,000 strong. Like Toptal, their service is designed to take the tedium out of hiring. vets their talent and ensures that their freelancers are committed to each and every project. prides itself on its humanism. Every employer is connected with a VP, instead of a sales representative, and freelancers are provided with the resources to succeed.

What’s most alluring about the network? manages and replaces talent – with no risk to you – and back every single hour worked with a 100% money-back guarantee.

12. Guru

Guru has a large global network of freelancers—albeit smaller than Upwork’s and People Per Hour’s massive pool. You can explore the profiles of 1.5 million gurus, propose projects, and pay your hired talent with their secure SafePay system.

Guru isn’t focused on developers, let alone Angular developers, as it is a freelance network comprised of every sort of professional. So, like with Upwork and People Per Hour, you’ll have to narrow your search yourself. Also, as with many freelance networks, the vetting and interviewing will be up to you.

13. Freelancer

Freelancer is an absolutely massive marketplace with 25 million registered users, 12 million total posted jobs, and thousands of completed projects. With the size of the marketplace comes a unique challenge, however. Finding the perfect Python developer is like finding a needle in a haystack.

Although website development is one of the most popular job categories on Freelancer, you still will have to search through thousands of Freelancer profiles, vet and interview candidates yourself, and manage payments yourself.

If you’re looking for an affordable option, however, Freelancer is a wonderful hiring solution. For more long-term commitments, you’ll want to consider matching services like Toptal or

14. Find Bacon

Find Bacon is a job board aimed at eliminating the hassle of searching for design and development jobs. Find Bacon is a pleasantalternative to massive job boards like Indeed and Monster and is highly affordable. Posting a job posting for a 30-day period is only $99 dollars.

They also offer subscription packs which allow for 10 job posts a month. If you’re a company looking to fill multiple positions or are planning on hiring freelancers on an ongoing basis, you may want to consider investing in a subscription pack for a niche job boardlike Find Bacon.

15. X-Team

X-Team matches you with qualified Python developers who receive mentorship and educational resources just for being a part of X-Team. Like Toptal and, they do the heavy lifting of hiring. You won’t be saddled with rifling through resumes or preparing personalized interview scripts.

The major downside of using X-Team is that, as their name suggests, they are adept at organizing teams. If you’re only looking to hire an individual Python developer, you’ll want to use a different matching service.

Honorable Mention: SimplyHired

SimplyHired is a large job board. It’s similar to big, general job boards like Indeed or Monster. The site comes with loads of resources from salary recommendations to hiring guides, and offers low prices for job listings. Like with Indeed and Monster, you’ll get a great deal of exposure. With over a billion job applications delivered, SimplyHired is a highly-respected job board worth investigating.

Begin exploring salary estimators, post within a network of over a hundred job boards in record time, and browse through the collated jobs by cities to see if posting a job listing on SimplyHired is worth the time and money for you.

Choosing the right site

Finding the best sites to find developers is no easy endeavor. Unless you’re a battle-worn recruiter, you likely won’t know how to navigate the complexities of hiring a Python developer. That’s completely okay—there’s plenty of sites and services to help you along the way.

Matching services like Toptal, and to a lesser extent, Hired and, are great solutions for employers searching for tech talent, and for those who are looking to place their trust in experienced tech professionals. For those short on time with high-quality developers as a priority, Toptal and Hired are superb choices.

On the other end of the spectrum, there are freelance marketplaces like Upwork, People Per Hour, and Freelancer that allow you to cast a much wider net for Python developers.

Employers looking for full-time developers may also benefit from utilizing Stack Overflow and GitHub’s job boards, which can provide wonderful exposure to the Python developer community.

Freelance marketplaces like Upwork, Freelancer, and Guru allow you to instantly connect with developers, but you’ll have to care for the hiring details yourself. If you have ample time to devote to screening candidates and are confident in your ability to interview Python developers, they are a great choice. Otherwise, you should steer clear from marketplaces and job boards alike.

Job boards, marketplaces, and matching services all have their uses. Which site will best serve you will depend on your specific situation.

Ultimately, which sites you employ depends on a multitude of factors, such as:

  • How quickly you need to hire a Python developer (i.e. your timeline)
  • How much experience you have hiring Python developers
  • Whether or not you’re equipped to test technical skills
  • How many developers you need to bring on
  • What level of experience those Python developers need
  • Whether or not you’re open to remote workers
  • What your budget constraints are
  • How important quality is to your project(s)


Bin The Script - Create a Dialogue

There was a time when I looked at  learning as a monologue -- either someone spoke at me or I learned myself. In hindsight it was the latter that most often prevailed, even though I was completely oblivious to it for a large portion of my life. Nevertheless I am willing to take responsibility and admit that it didn’t need to be like this. There was always the opportunity for a dialogue. I managed to find that dialogue when I let my natural curiosity direct me on the path to passionate teachers.




3 Benefits of Healthy Dialogue


1. The Power of Osmosis

Osmosis is powerful and interactions with a passionate teacher can do wonders for a student's progress. A teacher who knows the in’s and out’s of a subject can really help accelerate the process. Sharing the space with a passionate teacher will often lead to their enthusiasm and insights rubbing off on you as a student. The 80/20 law is present in all topics and a passionate teacher will have naturally began to look at the subject matter through this unconscious lens.

2. Reflection

A dialogue is a safe space where new ideas are free to emerge. In a dialogue both parties are open to learning. A good teacher is looking to become a better one and vice versa for the student. It is the teacher’s role to lead and it is the student’s role to follow along with their own curiosity of mind. This dynamic allows the space to emerge for reflection and this is where understanding comes to light.

3. Collaboration

You can drag a horse to water but you can't make him drink. As a teacher it is useful to know that the learning and understanding will inevitably come from the student. The best I can do as a teacher is to listen to my student as best I can so that I can explain the topic in a way that meets their underlying logic. As a student it helps when I feel that I have the respect of a teacher. This feeling of mutual respect will often create a desire in me to work that little bit harder.

I would love to know if you have ever had an open dialogue relationship with a teacher?