The Obstacles Is The Way

"The impediment to action advances action, and what stands in the way becomes the way"

Fabulous personal development book on how to tackle obstacles/ adversity to your advantage. Embrace them instead of getting worked up or anxious. There is a hidden meaning and opportunity in each obstacle we face. 

A few Kindle highlights of the book:

“And from what we know, he truly saw each and every one of these obstacles as an opportunity to practice some virtue: patience, courage, humility, resourcefulness, reason, justice, and creativity.”

Andy Grove, former CEO of Intel, outlined when he described what happens to businesses in tumultuous times:

“Bad companies are destroyed by crisis. Good companies survive them. Great companies are improved by them.”

It says: Okay, you’ve got to do something very difficult. Don’t focus on that. Instead break it down into pieces. Simply do what you need to do right now. And do it well. And then move on to...


Fast Software

Read this piece today - Fast Software, the Best Software.

Software that’s speedy usually means it’s focused. Like a good tool, it often means that it’s simple, but that’s not necessarily true. Speed in software is probably the most valuable, least valued asset. To me, speedy software is the difference between an application smoothly integrating into your life, and one called upon with great reluctance.

Speed and reliability are often intuited hand-in-hand. Speed can be a good proxy for general engineering quality. If an application slows down on simple tasks, then it can mean the engineers aren’t obsessive detail sticklers. Not always, but it can mean disastrous other issues lurk. I want all my craftspeople to stickle.

I love software that does this: Software that unbloats over time. This should be the goal of all software. The longer it’s around, the more elegant it should become. Smooth over like a river stone.

But why is slow bad? Fast software is not always good software, but slow software is rarely able to rise to greatness. Fast software gives the user a chance to “meld” with its toolset. That is, not break flow.

It feels — intuitively — that software (beyond core functionality) should aim for speed. Speed as a proxy for efficiency. If a piece of software is becoming taurine-esque, unwieldy, then perhaps it shouldn’t be a single piece of software. Ultimately, to be fast is to be light. And to be light is to lessen the burden on someone or some task. This is the ultimate goal: For our pocket supercomputers to lessen burdens, not increase them. For our mega-powered laptops to enable a kind of fluency — not battle, or struggle — of creation.

Such a brilliant essay. Agree 100%. Fast software makes the user feel good about themselves.

The Great Hack

A rainy, wet weekend is the best for a movie in the afternoon. Netflix had nudged me via email (clever!) that The Great Hack has been released so I decided to watch it. I did follow a bit of the Cambridge Analytica scandal when it broke so I knew what the move was about but did not know the finer details which the movie portrayed so well - the whistleblowers, secret meetings and bringing this entire saga together in 1.5 hrs.

What was mind-boggling was the mining of user data, analysing emotions through the data and then targeted messaging on Facebook to change the person's views on certain subjects i.e. altering human behaviour! This is plain wrong.

We all have come to terms that "Data is the new oil". Companies have a responsibility to protect and safeguard personal data and let people know what, when and how their data is being used. I guess this is the reason why the GDPR was created.

Watch this documentary if you haven't already. It will open your eyes to what is happening behind the scenes on how much do the social networks know about us - more than what we know about ourselves!

Simon Grimm of Devdactic

Today, we interview Simon, a developer, educator and consultant at Devdactic. He is the creator of the Ionic Academy - I have gone through some of his tutorials while learning the Ionic framework and they are just excellent!

Simon Grimm

Simon Grimm

Location: Münster, Germany.
Favorite gadget: Apple AirPods.
Start your day with: At 5am with the 5 Minute Journal, my Winners Bible and 10 minute meditation with the Headspace App.
Favorite time-saving trick: Stop and recognise that you procrastinate (e.g. watch YT), make a short pause and then focus 100% on work again.
Daily reading: I just put articles I want to read into the Pocket app and then forget about them. Only reading books before sleep right now!

Simon’s workspace

Simon’s workspace

Describe an average day at Devdactic? What does your morning routine look like?

