Ian Watkins

Ian Watkins

Hey! πŸ‘‹πŸΌ I'm the dad of 5 humans and 3 dogs who loves a good cup of coffee and an even better book. Follower of Jesus. Major nerd. Sales executive. Tech geek. BBQ enthusiast. This is where I share what I am learning as I go.

Recent Posts

Today is All We Have

I recently read the book The Courage to Be Disliked by Ichiro Kishimi and Fumitake Koga. If you are unfamiliar, it is an overview of Adlerian Psychology, also known as Individual Psychology.

I’ll admit that I had never heard of Alfred Adler or the psychology he was a proponent of, but I am glad that I gave this book a read. Unlike many psychology or self-help books, this one is written in the form of a narrative dialogue between a student and a mentor, which makes it very easy to read.

Read more β†’

Steady

How do you react when difficult circumstances arise?

Life isn’t always fair. It’s not easy. Difficult circumstances will arise for all of us from time to time. The question is how will you choose to respond during tough times?

It is tempting to give into our emotional response and allow that to dictate how we react. This, however, is not good. Emotions are fleeting and driven by hormones flooding your body. They are indifferent to reality outside your current circumstance. They have no perspective.

Read more β†’

Sales Success Is Boring 😴

The Boring Path to Sales Success

Ask any top sales performer the secret to their success, and chances are, you won’t get a flashy answer. You won’t hear about a secret script or a viral campaign or some once-in-a-lifetime pitch that changed everything. What you’ll hear β€” if they’re being honest β€” is something much simpler, and far less exciting:

πŸ’‘Sales Success Comes Down To Consistency, Discipline, And A Commitment To The Basics.

Read more β†’

Decorators in Python

Python Decorators

Decorators are a way we can use higher order functions to modify other functions. Typically they are used to wrap a function with another function.


def hello(name="Ian"):
    def greeting(func):
        def wrapper(*args, **kwargs):
            print("A man is sitting at the bar, you go up and greet him.")

            if name == "Ian":
                print("My name is Ian, what's yours?")
            else:
                print(f"My name is {name}, what's yours?")

            print("The man glances your way momentarily, then moves to the other end of the bar.")
            result = func(*args, **kwargs)
            return result
        return wrapper
    return greeting

@hello("Alice")
def bar_talk():
    print("You start a conversation about the weather with the bartender instead.")

@hello()
def another_chat():
    print("You shrug your shoulders and ask the bartender about the local sports team.")


print("=== First Interaction ===")
bar_talk()

print("\n=== Second Interaction ===")
another_chat()

In the example above, you would get the following print out:

Read more β†’

RAG

What is RAG?

If you’ve been trying to keep up with AI, there’s a good chance you’ve come across the term RAG. When I first learned heard the term, I wasn’t exactly sure what it meant form the context of the discussion.

Retrieval-Augmented Generation (RAG) is a technique that enhances the accuracy of large language models (LLMs) by giving them a wider context window and including external (from the LLM’s database) knowledge sources.

Read more β†’

Projects

Terminal Site

Terminal

Those who code spend a lot of time in the terminal. I actually take my daily notes for work and life in the terminal in addition to any coding projects I work on in my spare time.

When you become comfortable using it, the terminal becomes a magical place, where you can fly around like a wizard performing all sorts of tasks without ever needing to lift your fingers off the keyboard. Seriously… who uses a mouse these days 😜.

Read more β†’

Code Tutor AI Agent

Code Tutor AI πŸ§™πŸΌβ€β™‚οΈ

An AI-powered interactive CLI coding tutor built with OpenAI Agent SDK.

Code Tutor is built to allow you to learn to code yourself rather than just vibe code your way to success. This AI agent is supportive and uses the Socractic method to walk you, the coding student, through solving the problem on your own with guidance.

🧠 Code tutor is built on the principle that we can use AI to accomplish great things, but we need to protect our ability to think critically and learn.

Read more β†’

Better Tasks

Better Tasks Neovim Plugin

Better Tasks is a lightweight, modular and opinionated Neovim plugin for managing Markdown-based task lists across your notes, journals, or project files. It adds intuitive task management commands, persistent storage, status highlighting, and upcoming fuzzy-finding and popup UIs.

As always, you can find out more about this project and all my projects in my GitHub.


πŸ’‘ Task Structure

As you can see below, the tasks can be formatted into a table-like structure (not truly a table due to markdown limitations) that allow you to quickly see your tasks at a glance and view them through the perspective of title, due date, category, or status.

Read more β†’