Lucking out on life

Luck Out: (colloquial, idiomatic, US, Canada) To experience great luck; to be extremely fortunate or lucky.

https://en.wiktionary.org/wiki/luck_out

My life has been series of lucky breaks, a collection of events where I've 'failed upwards', and while my career isn't wildly successful, I'm smart enough to know and humble enough to realize the comforts I have are a distant hope for billions(!) of others on the planet.

[Read more]

The very Last time

I've been experimenting with meditation over the last few months, and I think it's great. Next to having a disciplined 8 hours of sleep everyday, I think meditation is the best thing you can do for your personal mental health.

I first started by reading headspace, and trying out his 10-minute meditation technique, but now I'm on the WakingUp app, which again starts a pretty reasonable 10 minutes per day. I'm by no means a guru, but just like exercise, 10 minutes a day beat 0 minutes a day -- by a lot!

[Read more]

Time vs. YouTube

I asked Emily, my 7 year old daughter, why she loved YouTube so much. Specifically, why she loved **watching** others play Roblox over actually **playing** Roblox herself?

It's a strange, but common thing among children her age, as my nephews and nieces do the same for other games.

No surprises then, that Google announced record profits yesterday, with YouTube alone bringing in more than $5 billion in advertising for the first time, gaining 32% over the same period last year.

[Read more]

Spreadsheets

Spreadsheets are the bedrock of the modern enterprise, they're ubiquitous, from small family business' to large multi-nationals, and you'd be surprised by the number of critical activities that run off them.

Pound-for-pound, Microsoft excel is the most valuable piece of software on the planet.

But are really that good?

The answer depends on what you mean by 'good'?

[Read more]

Stopping my Addiction

Hi, I'm Keith, and I'm a social media addict.

I know, because I've seen this before.

When I was around 8 years old, my father was a smoker, and I'd regularly see him leave family meals early to have a quick smoke, leaving us to finish our lunch or dinner without him. It was just something smokers did.

Today, I'm not physically leaving the table like my father, but my mind is just as disconnected, as my attention moves from eating to being fixated on my iPhone.

At least my father would finish his meal before he did his smoking routine, I typically pick up my phone mid-way through, and stay on it right to the end of dinner. Sometimes gobbling down unknown quantities of food while my eyes remained glued to some insufferable post on social media.

I could be talking to my wife, or asking my daughter how her day at school was. Instead I'm mindlessly scrolling the feeds and timelines hoping for something to catch my attention, while the two most important people in my life, remain neglected -- while they're right in front of me!

Clearly something was wrong.

I noticed this on airplanes too, at the end of a long flight, Smokers would make a bee-line for the smoking area to satisfy their craving. But phone-addicts immediately light up the cabin with the glow of their screens, the moment the pilot announces "you may now switch on your electronic devices".

At least smokers were denied their addiction for the entire duration of their flight, usually hours -- phone addicts (like me) had only to endure the 20 minutes of landing.

I saw this in myself a few months ago, late one night, I had binged on all my social media, YouTube, Reddit, Twitter, Facebook, and after completely exhausting all possible posts on all platforms, I'd cycle through them again, and again and again!

I should have been sleeping, it was late -- very late! I knew I should be dozing off, but instead my phone was firmly in my hand, with my finger scrolling through every last nook and cranny.

I was craving something (what exactly I didn't know). I knew there was nothing interesting left (I'd checked, multiple times!) -- but I was still scrolling, and scrolling...hoping for something interesting to magically pop into the feed. This activity gave me no joy, but I was doing it anyway.

I was addicted -- social media was my slot machine -- and though I was losing, I couldn't help but want to play more.

All hallmarks of addiction.

[Read more]

The Myth of the anti-social developer

What is the myth

There's a belief that people in IT, specifically software developers are generally anti-social, introverted, desk-loving curmudgeons who act like Sheldon from the Big Bang Theory.

What's more frustrating, is that this belief is prevalent even among those working in technology -- that somehow great coders are silent geniuses who shun people, while coding in a dark office corner wearing over-sized headphones playing death metal music. This is not just a myth, it's the anti-truth of what actually happens. The best developers (just like any other profession) are always people focused.

[Read more]

The Drudgery of Servers

As much as I love Serverless architectures, I find myself 'locked-in' to a server-ed WordPress blog. It's a mixture of too much legacy content to migrate, lack of easy migration tools, and just the fact that WordPress for all it's faults --- just works!

So rather than spend countless hours trying to migrate content, I decided to keep paying the $5/mo to DigitalOcean so that they can continue hosting a VM which PHP on it for my blog.

[Read more]

Keith’s Adventures in DynamoDB Land

After reading the awesome DynamoDBBook from Alex DeBrie, I was prompted to fix a long running design issue with Klayers (a separate project I maintain).

Like everybody else that dives into DynamoDB headfirst, I made the mistake of using multiple tables, one for each data entity. After all, a single database consists of multiple tables -- so DynamoDB would logically involve multiple DynamoDB tables as well right?

Wrong!

It turns out, a DynamoDB table is equivalent to a database, and having multiple tables is like having multiple databases, The 'correct' approach, is to load all data into a single DynamoDB table which would allow us to "join" multiple data entities into a single query.

The word "join" is in quotations, as there is no concept of joining data in DynamoDB, all data has to be pre-joined in some way to achieve the performance that DynamoDB promises (sub 10ms response times for tables of any size). If you split your data across multiple tables, you lose the ability to pre-join this data.

So last month I decided to bite the bullet and began re-designing my application to use one table instead of two, and boy did it do my head-in, and wanted to write this post to capture my thoughts on the whole process.

First here's some background of the application.

[Read more]