I try to get up early for my morning routine, then I put in like 1.5 hrs of deep work while my wife and baby are still asleep. Then we have breakfast together and I get the morning to work on whatever tasks I have planned. We take lunch together, I get back into my tasks and end the day around 4pm. I have a “shutdown work” task to wrap up my day and I mentally sign off from my tasks (mostly) once I finish that task!

Because I work from home and am my own boss, I try to still have a regular workday so I can still have this great employee feeling on Friday when the work week is over. Weekends are mostly for my family and sometimes side projects if I find the time.

How do you juggle between being a founder (and creating courses) as well as being a developer?

I try to theme my week. Mon+Tue are my high energy days, I either create new courses, videos, content and feel like I already achieved something important early during the week. Wednesday is then for client work, and Thursday for my own projects and growth of the Ionic Academy that I ran.

For Friday I got all the administrative tasks and things like answering all YouTube comments and recording welcome videos for my new members. This also gives me some buffer at the end of the week if I still need to finish something else.

Finally, I try to balance being a teacher and being a developer as good as possible. I still experience real life problems in client projects that I can then use for my content creation work to show how things can be solved! This gives me a nice balance and I can stay relevant

How did you get into programming? Do you focus on a few languages or try to learn new things going along? Any tips for newbie programmers?

I started early (like with 13) with C++ because my big brother was into it and I wanted to learn these things as well. I basically followed everything he did so I also learned HTML and PHP back then. In school and university we learned Java but I never really liked it.

The change came when I learned ObjectiveC to build an iPhone app during my university time. From that time on I was sold to mobile!

This got me my first job, but I quickly also picked up the pretty new Ionic Framework and Angular back then, and I finally sticked with that until today.

I don't branch out into other languages at the moment because it’s really hard to have skills in all the frameworks like Vue, React and Angular at the same time.

However, when you get the basic idea of programming you can quickly pick up new languages. I can get into Python real quickly or understand what some Swift or Ruby code is doing. Once you are at a specific level, things really start to get easier!

My tip for newbies: Don’t fear to get deeper into problems. Look at the root of a problem, dive into Git repositories and see why something is failing. There is always a reason why, and you can find it out. It will teach you a lot and is a boost for your confidence and mentality.

What is your dev setup look like? What apps/tools do you use to help you aid in your development work?

I have an iMac in my home office and another MBP for downstairs/outside. I use Visual Studio Code for coding and besides that a bunch of apps like:

- SourceTree for my Git repository management
- Todoist for managing tasks
- Slack for communications
- Postman for API testing
- Bear (instead of Evernote) for taking all notes

What does your wind down routine look like?

I finish my shutdown task to know that I have wrapped up all open ends for the day. I get downstairs to my family, we grab a coffe together or go for a walk with the baby and then my mind get’s into a different mood quickly!

A big thanks to Simon for taking the time out to answer these questions! If you are a developer and love to be featured here please get in touch with me.

Company of One

I have been an entrepreneur for the last 14 years. There have been times when I have been torn between growing my company to the VC-backed levels or to remain small but highly profitable. I know I would mostly lean to the latter (I value my independence and freedom a lot) but the “growth at any cost mindset” seems like the evil twin that keep surfacing in books, lessons and talks. When I meet people at social gatherings, the common question asked is not how much profit you have made by how many people work under you and how fast you are growing!

I came across the Company of One book on one of the blogs and immediately decided to read it. It 100% resonated with me. I love building software and earning while I sleep (passive recurring income). I love my free time to pick up a sport, travel or just to have a balanced life. I don’t want to be locked into a 9-5, clock-in clock-out culture. Autonomy and independence to work from anywhere, anytime is paramount. A lean company that is small and profitable is something that is just the perfect fit.

This book is an encouragement to all the other entrepreneurs who want to remain small yet profitable — we can choose to design our work around our life!

Company of One by Paul Jarvis

Company of One by Paul Jarvis

Maxim Ananov of HazeOver

Today, we interview Maxim, an independent software developer. I have been using HazeOver since the last 4 years and it is one of the small mac utilities that I just HAVE TO install on a new machine.

