Showing posts with label Creativity. Show all posts
Showing posts with label Creativity. Show all posts

Sunday, 18 May 2025

Vibe coding with Firebase Studio - classic Battleship game built in less than 2 hours!

So I had to test drive the new Firebase Studio that's powered by the latest Gemini 2.5 model, that has got the whole world talking, and leading the webdev llm arena.

For my test, I simply prompted it to build a game like the classic battleship, where the player plays against the computer. The game didn't work on first try, what industry refers to as "one-shot" builds - but it had a lot of potential, so I guided the assistant through addressing bugs, improving user experience of the game layout, and also tweaking the AI rules. Gemini was smart enough to use GenAI itself as the computer opponent - which I think was pretty neat. Historically, before AI, we would have needed to code the computer's moves, strategy and keep track of moves, etc. Instead, we initiate an AI agent, task it to play as the opponent in the game, and provide just enough context and guidelines for moves (like don't place a move on a previous move).

Source code on github here.

Check out the gameplay below.



Saturday, 17 May 2025

How I used AI coding assistants (Gemini) to build an MVP for a Software Management Tool

A walkthrough of an app I decided to build to help me with my work as a software engineering leader. Core thesis: I wanted a planning management tool that is centered around core system architecture, working backwards from there to model the organizational / team structures that feeds the planning process. I found most project management tools lacking support of including software architecture inputs - so I decided to build something to close this gap.

My journey started in late 2024 (October), when LLM models started exposing coding capabilities. I wasn't too impressed by the likes of ChatGPT and Claude (at the time). But with Gemini 2.5 entering the scene, I picked this project up again in April 2025 - and slowly built out the MVP, first as a single page application (html/javascript) with basic old skool UI (this video), then refreshed the UI, refactored the code (next video "Building apps with AI (2) - MVP...". Since I stopped coding professionally in 2010, this entire journey was quite the learning experience. I'm going back to school again, but I've learnt so much about how to engage with the LLM, that I'm increasingly confident I will find a place in the new world of AI. AI-assisted coding is definitely the future, but it is not that straightforward yet, even with the latest craze in vibe coding.

Just take a look at my document sharing my conversation with Gemini here.

50 pages and counting!!! Essentially you need to be very clear with articulating the requirements and interacting with the model as a true assistant, like you would with any human engineer, business analyst, or UX designer.


Source code on Github here

You can play with the app here

Listen to the podcast generated by NotebookLM here
You can interact with my Google NotebookLM here




The rest of this blog post was written by partner, Gemini >>>>

From Vision to MVP: Building a Software Management & Planning Powerhouse (with an AI Co-Pilot!)

For any software engineering leader, manager, or even a senior individual contributor, the landscape of modern software development is a complex beast. We juggle intricate system architectures, dynamic team structures, ever-shifting priorities, and the constant challenge of aligning finite resources with ambitious goals. What if there was a tool that not only helped model this complexity but also empowered smarter, data-driven planning?

That's the question that sparked the creation of the Software Management & Planning Tool, an MVP we've been passionately building. This isn't just about another planning application; it's about a foundational belief: effective planning starts by working backwards from your systems and organizational architecture.

This blog post shares the journey of bringing this vision to life – from a core idea to a feature-rich Minimum Viable Product – and the unique experience of co-developing it with a generative AI coding partner, Gemini.

The Core Idea: Architecture-First Planning

The tool is built upon a hierarchical understanding of a software organization:

  • Systems: The overarching products or platforms.
  • Services & APIs: The functional components within those systems, each with defined interfaces.
  • Teams (2-Pizza Teams): Agile squads owning services, each with software development managers (SDMs) and engineers.
  • Engineers: The talent pool, with defined levels.
  • Management Structure: Senior Managers overseeing SDMs.
  • Dependencies: Critical platform components and inter-service relationships.

This rich data model allows the application to provide a holistic view, forming the bedrock for all subsequent planning and visualization.

Our MVP Journey: An Iterative Evolution with an AI Partner

What started as a concept rapidly took shape, built incrementally feature by feature. The initial scaffolding was a single HTML/JavaScript file – a testament to getting ideas off the ground quickly. But the vision was always much larger.

Key Milestones in Our Development:

  1. System & Org Modeling: The first step was enabling the definition of systems, services, APIs, teams, and their intricate relationships. This involved creating UI elements for adding, editing, and connecting these entities.
  2. Visualizing Complexity: Static data isn't enough. We introduced dynamic visualizations:
    • System Architecture Diagrams: Showing services, APIs, and platform dependencies.
    • Team Relationship Graphs: Illustrating how teams connect based on service ownership.
    • Service Dependency Views: Drilling down into specific service connections.
    • Interactive Org Charts & Team Breakdowns: Providing clear views of the organizational structure and team compositions. Initially, these were separate views, but based on user experience feedback, we evolved the system overview into a slick carousel navigation allowing users to seamlessly glide through these critical perspectives.
  3. The Game Changer: Yearly Planning: This became a cornerstone. The goal was an interactive table to manage initiatives against team capacity, showing what's "Above The Line" (ATL) and "Below The Line" (BTL). We implemented:
    • Dynamic team columns and SDE Year estimations.
    • Drag-and-drop prioritization.
    • "Protected" initiatives that lock to the top.
    • The crucial concepts of "Funded Headcount" vs. "Builders In Seats" (BIS).
  4. Introducing "Away Teams": Recognizing that real-world capacity isn't static, we enhanced the model to include "Away Team Members" – borrowed resources. This led to the "Effective BIS" metric, providing a more realistic picture of available capacity.
  5. Deep Dive into Capacity Tuning: This was a pivotal enhancement. We built a dedicated "Tune Capacity Constraints" module where users can define:
    • Global defaults (working days, holidays, org-wide events).
    • Team-specific adjustments (leave uptake, variable leave, team activities, recurring overhead). The output? A Calculated Net Project Capacity for each team, which can then feed back into the Yearly Planning view for a much more accurate ATL/BTL assessment. This module also includes a detailed narrative explanation and a waterfall chart to visualize capacity erosion.
  6. SDM Resource Forecasting: Leveraging the detailed capacity tuning, we integrated a forecasting model. SDMs can now select their team, input hiring and ramp-up estimates, and see a 52-week projection of their headcount and effective SDE availability, all adjusted by the previously configured capacity constraints.
  7. UI/UX Modernization: More recently, we've focused on enhancing the user experience, refactoring the codebase into modular files, and adopting a cleaner, card-based UI reminiscent of modern web applications.

The Gemini Co-Pilot Experience:

This journey wasn't a solo flight. As the human visionary and lead developer, I partnered extensively with Gemini, my AI coding assistant. This collaboration was an experiment in itself:

  • Acceleration: Gemini was instrumental in rapidly generating boilerplate code, implementing UI components based on descriptions, and refactoring complex functions. This significantly sped up the development of the MVP.
  • Brainstorming & Ideation: We bounced ideas for UI/UX improvements, data model structures, and feature refinements (like the Team Load Summary table in the planning view).
  • The Learning Curve (for both of us!): It wasn't always smooth sailing. There were moments where context was lost between sessions, leading to regressions or suggestions that didn't quite fit the current state. Clarifying requirements meticulously, sometimes repeatedly, became key. Debugging involved a human-AI partnership – I'd often describe the unexpected behavior, and Gemini would help pinpoint potential issues in the code it (or we) had written. It was a process of learning how to "prompt" effectively and how to guide the AI when it drifted.

This experience has been a powerful demonstration of how GenAI can be a force multiplier for developers, turning ambitious ideas into working software at an accelerated pace, even if it requires a new kind of collaborative patience and precision.

Key Features That Shine

While the tool is packed with interconnected features, some of the "wow" factors that have emerged include:

  • Holistic System Modeling: The ability to define not just services, but also the teams that own them, the engineers within those teams (including AI SWEs and their attributes like skills and experience!), and the management structure, all in one place.
  • Insightful Visualizations: The carousel of system, team, and service dependency graphs provides powerful, at-a-glance insights into complex relationships.
  • Realistic Capacity Tuning: Moving beyond simple headcount, the "Tune Capacity Constraints" feature allows for granular adjustments, factoring in everything from public holidays and company events to team-specific leave uptake and meeting overhead. The resulting "Net Project Capacity" and its narrative explanation offer a truer picture of what teams can achieve.
  • Interactive Yearly Planning: The drag-and-drop planning table, combined with dynamic ATL/BTL calculations based on selectable scenarios (Funded HC, Team BIS, Effective BIS) and the option to apply the "Net Capacity Constraints," makes for a powerful "what-if" analysis tool. The Team Load Summary provides immediate feedback on team-level impacts.
  • Integrated SDM Resource Forecasting: This module closes the loop by allowing managers to see how their hiring plans and attrition realities, combined with the tuned capacity constraints, will affect their team's SDE availability throughout the year.
  • An Evolving, Modern UI: The recent shift towards a cleaner, card-based design with a persistent top navigation bar significantly improves usability.

The Journey Continues: The Power of Iteration

This MVP is a significant milestone, but it's also a foundation. The backlog, as detailed in our project's README.md, is rich with possibilities: enhanced yearly planning with ROI tracking and versioning, a dedicated roadmap and backlog management module, deeper detailed planning with work packages, and, most excitingly, integrating more AI-powered enhancements for analysis and interaction.

The development of this tool underscores the power of iterative development and the transformative potential of collaborating with AI coding assistants. It shows how a complex vision can be broken down and built, piece by piece, learning and refining along the way. While the path of AI-assisted development has its unique challenges (like ensuring context retention and guiding the AI through ambiguities), the ability to rapidly prototype, generate code, and explore solutions is undeniable.

For any engineering leader wrestling with the complexities of software planning, or any developer curious about the potential of AI partnerships, we hope this journey provides some inspiration. With the right vision and the right tools (both human and AI!), ambitious ideas can indeed be brought to life.


Tuesday, 8 April 2025

Throwback to Minesweeper by Google Gemini

Okay, I still can't help myself - here's a fully functional Minesweeper game implementation, coded in less than 2 minutes, no issues one-shot, by Google Gemini. Granted, it's been years since I played this game!

Play here

Code is here

Mobile friendly version here


Just imagine - a game developed by AI in less than 5 minutes - it's amazing. Seed for imagining the future possibilities...

Throwback to Windows Disk Defrag and MSDOS Norton Antivirus by Google Gemini

So I couldn't help myself - getting Gemini to build and bring back some memories of classic apps from the past, this time Microsoft's disk defrag tool. I remember spending hours using this tool, just watching the blocks move was so satisfying!

Norton Antivirus - created one shot, worked first time. Here's the prompt for nortonGPT, source code on github.

I'm going through a phase of nostalgia, thinking about the classic tools and applications I used in the 90s and 2000s. Can you help me create a simulation of the classic MSDOS antivirus program for Norton Antivirus? The simulation must run for 2 minutes - it should show scanning the hard disk (simulated) but referring to actual files on local disk, using the classic progress indicator of a spinning "\-/-/" sequence, and simulating some viruses and quarantining effects. Implement the simulation as a single page web application that can be served on any browser.



Windows Defrag - took 5 iterations - less than 30 minutes to generate. Still can be improved but the idea is to show what can be done (and the fun that can be had) with these new AI coding assistants!

Monday, 7 April 2025

A tutorial on building a Pacman game, by Google's Gemini 2.5 Pro (no human edits)

Deconstructing Pac-Man: A JavaScript Game Dev Tutorial

Welcome, aspiring game developers! Ever wondered how classic arcade games like Pac-Man work under the hood? In this tutorial, we'll break down the creation of a simple, tile-based Pac-Man clone using just HTML, CSS, and vanilla JavaScript with the HTML Canvas API.

We went through quite an iterative process to get here, fixing bugs related to movement, collision, ghost behavior, and level design. That's a normal part of development! This tutorial focuses on the final working baseline version.

We'll explore core concepts like the game loop, maze representation, entity movement, collision detection, state management, and basic rendering.

Source code here.



Having fun with Google Gemini 2.5 Pro coding assistant - it rocks!

Man, oh man. I've spent about eight hours having fun with Google's Gemini Advanced 2.5 Pro - and I am blown away by its potential!

Up until now I've been using ChatGPT as my primary coding assistant as well as bolt.new 

I've been meaning to play with Gemini for some time, and started yesterday (Sunday evening) and finished this evening (Monday). Totalling about eight hours of play time, learning, coaxing the prompts, having utter fun correcting Gemini on issues and bugs -- suffice to say, I am really impressed, and also quite concerned at the same time for the future of software engineers, and also the future of computer science or programming degrees in the future. 

If you've read my post on how I started with computers back in the day, two experiences stand out: 1/ Pacman game and 2/ the classic Quattro Pro MSDOS spreadsheet. 

So I thought let me ask Gemini to build a fully functioning Pacman game as a single page application:


And second, a classic Quattro Pro throwback - not fully functional but just enough of a shell:


You can find the code on my github.

The future of software engineering is going to be so crazy...check my next post on how Gemini created a full tutorial for a computer science student to learn the inner workings of building a pacman game. Who needs to go to school in the future when we have our very own AI tutor always available?!

Sunday, 1 September 2024

The Jenga of life

Jenga metaphor #thismightnotwork

It's been ages since I last shared a metaphor on this blog. This one hit me during my morning walk today, 8th August 2024. As I was trudging through the early morning mist, my brain made an odd connection: life is kinda like a game of Jenga.

You know Jenga, right? That game where you're trying to build the tallest tower possible by yanking out blocks and stacking them on top. It's all fun and games until someone knocks the whole thing over. But today, I saw it differently.

The Baseline: Your Value System

Picture this: you start with a perfect Jenga tower. All the blocks neatly stacked, everything solid and stable. That's you. That's your life, your values, everything you stand for. It's rock solid, built on all the principles you've picked up over the years.

The Dangerous Dance of Compromise

Now, here's where it gets interesting. Every time you play Jenga, you're taking a risk, right? You pull out a block, the tower gets taller, but it's wobbling more. In life, it's kinda the same deal:

  • Maybe you tell a little white lie. No big deal, right? But they start to add up...
  • Or you cut corners on a business deal. Just this once, you tell yourself.
  • Perhaps you're racking up some debt. One credit card becomes two, becomes three...
  • Or you let slide something that goes against your values. It's just a small thing, a papercut. But man, those papercuts sting after a while.

Every time you look the other way, every time you compromise, you're pulling out another block. Your tower might be getting taller, but it's getting shakier too.

The Inevitable Collapse

We all know how Jenga ends - with a crash and blocks all over the floor. Real life isn't always that dramatic, but the consequences can be way worse. All those little compromises? They add up:

  • Those white lies might snowball into you being known as "that guy who can't be trusted".
  • That shady business deal? It might come back to bite you in the butt, big time.
  • And that debt? Before you know it, you're drowning in it.
  • As for those "minor" infractions? They chip away at your self-respect, bit by bit.

The Lesson: Handle with Care

So what's the point of all this Jenga talk? It's pretty simple: be careful with your values, folks. Every choice you make, everything you do, it's like moving a block in your personal Jenga tower. Some moves might seem like no big deal at the time, but they all add up to how stable (or unstable) your life is.

This doesn't mean you should never take risks or change your mind about stuff. Heck, growing as a person often means shaking things up a bit. But it does mean being careful about the choices we make and thinking about where they might lead us down the road.

Building a Stable Tower

So, how do we use this Jenga metaphor to build a life that doesn't topple over at the slightest breeze?

  1. Know your foundation: Take some time to think about what really matters to you. What are the blocks at the bottom of your tower?
  2. Think before you pull: Before you do something that goes against your values, ask yourself if it's really worth it. Is that short-term gain worth making your whole tower wobble?
  3. Shore up your base: Work on making your core values stronger. Read books, hang out with people who inspire you, practice what you preach in the little day-to-day stuff.
  4. It's okay to rebuild: If you realize you've compromised too much, don't be afraid to start over. Sometimes you gotta go back to basics to build something that'll last.
  5. Play the long game: Remember, life isn't a race to build the tallest tower as fast as you can. It's about building something that'll stand up to whatever life throws at it.

As we're all fumbling our way through this game called life, let's keep this Jenga thing in mind. Every decision, every compromise, every value we ignore - they're all blocks in our tower. Handle 'em carefully, think about your moves, and try to build a life that stands tall not just in height, but in being rock-solid and true to who you are.

So, what blocks are you moving around in your life's Jenga tower? And the million-dollar question: how stable is your foundation? Something to chew on, isn't it?

Monday, 15 August 2022

My wall art graffiti project from 2020, just before covid


So this post is a long time coming. Back in early 2020, just before lockdown hit us, my wife and I decided to take on a bold project by transforming our property's boundary wall into an art project. Our house was on the edge of a park, frequented by weekend warrior cyclists riding the Braamfontein spruit to Alberts Farm in Gauteng, which I used to ride as often as I could. 

So my wife and I thought it would be cool to show our appreciation for the spruit and cyclists by creating a mural using our property's boundary wall as the canvas. 


We contracted a cool graffiti artist, Nic, who goes by @dekor_one, check his work out!

Here's the journey that was, became and still is.... alas we moved to Cape Town the same year, and only got to spend 9 months appreciating the project...two years on and the artwork is still fresh!


Tuesday, 17 May 2022

Sharing Ramadan Itikaf Snippets

Ramadan is known as the Muslim month of fasting, one of the five pillars of Islam. The last ten days of Ramadan, especially the last odd nights in this period, are considered very blessed. As was the practice of the prophet Muhammad (May God's Peace and blessings be upon Muhammad and his family & descendents), he would spend the last 10 days in seclusion in the Masjid, immersed in various acts of devotionals. We commonly refer to this tradition as "sitting for Itikaf". This became part of his Sunnah, which the vast majority of Muslims include as part of their belief system (i.e. to follow both the Qur'an and Prophet Muhammad's Sunnah).
I sat my first Itikaf in 2018, at the age of 40. Since then, I vowed to sit every year until my death, no matter what the situation is at work, going as far as taking unpaid leave if needed (which I've done). Alas, during Covid-19 Masjids were either closed or not allowing Itikaf in 2020 and 2021, so I missed those two years. This year, 2022 was open so I maintained my commitment to continue my vow. Even though I'd recently switched jobs, starting a new career, with new bosses and new teams, with critical projects in motion and notwithstanding the fact I've not earned much credibility yet, I still wasn't going to let me pass up my Itikaf opportunity again!

Nothing was deemed more important, even if it portrayed me as being a weak leader or not-committed to the company, I put my faith firmly in God's hands and my resolution to remain steadfast to my value system priorities: My spiritual well-being Islam is first. There is no separation of identities. 

I wasn't always like this though, since growing up I'd focused on my profession (my job) putting it ahead of everything else.  Now, I view the world with a much broader lens. My job is absolutely still very important. In fact, as a Muslim, we treat our work very seriously, with great responsibility to account for halal income and maintain our work contracts in the strictest manner possible, strictly accounting for the time sincerely because we will be answerable for our time to God. So work is still a key component but not at the expense of my personal spirituality, mental well-being and family responsibilities. 

With enough up-front planning and expectation management, I was able to complete my Itikaf successfully this year.  

I find the workplaces have really started to embrace diversity and inclusion, which is quite awesome. My current company, is by far the best workplace I've experienced that promotes IDE, truly raising the bar. 

So what do I get up to in Itikaf then? 

When I sit for Itikaf, I try to cut myself out from the world as much as possible. I'm unreachable if there's a work emergency, sorry. I limit my interactions with immediate family. And a total black out of digital devices, social media, etc. digital detox. I also limit my interactions with fellow guests. 

A large part is private and personal of course. Maybe I'll share some of my journal insights in future posts? In this post, what I can share is that I don't spend all my time doing devotionals. I journal, meditate and also take time to explore my artistic side with freehand sketching things that catch my attention: Islamic art, calligraphy, poetry, etc. If you've ever ventured into a typical Masjid (Mosque, Muslim place of worship) you will have likely come across the most beautiful Arabic scripts of calligraphy, tile work, frames, etc.

So there is at least one day in my 10 days of seclusion where I spend a few hours sketching in my journal. This helps me process my thoughts, reflect on the beauty of Islam's art form, thus reflection in God's beauty and love inspired, is a form of remembrance in its own right. 

I'm not great at sketching though, so I'm sharing at risk. Hoping I can make more time for this as a regular hobby outside of just once a year:

Thursday, 2 July 2020

How I'm hitting the reset button again...


A recent post on LinkedIn that I casually commented on by sharing my own personal story about the time I hitch hiked a lift, travelling 600km overnight on a long-haul truck just to make a job interview on time. I commented on LinkedIn without giving it much thought actually. It nevertheless struck a nerve that made me realise I need to go back into my past, dig up the old memories to help ignite the fire-in-my-belly, thus provoking me out of a slumber zone that I found myself recently experiencing (even before covid-19). 

The theory: by reflecting on my past stories, building blocks that "made me ME", I would be encouraged to continue moving forward with a renewed sense of energy and purpose. To become that bold, daring & courageous individual again. Someone who always went against the grain, never one to follow the herd or play-it-safe. An owner of my path, unafraid of uncertainty or the unknown, with a sense of curiosity in all things life & work, not swayed by people be they corporate executives, colleagues, friends or family. Equipped with my reliance on God and my confidence in my own strengths & abilities, having a strong sense of faith and fine-tuned instincts...daring to be different! How do I find that guy again? 

After all, I have indeed successfully navigated through many challenges and obstacles in the past despite my background, to get to where I am today of which, I am immensely proud of, so why should I settle now?  Should the next 20 years not be filled with even more?? But it seems my flame was dying out, so  I began to ask myself whatever happened to that flame? How do I re-ignite it? Whatever happened to being that lion? Have I settled for a life of ease and comfort? Am I comfortable doing routine work? Why do I need to play the system, be under the radar just because I'm close to having made it? What's so important about job title anyway? Does my work really define my identity?

I needed to find my story again and was sure the clues were waiting to be found hidden in my past. I'm sharing this because just maybe, I'm not alone in this boat - that this exercise might be something others could find useful too, in helping you with instigating the change you seek. When I did travel back it time, it occurred to me how much my work or career defined my life!? Victim of circumstance or not, it was quite revealing that my profession which stemmed from being conditioned by the system of Life programming to work hard and survive - shaped my life's choices.

Still, I contend that over the years we tend to forget who we were (sometimes it could be argued this is a good thing depending on one's past circumstances). We also lose touch of our inner core. To some extent possibly even forget our own roots. We thus enter either a comfort zone of complacency or living life through wilful ignorance. That is, who we are today is not so clear anymore because we've forgotten our past!


HAS THE LION INSIDE OF ME BEEN TAMED?? 

WHATEVER HAPPENED TO THAT FIRE IN MY BELLY??

My inner voice shouts!!

Have I really arrived? It can't be, but I'm still quite young!?

One of my greatest fears is to reach a point in my life where I'm resentful, i.e. of having regrets about missed opportunities. Taking the safe path instead of the uncertain, uncharted one. As we get older, start a family, climb the career ladder, the less inclined we are to taking risks, to upsetting the balance or causing disruption to our family's lives or to breaking away from accepted social/cultural or even professional norms. 

There are indeed times when we need to be patient, be wise, show grit and resilience by deferring rewards for later (delaying gratitude), but this tactic too if used too often or unwisely, may just only be a crutch that we hold on to - because actually, deep down, we're afraid to admit that we fear the unknown, so we often settle for the safety net of waiting for that retirement pension as an example, to only then start enjoying life. In another LinkedIn post, I described this as Life Programming.

We seek out excuses, governed by rationality or play the sacrificial card of putting our own personal interests last, ahead of the rights of our family, spouse or children. We may have created a personal value system that expects self-sacrifice. We may make our worlds larger than what we can neither control nor influence (like we should be so grateful because others have it much worse than us, why chase the world when you're got it good now, look at the trouble in other countries, better to be thankful and let it be, don't be too ambitious, etc?). Sometimes we use our religion and faith in a way that promotes static stagnancy than taking on risks (why should I be an ungrateful servant by chasing this world of "dunyah"?). Sometimes we compromise our core values and passions because the money is just too good to resist. Sometimes we place unusually high notions about rights of the companies we work for, or attach sense of loyalty to our bosses or the teams we lead or work with. In our minds, this sacrificial attitude conjures up feelings of goodness, almost a saintliness, that can be blinding us from the hard truths...self-preservation is not necessarily a selfish act, after all, this world is fleeting, and we must therefore not waste ourselves with our limited time on earth, we each deserve an experience worth living...and to do so, action, re-action & forward momentum is needed IMHO.

Personally, I've been riding this roller coaster for some years now, so I created a model called RAGE, to help provide guardrails to prioritise the various streams in my life & help with decision-making rules (I'm an engineer after all). This tool has served me and others (friends, family & colleagues) quite well, I've received some good endorsements...


My theories are also shared by others, take for example Bernadette Jiwa, author of Story Driven, what she has to say about this topic:
We're so busy trying to connect the dots looking forward, we overlook the opportunity to learn from the experiences, not just the mistakes, of the the past. We don't spend as much time looking back as we should. I don't mean just to reminisce about fond memories or to regret stupid mistakes. But rather, to reflect on the significance of our stories, remind ourselves of our resourcefulness and reinforce our sense of identity. History, heritage and hindsight are powerful teachers. But we're in too much of a hurry to reach higher ground to learn from them....
I started my thinking & writing on this topic long before reading Jiwa's book, I'm really glad I did though. There's much more work on self-awareness that I need to unpack, for instance, Part Three "Developing Your Story-Driven Strategy" is packed with some of these soul-searching questions. 
I'm still processing these questions in the background in the context of my RAGE model; and may just follow-up with another blog post, sharing them here for you to help your reflection:
What's the hardest thing you've ever done?
What did doing the hard thing teach you about yourself?
Who are the two people who have had the biggest impact on your life?
What did you learn from them?
What was your first job and what valuable lessons did you learn there?
What's your proudest memory? Why?
When are you at your best?
If you could change one thing about yourself, what would that be? Why?
What's the one thing you wouldn't change about yourself? Why?
How can you bring more of that thing you wouldn't change into your work?
Go back in time five years. What's the thing your old self would be most proud that you've achieved?
How would you like to be remembered?

The exercise: How to find the flame again & then make it stick?

  • Go back in time, rewind the clock to trigger memories that you think have shaped & molded you...just write whatever comes to mind...then study, analyse and look for common themes. 
  • Take those themes and create affirmations (this is where it gets private and personal).
  • Write those affirmations down, keep them with you wherever you go.
  • Start your day with repeating those affirmations out loud to yourself.
  • Whenever you're in doubt or feeling glum, use your affirmations to get you out of that funk.
  • You should notice a change, soak this in, observe yourself in this moment.
  • Use this energy to immerse yourself in solving/creating your next challenge / opportunity.
  • Do this together with keeping track of your RAGE plan & journal your experiences.
Does this thing work? Is this some mumbo-jumbo new age thing?
Maybe, but all I can say this has certainly worked for me - so much so that I'm now out of my funk. This has helped me create yet another defining moment in my life that I'm living through right now as I write this...


My affirmations

I trust in God, have hope in God's Mercy & Generosity always.
I am always thankful to God. With God by my side....I...
I love my parents and am grateful to them, love my siblings and my family.
I love my wife & 3 children, my anchors in life. 
I am driven, self-motivated & brave.
I choose courage over comfort.
I hustle.
I am a survivor.
I don't blame anyone for my circumstances.
I am not afraid of the unknown.
I am comfortable with uncertainty.
I have overcome many challenges in life.
I have shown grit, patience, perseverance.
I am determined to succeed.
I make calculated decisions.
I am bold. 
I take chances. I dive in, sometimes in complete darkness, but I go anyway.
I am always moving forward, never looking back to "what ifs".
I break stereotypes.
I dare to dream.
I question the status quo.
I remain curious. Curiosity is a good thing.
I have taken chances in my life that paid off.
I tend to go against the mould.
I persevere.
I am relentless.
I keep going.
I have never depended on help from anyone unless help is extended.
I hold myself accountable for my own life.
I don't seek hand-outs, ever.
I value my relationships with trusted friends.
I seek their council & can count on when in trouble or difficulty.
I am grateful to all who played a part in helping me.
I help others in need whenever I can.
I have a responsibility to pay it forward to my family, friends and others.
I have always been responsible for my future.
I take responsibility for my life.
I fear no man.
I believe Nobody owes me anything.
I contend that Not everyone needs to like me.
I am comfortable with myself. 
I am only in competition with myself.
I hold myself accountable to high standards.
I loathe mediocrity. I am always learning to improve and grow.
I remind myself often: The only one keeping score is myself, no one else.
I seek counsel from people but take full responsibility for the final decision.
I have confidence in my abilities.
I become an expert in a subject in a short time. 
I know that every new endeavour will at first be uncertain and difficult.
I gain comfort in past memories.
I have what it takes to accomplish anything I set my mind to.
I trust my gut instincts and intuition. 
I have initiative and drive - my past speaks for itself.
I have proven myself more than capable on many fronts life-and-work. 
I am world-class.
I am an innovator.
I have walked away from many an opportunity when it just didn't feel right.
I started from zero a few times in my life, I can do it again if need be.
I do not hang around for the safety of a pay cheque.
I have walked away from many a past opportunity with no regrets. 
I pave my own way, make my own path, with the help of God.
I strongly believe: Taking the safe, comfortable path has never been my way.
I alone am responsible for shaping my future career. 
I cherish and nurture the networks I've created.
I look deep into my past to shape my future - adaptability is key.
I love and respect my roots, no matter humble.
I am who I am, my past is mine to own, my future is mine to create, my present is mine to act. 
I know the only obstacle blocking my path is myself. 
I hold myself accountable to my own value system, not other peoples'.
I am self-aware.
I am mindful of my ego & keep it in check always.
I am humble but I don't tolerate nonsense.

My Backstory

Here's some stories that are helping me re-ignite my flame...
  • I grew up not rich, not middle-class, not poor and not in poverty either. My ancestors came to South Africa from India as indentured labourers most likely to work the sugar cane fields in Natal, I don't know where from since there's no paper records to trace back to. 
  • So I was exposed to the reality of the system of economics & social inequality as I grew up in apartheid. So I was always reminded about the reality "unfairness" of life, practicality, hard working humility, from an early age. We could not afford a car until I started working professionally, neither did we spend our childhood enjoying family vacations away from home. We sometimes didn't have the means to enjoy even the small pleasures of school excursions, school photos or even attend my final year farewell party of high school. Despite the lack of financial means, I can't fault my parents, family & friends for not sheltering us from these realities and filling our house & hearts with love, warmth & protection. My childhood was a blessing upon reflection, our elders did a great job providing psychological safety & groomed us to survive whatever challenges came our way.
  • My late father was indeed a blue collar shoe factory worker, a machinist, one of the best actually, who won many awards for his craft. Although earning just above the minimum wage for much of his life - he taught me so much about hard work, dedication, setting goals, patience, humility, honour, respect, bravery & frugal money management - that I never really had a chance to thank him in this life though.  I was much too hard on him. In fact, I was quite naive! To the extent of living my life with a purpose of "never to become like my father" as I saw his lack of ambition and drive as a weakness not a strength. How naive was I!? I went through life with blinkers on, driven to be better than my father, to never become that guy who settled...alas, how ignorant was I, only to realise years later that I've got so much to thank my father for!!  
  • Despite our financial difficulties growing up, I honestly can't fault my parents for not providing a safe, secure, humble, warm and loving home. Home was always our sanctuary, it still is - every time I go back to my parents home (which is now taken care for by my brother and I), I am reminded of where I started: the tiny room I spent my life studying in, the small house that was never really empty, always bustling with visitors, our food table always welcoming to many guests, the wonderful conversations I'd have with my elders about their past, discuss world politics and life...one should never forget one's roots, home is where the heart is...whenever I need to recharge and remember who I am, I find solace back home...
  • So I grew up with a practical head, my eyes wide open to the realities. I knew I needed to study hard, do my best at school. I started working part-time in high-school (following my elder brother's lead) whilst my friends were enjoying their teenage freedoms. At the age of 11/12, I was responsible enough to do grocery shopping & pay the bills, I knew what my father earned and the total running costs of the household. I grew up knowing that my duty was to take care & support my parents, siblings, etc. That I needed to pay it forward for my siblings and their children as well. I helped my father get his drivers licence and bought him his first car. My parents have been overseas, an idea that would've been impossible to even dream about growing up. 
  • During high school, I had applied to hundreds of institutions for bursaries and scholarships, consistently for four years since grade 10, all through facing rejection but I never once gave up trying. I did this on my own, without help from anyone. I went to the library, enquired about bursaries, photocopied all the forms (there was no internet then), and I would send letters and apply to literally hundreds of companies (back then we just transitioning out of apartheid, the companies were not as diverse as they are today, and most of the bursary/scholarship forms were still in Afrikaans and had conditions like military service). I tried my best in high school, although I thought I could have scored more As, but I couldn't afford to send my papers for remarking and so settled with my grades, it was an A aggregate which was still nevertheless excellent. Even with these grades, it was a proud moment to be accepted to medical school...
  • I learnt through persistence. I taught myself computers by reading books even though I did not own a computer at the time. In high school, students were only allowed one computer lesson starting in Grade 9, I on the other hand, camped out the computer room everyday until the teacher granted me access, from Grade 7/8, break times, afternoons, etc. Later in high school, I would persistently complete the maths syllabus in advance, and learn new concepts in programming too. I demonstrated the same curious energy when I worked part-time at the retail store. Starting in sales, moving to finance clerk then made my way to the IT department, to being given freedom to run POS installations in branches by myself. Took the same persistence wherever I landed - be it in Dublin, where I closed the gap on my computer science, or in UK where I innovated a Talking TV EPG for the Blind, a personal project of mine. I took initiative, met with customers & spread the word inside the company, throughout the 4 continents, later landing the best, highly coveted technical position in the advanced technology division. 
  • At the end of high school I was successful in getting placed at Wits medical school, but had to turn the offer down, because I lacked the financial means, couldn't get financial aid not even a bank loan. 
  • At 18, that was quite a defining moment for me: A phone call determines my fate in medicine, I realise I really have no one to back me up, I had to do things on my own. That was the first major turning point in my life, bringing it all home - that I'm alone in this fight, it's up to me to work my way out. There were no adults in my family or friends that ventured to stand guarantor for a bank study loan for me. So I thought I'd just continue working and try to find a way to study part-time.
  • I had worked part-time at Asmalls in Pietermaritzburg as a teenager growing up selling shoes, clothes, working for retail, doing finance admin as a clerk and IT support. This hard work and "not standing still", got me noticed by the owner of this retail store, interviewed me and agreed to finance my studies when he learnt I was not studying. He took a chance on me. I am forever grateful. I chose engineering not because I had tinkered in building stuff growing up, but because it was the sensible degree to choose on paper as the next best thing to medicine, better than computer science (which was really my passion), providing the best of both worlds. Also, engineering jobs paid more, and I could start earning money sooner...so as usual, with no one else to guide me, I made what I thought as the practical sensible realistic choice.
  • I never gave up hope for bursaries or scholarships. This consistency of purpose paid off that in my 3rd year, I got through and landed a bursary from Vodacom. This enabled me to live independently and experience freedom (which wasn't always a good thing). I moved out of boarding with family to sharing a flat with fellow students, and thus learnt what it meant to live responsibly. 
  • Eventually I would work for Vodacom during vacations setting up mobile base stations and doing drive-by quality of network experience testing. Vodacom was great in supporting me, unfortunately there was no automatic placement post graduation.
  • As much as I did not quite enjoy half of electronic engineering topics because my intended software courses dropped away, by that time I was very much fully committed to seeing the degree through in four years, so no turning back. I couldn't whine about it, just get on with it. I was thankful for the bursary and committed to work for the company even though broadcast/radio was not my thing, and assumed the job would naturally follow upon graduation, but it didn't. Even on completing my engineering degree, I turned down three jobs before landing a job in the field I'd studied! I did not want to waste my hard slog of four years by not at least experiencing the job of an engineer! 
  • Eventually I would land a real engineering job with UEC outside my home city. I would bunk in the lounge at my student friend's flat, later would end up boarding at a distant family's residence, closer to the work. Ever ready to adapt to changing circumstances. UEC experience was great, no limitations as long as you took initiative. It was fun, stressful and sometimes quite intense. UEC set me up to take the leap to my life overseas.
  • After just one year of engineering training, I took a chance - responded to an advert in Sunday Times for engineers in Dublin, Ireland. I applied, without thinking what it actually meant, all I knew was that my best chance of earning money was overseas, and best chance of knowledge to work on core software engineering was definitely not South Africa. I left my home with one suitcase and R5000 in savings, landed in Ireland without having any contacts there, absolutely zero, apart from support from the company, S3. I was on my own, first time out of the country away from home, unknown everything and I started from scratch. In one year, I had made a life in Dublin, made new friends from all over the world, my eyes opened up to life, I wasn't the introvert I thought I was. I also adapted to a new lifestyle in Dublin very well, best social life experience, honestly, I never felt like leaving Dublin, ever! 
  • Working in Ireland, in the "first world" was a real eye opener for me. I became consciously aware of my incompetence. My knowledge of software engineering was lacking compared to the "first world", I was a little behind my peers and lacking some depth of computing principles I either would've learned at university if my courses hadn't been dropped; or if I had studied Computer Science.
  • I had to ramp-up and teach myself all the things I should've learnt at university (if the courses weren't dropped). I ended up on a project that really stretched my ability, but I did not give up. Instead I dug in deeper and through this I had also secured a placement to study my Masters in Computer Science, from a world-class university, that would then bolster and take my South African education to another level, I hoped.
  • I also experienced my first-and-only layoff in Ireland, made redundant, something I wasn't expecting it. I was gutted. My world was about to shatter. I was just settling down to a nice routine, enjoying my work, good social network. Without much opportunity left in Ireland, I applied to UK since I did not want to return back to South Africa. Using my savings wisely, I remained in Dublin until I found a job in UK. 
  • In between I got married. I completely funded the wedding myself, including the relocation to UK, etc. It was a simple, down-to-earth wedding, but I do take some pride that I did this all by myself, without asking anyone for any financial help.
  • One of my proudest milestones has to be raising my engineering skills to become recognised as a Principal Engineer in the UK, as a result of my innovating text-to-speech technologies to make a Talking TV, as a side off-the-work-books project. 
  • Following closely behind was gaining my Masters in Computer Science from a world-class international university. These are important to me because coming from South Africa, it certainly means a lot. I remember some colleagues in Ireland and UK just scoffing sarcastically when I shared I worked for an SA company which they had previous interactions with (they held SA engineers in low regard at the time). The UK being  a serious meritocracy where competition is tough, meant getting that job as a principal engineer for me was quite vindicating! 
  • To know that I could hold my own amongst senior engineering peers, architects and managers who - I felt small compared to them - who had also applied for the same job as I, felt really good! Working with a small group of engineers, who's day job it was think up big ideas disrupting the market bootstrapping start-ups, was a dream come true for me. 

  • I am grateful I was able to climb up both the technical and management career ladder in the UK and not in South Africa. IMHO this is because it is somewhat difficult in SA to decipher if your promotion was based fully on merit or whether a "previously-disadvantaged background quota filter for equity and diversity" actually influenced the decision making process. Despite South Africa being "free" for 25+ years now, there's still so much to fix in the corporate world. Let's just say, there's still a lot of biased perceptions going on in this country. Non-white people are still doubted here which is sad really, actually quite frustrating at times! So yeah, I actually derive great personal satisfaction and comfort in knowing I actually made it entirely on my own in the UK, based on my own merits, in what is probably the hardest parts of the world when it comes to high-performance "world-class" output. So this achievement is still my story worth cherishing.
  • My career was spent learning-on-the-job and through self-study. Whenever I started a new role, I would become expert in the subject matter, by reading & learning from others. I was not afraid to jump in the deep end, challenge status quo and be different. Always self-aware, I had a sense of what I needed to improve, but I never doubted myself. I remember a few internal interviews where I shared my ambition of being a Jack of All Trades, Master of Some, of running my own company one day, I was told I had too high ambitions, but that feedback never deterred me! I can indeed claim to be a generalist with specialist skills, I am indeed a Jack of all trades, master of some!
  • After 10 years overseas, I decided to return to SA. It was a scary decision to make - leave the life we were building that promised a good future for our kids, we had given up SA citizenship (the thought of returning to SA was alien to us for many years), then we made a U-Turn to return back to SA!! 
  • I had zero savings, no private pension to cash out, which meant starting from zero again, but this time in debt, with a wife and three kids to support. To boot, the job I landed in SA was a junior one as well - but I returned anyway, I embraced the uncertainty nevertheless.
  • The decision was emotionally biased as well, dispelling much logic or rationale. I recall coming close to a nervous breakdown realising missed opportunities in SA as one example. So I felt we needed to return home to be closer to family. I also wanted to allow my kids to open there eyes to real world problems and challenges they wouldn't normally be exposed to had they continued to grow up in UK. At the time UK felt boring and perfect, whereas Africa felt more vibrant and alive!
  • After experiencing work in South Africa, I soon realised that my education, training and work-experience was on another higher level compared to the local talent. I could provide much more value working at higher levels, close to director / CTO level. I thus quickly gained respect and credibility to get promoted to running pretty much the entire project end-to-end. Yet another personally rewarding experience for me, since in the UK I would've been a couple levels below  that of program director, but in South Africa, I became THE CHIEF Program Director - how exciting!! I realised that whilst I sacrificed financial rewards in UK, my knowledge, skills, experiences gained there, paved my way forward to own and confidently perform senior roles in SA that would've taken me a few more years to reach had I been in UK. It was also quite eye opening in terms of the skills gap and opportunities in South Africa. Equally revealing was that I could in fact, return back to the UK with senior management/executive experience, something that would've taken me far longer to break through had I not left the UK in the first place. 

  • After a couple years working in SA, I was not happy with the work. I felt I needed to operate at a much higher level really. The work began to feel very routine and no longer challenging, because I was operating on skills & expertise from UK on autopilot. The projects I was running, whilst "state-of-the-art" for South Africa, was quite old news to me since I'd done them before, years ago. I considered myself an expert in that field of work (set top box engineering) and therefore I needed to change. 
  • Me being the hustler I am, I convened a meeting with the executives, pitched my offering to them, explained I could provide so much more value to the group if I was set free, used the "tamed lion" analogy - and successfully negotiated an exit agreement that saw me start my management consulting gig. It was a win-win for both sides, as I'd continue to support the business as a consultant, and be free to branch out to other technology & business projects within the group & external non-compete companies as well. I took a chance, was brave to leave comfort of a secure, stable job...but it paid off!
  • So I decided to leave the comfort of a permanent, secure job and good career progression; to become a management consultant into unknown territory! This opened up a few opportunities, expanded my network and also exposed me the the bigger world of business. In a relatively short-period of time, I cleared my ALL my debt, and our lifestyle started to surpass that which we had in the UK, although I've remained very disciplined not to let my lifestyle follow the gains made. So leaving the comfort of a permanent job, trusting in my ability to venture on my own, taking chances, building professional credibility did pay off. 
  • I would again later leave management consulting and rejoin the collective again to take up a challenge of being CTO, yet another change that stretched my potential. Why did I do this? I had a safe consulting gig, with a good pipeline of work, in control of my own time, working at times a four-day week, and earning good money. I was relatively independent and free. Then I decide to join the matrix again, become part of the collective. Why? Because I wanted a new challenge and was becoming bored of consulting. I also wanted to prove to myself I could switch career tracks again, go back into technical, and prove myself & the sceptics wrong. I am very glad I did so, got to work with a great bunch of people, learnt so much & achieved very good results. The experience provided everything that was missing in terms of my next career jump - and in terms of the original goal I'd set myself, i.e. to be a Jack of All Trades, Master of Some, equipped with the tools to run my own start-up company one day, I believe I've done it. I have the ability to run a company if I wanted to, or lead very large teams as CIO/CTO...so what's my next challenge then?
  • I tend to get bored once I feel I have acquired mastery or proficiency in an experience. I usually give the job a minimum of 24-30 months to acquire a high level of competency, anything longer ranging between 3-5 years (depending on the project or requirements of the role), I consider  optional or sufficient time to reach a higher level of mastery. I do try to finish what I've started or at least aim to leave at a point in time where I know it is safe to let go and pass the baton on.  
  • I do take care not to burn bridges, this is very important. I've learnt that having the courage to leave it all behind and walk-away is actually not so bad, in fact my experience has taught me it is  quite a healthy thing to do! I've hit reboot a few times already and it wasn't so bad. Life & work goes on - one should never feel one is indispensable, that's just pure hubris! Life is about exploration, standing still can't be an option.
  • As I've recalled these stories from my past, I felt the energy build up creating a burning desire to do something different yet again! I have accomplished many feats in the past, so I can definitely accomplish much, much more into the future! I decided again to not settle nor to stand still. The next twenty years I have left in my life can definitely be as interesting, if not more exciting and rewarding than my past twenty years!! It is indeed time for another change! I'm about to fill in the gaps in my life/work plan that I shared previously.... 
continue reading here.