The hard part is getting a clear and unambiguous set of requirements.| tomgamon.com
Getting the level of detail right is key to effective communication about a project.| tomgamon.com
Some ways of utilising Javascript without it being all, you know, Javascripty| tomgamon.com
Yes| tomgamon.com
But not quite as creepy as clowns.| tomgamon.com
A collection of interesting bits and bobs that I read, watched or listened to during this month.| tomgamon.com
Some solid advice from Seneca Jr.| tomgamon.com
I run, we run, we two run, we three run| tomgamon.com
A few slack conventions that we find useful as a team.| tomgamon.com
A collection of interesting bits and bobs that I read during this month.| tomgamon.com
I think we need a better way to track changes within a team over time. I propose borrowing the versioning system we use in software and applying it to teams to track change over time.| tomgamon.com
A lot of constraints are not that constraining after all.| tomgamon.com
In this post, we use a tenuous analogy to look at breaking down a project.| tomgamon.com
In brief, we dedicate one day a fortnight to learning and personal development.| tomgamon.com
A bug we wouldn't have been able to solve without a native Mandarin speaker.| tomgamon.com
Using the John Rawls' thought experiment to reflect on best practices| tomgamon.com
We need to re-define efficiency by redefining what we consider waste.| tomgamon.com
I wonder if we need a different framing for developers that span the gamut?| tomgamon.com
Designing a good programming language requires as much of an undertanding of how humans communicate as it does the machine.| tomgamon.com
A useful quote from Eskil Steenberg| tomgamon.com
What is the solution we could put together in a day? A month? A year? What are the tradeoffs between them?| tomgamon.com
No, you will not write as much code as you think.| tomgamon.com
Sometimes, you don't need an opinion.| tomgamon.com
Digging depper to find the underlying MySQL error.| tomgamon.com
Don't confuse visual order with functionality.| tomgamon.com
Having a variety of different types of support can help you move faster.| tomgamon.com
Clarity of communication is one of the most underrated skills as a developer.| tomgamon.com
The true cost of programming is not the merely writing code, that is relatively straightforward. The true cost of programming is building up, maintaining and communicating theories about both the problem and solution.| tomgamon.com
Research by Microsoft suggests that organizational sturcture can be a better indicator of code quality than other measures such as Code Churn or Code Complexity| tomgamon.com
Apparently the human retina can transfer data roughly the speed of ethernet.| tomgamon.com
A simple script which scans your schema file and detects indexes which are potentially unnecessary.| tomgamon.com
Assuming good intentions can make your day less stressful. If you don't trust me (understandable), trust these other people.| tomgamon.com
Truncating tables is a much quicker way of clearing out a large amount of data from a table.| tomgamon.com
How to reset a Kafka consumer offset on AWS| tomgamon.com
Spreading a new idea is sometimes complex.| tomgamon.com
Good meetings have three elements.| tomgamon.com
An exploration of the idea that if running code contributes to global warming, running inefficient code is morally wrong.| tomgamon.com
Form an explicit hypothesis whilst debugging.| tomgamon.com
A small tool to help you hum remotely.| tomgamon.com
An amount of stress is required to allow people to flourish.| tomgamon.com
Designing good software is like dating, you don't commit immediately.| tomgamon.com
By putting in the effort upfront, information can be a lot more digestible.| tomgamon.com
How to sync files via Dropbox to a linux server.| tomgamon.com
Today I learned about Benfords Law.| tomgamon.com
Some learnings from debugging ssh for my Raspberry Pi.| tomgamon.com
A git helper to see all changed files on your branch.| tomgamon.com
A git hook to prefix your commit messagees with your Clubhouse ticket number.| tomgamon.com
A tiny script to bump your version number.| tomgamon.com
Easing the pain of moving from Rubymine to Vim.| tomgamon.com
A talk I gave in 2019 on alternative ruby implementations.| tomgamon.com
How to setup automatic profile switching in iTerm 2.| tomgamon.com
I am a software engineer based in Melbourne, Australia.| tomgamon.com
Programming is, primarily, a loser's game| tomgamon.com