Maxim Ananov

Maxim Ananov

Location: Pskov, Russia.
Favorite gadget: The new iPad Pro.
Start your day with: I start my day around noon with a hearty brunch.
Favorite time-saving trick: I use sheets of paper to outline tasks for the day and the nearest future. I find it satisfying to cross them out one by one and then crumble and throw out the sheet when it's complete.
Daily reading: I have a couple dozen of RSS subscriptions that I skim though regularly. Mostly tech, design and Mac related websites.

Maxim’s setup

Maxim’s setup

Describe an average day at your company? What does your morning routine look like?
I'm an individual developer and without a boss and hard deadlines so my routine is quite sloppy. I work at home and there's no regular schedule. Some days I do nothing but ruminate and plan things to do or look for ideas. Some days I code 12-16 hours in a row when I get in the flow. The hardest part is to make myself get started. Then I lose track of time and can't get myself to stop working. It's not something that I'd recommend as a way to make things done, but it works for me.

How did you get into programming? Do you focus on a few languages or try to learn new things going along? Any tips for newbie programmers?
I got interested in programming when I was a kid in the 90s. My cousin showed me some simple programming stuff on ZX Spectrum. For my projects I tend to do everything myself. So I had to teach myself different skills along the way to realize my ideas – programming, scripting, web development, copywriting and design. I'm in no way an expert in those fields, but I learn just enough to solve related problems. For example for an app I design and code it, draw an icon, create a website and write content for it.

My number one tip for a newbie programmer would be to keep learning stuff even if it's not directly related to programming or a single language. Don't lock yourself into a knowledge bubble. You'd be more effective at understanding how your work relates to other fields. If you work in a team, you'd integrate better and it gives you new ideas and perspective. Also some skills transfer really well to new knowledge domains.

What is your dev setup look like? What apps/tools do you use to help you aid in your development work?
I work on a 15" MacBook Pro. That's the only prerequisite. For better or worse it gives me flexibility to work anywhere. Sometimes I work at the table, then I move on to a sofa with the laptop on my belly. And when I travel I can get work done on the go or in a park. Some parts of my apps were written on a long haul bus trips or a flights.

What does your wind down routine look like?
To wind down I play some video games.

A big thanks to Maxim for taking the time out to answer these questions! If you are a developer and love to be featured here please get in touch with me.

System + Processes

Companies and teams can work like a well-oiled machine. It does not have to be chaotic at work. A lot of misery can be put to rest if people at companies documented processes and systems in place. When I consult with companies, this is one of the first things I look for. How prepared is this company to scale?

People create processes (the way they work) but never document them.

Is it because they are afraid that their job will be dispensible now that they have given an exact blueprint of how they work and what needs to be done? Are they lazy to get this done because “why bother, the works getting done” mentality? This to me is a “hoarders” mindset - people who want to protect their jobs at any cost. These people stick to the same routine and seldom grow. They love the comfort of repetative tasks that have a predictable outcome.

Instead, companies need people who learn, teach others let go and grow. You don’t need to move between jobs at a company but by creating processes (documenting, letting go or improving the way you work) you can get your current work done more efficiently and can focus on higher-value core work. For example, a manager who is spending most of his week fire-fighting with clients and co-ordinate with vendors can set up systems so that others in his team (or a new employee in the future) can help him do some of the busy work while he uses his  energy on more important work!

Here are a few examples of processes that you can think of creating to speed up work and save time:

  • Document outlining what to do when your website/servers go offline so you are not scrambling when shit hits the roof!

  • A document for the next feature in your software project so programmers have all the specs needed (gathers from all the stakeholders at once) to get the project done well before the deadline. 

  • A writer’s manual outlining common mistakes and the overall tone for the company/brand so that as you scale and hire more writers the tone and message of the content will remain in-sync.

Systems and processes are cogs in a company. It just depends on how well-oiled they are!

Matthias Gansrigler of Eternal Storms Software

