• Unravelling the roles: Software Engineer, Developer, Scientist

    Unravelling the roles: Software Engineer, Developer, Scientist

    The skills required for the creation of software is one that anyone can gain. Literally, you, your parents, your friends, your children, anyone can learn. It is not a magical skill set, and can be self-taught with little more than an internet connection and the desire to solve problems. Whilst universities and boot camps are…

    Read more →

  • Technical Debt

    Technical Debt

    The concept of Technical Debt concept was designed to try and communicate to non-technical stakeholders the issues with the solution. Specifically, the long-term issues with the solution. However, its abstract nature often leaves non-technical stakeholders grappling with its implications for decision-making. Drawing parallels with a financial loan, the concept of Technical Debt suggests that every…

    Read more →

  • Yak Shaving

    Yak Shaving

    While well known in software development circles, it can be a very confusing term to other stakeholders. The term came from Carlin Vieri at MIT in the late 90’s . While the specific series of events that Carlin is referring to won’t make too much sense to those outside of software engineering, there is a…

    Read more →

  • Pesto

    Pesto

    After picking your basil, check it for friends of the garden like this frog, or spiders. Return the friends to the garden and wash the basil. One year, I grew so much basil that we made about 1kg of pesto. The freezer was full of a lot of small containers of pesto that we thawed…

    Read more →

  • Interfaces

    Interfaces

    Interfaces are how I look at and design systems. The interfaces that I attempt to create come in two varieties, fix and rigid, or soft and flexible. Sometimes these are the abstractions in virtual environments such as software, or physical definitions that are more tangible such as a bolt pattern to hold a PCB board…

    Read more →

  • Data Repository – A design pattern for data storage – Part 1

    Data Repository – A design pattern for data storage – Part 1

    Data storage in applications is a complex task that requires careful consideration of various factors. These include the location and method of data storage, the metadata associated with it, data querying, access authorization, cost optimization, data auditing, and more. For simple applications with a single reader and writer, direct usage of Binary Large OBjects (BLOBs)…

    Read more →

  • Build vs Buy

    Build vs Buy

    And age-old question that is not really possible to settle. Should we the company build it? Or should we buy it? In general, I have a short set of questions that help to determine if it should be built, or if it should be bought: To expand on each of these as they can become…

    Read more →

  • Kangaroos in my fridge! A Machine Learning Adventure

    Kangaroos in my fridge! A Machine Learning Adventure

    In 2018, as I embarked on my journey to develop machine vision models, I found myself working with a unique dataset – segmented images of kangaroos. My goal was to create a model capable of detecting and subsequently counting the number of kangaroos in a given region. The images I used were snapshots of the…

    Read more →

  • Unmasking Security Flaws: A Deep Dive into System Vulnerabilities and Misconfigurations

    Unmasking Security Flaws: A Deep Dive into System Vulnerabilities and Misconfigurations

    For some of my clients, I look at the software that they have had custom built and look at if it is “Fit for purpose”. One of my clients have very high security requirements, where they need to have the systems that they use be hardened and secured. This means that their internal systems are…

    Read more →