RSSAmplifier

Blog

Matthew Egan

Engineering Leader and AI Enthusiast // Sydney, Australia

mattjegan.comRSS feed ↗14 posts

Latest posts

The Night Shift

The idea of a software factory has been coming up a lot over the last 6 months or so as techniques like Ralph Loops and tools like Gas Town gained popularity. While playing with these approaches you often find that either there’s still some context missing that would make the build better or the work is done so quickly that you run into the “What’s next?” question much faster than you previously…

Birding Japan

In late April we headed over to Japan for a mates wedding in Osaka but as it was my first time to Japan we decided to make a longer trip out of it to see some sights and get some Japanese birdwatching in while visiting the Palearctic bio region for the first time. Arriving in the final week of April, we were expecting the weather to be mid-spring, often with mild days and some rain about. Outside…

Your Agents Need You to Be a Product Engineer

Over the last few years I've seen coding agents develop rapidly and the techniques of using them change just as much. Engineers that are getting the most out of these tools are the ones that have invested in broadening their skillsets outside of traditional engineering responsibilities. As coding agents have increased the rate at which an engineer can produce the "coding" part of their role, it's…

Racing against time at DiviPay

For the last couple years I have been working at DiviPay on building the next generation of expense management software covering everything from expense reimbursement for employees to controlling your budgets and subscription payments to virtual cards. It has been a wild ride so far and has presented many interesting challenges for myself and the team. In this post I will be explaining how we…

Competitive Programming Tips

These are some rough notes from a session I presented to a number of high school students preparing to compete in a programming competition. The notes are heavily centered around the use of Python 3 however the concepts can be adapted to most languages. If you notice any errors please feel free to let me know in a Github issue or submit a fix here. Strategy Don't think of the syntax/code straight…

Load testing at a glance

For awhile now I've been wanting to talk about load testing and why we do it. Recently I was approached with a problem where some users were experiencing a very slow experience and I needed to rectify the issue. The way I went about solving this was to check what kind of response times I could expect for the particular path and actions those users were taking. By investigating the problem in this…

Python packages that you may not have heard of

The python package ecosystem is a vast forest with many great packages available. If you have been using python professionally you are more than likely to have stumbled across some of the more popular packages such as requests , django and flask . In this post however, I seek to bring your attention to a few packages that I have been using over the last 6 months or so and have found to be quite…

Describing Descriptors - A follow up

Recently I gave a talk at PyConAU 2018 entitled "Describing Descriptors" . In this talk I sought to provide the audience an introduction to Pythons descriptor features and some basic use cases they might have for them. Following the talk there were some questions that dug into areas that I had not experimented with in regards to descriptors. This post seeks to answer those questions and any other…

Describing Descriptors

Slides available here Oftentimes beginner programmers go through traditional features when learning a language. For Python beginners this might involve variables, control structures like if-statements, while and for loops, dictionaries, and finally classes. However, if we read the Python documentation we find that another feature that can be used in Python is that of the descriptor protocol.…

Getting started with Python testing

"People also underestimate the time they spend debugging. They underestimate how much time they can spend chasing a long bug. With testing, I know straight away when I added a bug. That lets me fix the bug immediately, before it can crawl off and hide." -- Martin Fowler Testing your code is a common practice that I feel requires more attention. During my degree there was a period where unit tests…

Explained Simply - P vs NP

Recently I was asked to explain a complex topic simply. I had the opportunity to choose any topic of my liking and so I chose the P vs NP problem. What is it? The P vs NP problem is one of the seven Millennium Problems put forward by the Clay Mathematics Institute, which will award $1 million to the person or group that solves the problem. The problem statement is simply put, does P == NP or does…

Chasing Pythons Recursion Limit

I recently saw this post on Facebook, annotated with "Unless you use Python": Credit Computer Science Memes for Travelling Salesman Teens This led me to want to contradict the statement, although probably not recommended. So, lets consider the following python program: import sys def recurse(n): print(n) recurse(n + 1) if __name__ == '__main__': recurse(1) It is a simply recursive program which…

On Finishing University

As of last week, and pending results, I completed an exam signifying the completion of my bachelors degree in computer science at the UNSW. In this post I will endeavour to ramble, hopefully not too freely, on the changes I have noticed within myself over the past few years. Now before I started my degree there was a period of time where I needed to make a decision about my future. What do I want…

The Sydney Train Carriage Problem

Living in Sydney it is inevitable that I travel via the public transport system, after all the highways are so congested that there is no other option unless you're in a position to pay exorbitant housing prices, but that's another story. On the Sydney trains, each carriage has a unique 4 digit number, usually preceded by some letter, printed up on the interior wall. They look like this: It has…