Today, we interview Matthias (an independent Mac/ iOS software developer) from Eternal Storms Software - makers of Yoink, ScreenFloat, Transloader, Glimpses etc. I use Yoink daily and love how small apps can improve the way one works!

Matthias Gansrigler

Matthias Gansrigler

Location: Austria, Europe
Favorite gadget: I recently acquired an Apple Watch, and I love it. I also adore my AirPods :)
Start your day with: Getting on my stationary bike. And coffee.
Favorite time-saving trick: I usually get eMails out of the way while I drink my coffee, and then only skim over new ones and attend to those needing attention right away. Others I’ll get to in the evening. This helps in staying focused on my programming work without too many distractions. Not launching Twitter during most of the day also helps ;)
Daily reading: I’m currently into Agatha Christie’s Poirot novels. I also recently read “Your Code as a Crime Scene” by Adam Tornhill - it was eye-opening.

Matthias Gansrigler’s Workplace

Matthias Gansrigler’s Workplace

Describe an average day at Eternal Storms Software? What does your morning routine look like?
I get up at 6 AM (give or take - I do like to snooze from time to time :P) and get on my stationary bike for half an hour. Then I take a shower, get some coffee and check my mails. Afterwards, I quickly plan a rough schedule of what I have to do that day (which app I should work on) and start working. At around 2 PM, my girlfriend and I will have lunch for about half an hour, maybe 45 minutes, and then it’s back to work until the evening, at around 8 PM. Depending on my workload, sometimes I’ll get back to work at 10 PM until 1-2 AM (this is where the snoozing comes from in the morning - coming full circle in a day in the life of Eternal Storms Software :D

How do you juggle between being a founder (and running things) as well as being a developer?
It can be difficult at times. What I love doing is work on my apps - it’s what I wish I could do all day long, without interruptions. Having to do support, PR, bookkeeping and all the other stuff that comes with running a business is necessary, and I enjoy doing it, but sometimes I wish I could hire somebody to take that off my hands.

How did you get into programming? Do you focus on a few languages or try to learn new things going along? Any tips for newbie programmers?
I’m not sure how I got into programming. I got started with HyperCard on a Macintosh Classic. Nothing serious, obviously, as I was maybe 6 or 7 years old at the time. When my dad bought a Macintosh Performa 5320 CD a few years later, I moved on to realBASIC and wanted to write a soccer manager game (I never got far :D). After that, I moved on to Xcode and Objective-C and took over an iTunes helper app (sadly, I forgot from whom and what the app was called before I took it over), and soon thereafter released GimmeSomeTune, my first real public app, that would display the currently playing song in iTunes and automatically download artwork for albums and lyrics for songs.

As for learning - I try to learn things going along, as they pop up, “as needed”, if you will. I’d love to learn more about Swift, for example, but with about 5 apps (all still Objective-C only), I currently don’t have the time to learn the language or even switch to it. But I’d love to do it some time.

I only have two tips for newbie programmers:
1. Do not give up! It can be frustrating some times (and even when you’re no longer a newbie programmer, you’ll get frustrated) - but keep at it, you’ll get better and better.
2. Start learning with a real project (it doesn’t matter if it’s “only” an app you use yourself) - I found that learning by “isolated” tutorials didn’t work for me. But - in my example - with having GimmeSomeTune to work on, I had a goal, something I wanted to achieve and work towards. It’ll do wonders.

What is your dev setup look like? What apps/tools do you use to help you aid in your development work?
I work on a 27’’ iMac and a 15’’ MacBook Pro.
I use Xcode to develop my apps, and CodeRunner for PHP stuff for personal projects.
For blogging, I use MarsEdit.
For communicating with clients, I use Slack, Skype and Trello.
I plan and schedule appointments using Calendar and Reminders.
A not necessarily developer-related tool I can only recommend is BetterTouchTool.

What does your wind down routine look like?
I usually check emails one more time, and then either relax on the couch reading, watching some TV show, or, more often, playing something on the Nintendo Switch with my girlfriend ;)

A big thanks to Matthias for taking the time out to answer these questions! If you are a developer and love to be featured here please get in touch with me.