Hi, I’m Gar!  👋
I'm an Elixir and Ruby software engineer with almost 20 years of experience in web development and leading technical projects.
I love the messy work of discovering people's underlying problems so they can be solved. Sometimes these problems can be solved just by talking to the right person, or by bringing clarity to the situation, but it's always fun when they can be solved by code.
If you're looking for someone to join or lead your team I am open for work. Please check out my CV and say hi!
These are some of the things I've been thinking about recently.
- Design makes the world: Engineering thinking is important - we need things that are fast, scalable, and resilient. But none of that matters if you haven't solved a real-world problem. Design thinking - identifying the actual problem to be solved - is where you have to start.
- Bicycles for the mind: Computers are incredible tools and, while they are not the solution to every problem, I love when I can figure out how someone's life can be made easier through the power of code.
- Choose boring technology: Coding is fun! There's always a shiny new technology to play with. But you have to be careful that you don't spend your limited energy shipping and maintaining shiny things instead of solving a real problem.
- Complexity begets complexity: I love the aviation engineering adage of "mass begets mass". Similar to adding mass to an airplane, if you introduce complexity into your system you will end up supporting that in favour of other things. Be sure you need it.
- The mindless tyranny of 'what if it changes?': Requirements change, and you need to introduce some complexity into your system to accommodate that change. But not all requirements as are volatile as each other, so only introduce that complexity if it supports something that is likely to change.