Welcome to 10 Questions With, a blog series where we get to know members of the Xamarin community a little bit better.
1) What's the first thing you do when you start working in the morning?
I usually check Slack for any support issues for MFractor and also quickly browse through my JobAdder emails.
Other than actual work, I love walking into JobAdders office to start my day. Sydney is beautiful most of the year and the 4k walk gives me a bit of exercise and gets me geed up for my day!
2) What superpower do you wish you had?
To write less bugs!
Otherwise being able to fly would be pretty sick; it’d save a lot in commuting expenses as well!
3) What's one thing that you do when developing software that you know you shouldn't?
I often skip using interfaces, ignore design patterns and use anti-patterns like singletons for the sake of quickly shipping features. I’m fully aware this creates tech-debt but often my priority is to just get a feature into the wild and get feedback on it.
Interestly, there are large sections of MFractors codebase that use “best practices” and let me make new features very easily. So rationally I know I pay for these shortcuts but it’s always a fine balance between shipping something or trying to make it subjectively perfect.
4) What makes you happy?
I love it when MFractor features delight my Xamarin peers. I’ve spent a big chunk of my 20’s building the product so it’s fantastic when I make someone's day a bit brighter with MFractor.
Outside of work, I’m an avid rock climber. I’m most happy when I’m wearing a pair of climbing shoes, a harness and am crushing a climbing route:
5) What first got you interested in software development?
Video games; my original degree was a bachelor’s in video game development where I learnt about 3D graphics, AI, network programming and lots of other fun stuff. When I graduated I converted my games skills into a job at migenius, a computer graphics firm, where I worked on real-time photorealistic rendering software.
6) Where in the world would you most like to live?
I’m an avid rock climber so I’m intending on settling down in the Blue Mountains some day. The Blueies is a climbing and outdoors wonderland about 2 hours west of Sydney; I spend most of my weekends out there so it’s only natural to eventually settle down there. It also has some of the most incredible sunsets I’ve seen!
I’d also love to live in Tonsai, Thailand for an extended period of time. Tonsai is another climber's playground of limestone, beaches, great food and cheap beers! How could you say no to that?
7) If you weren't in software, what would you be doing?
I’d probably be a climbing guide! If I’m not building MFractor I’m typically in a climbing gym or scaling up some epic cliff around Sydney. I’d love to continue developing my technical skills in climbing and start doing more ice climbing and mountaineering. Maybe one day :)
8) What's the most overrated software skill?
This is going to ruffle some feathers but aggressive unit test coverage. While unit tests are great to verify expected behaviour, I feel that unit test coverage is often used as a developer KPI without really thinking if it’s the best use of engineering resources. You can also get good software quality by using a decent QA person (who is much cheaper than dev) and focus a developers time on the essentials like architecture and quality code.
I consider myself a product and business oriented developer so I recognise that I’m biased towards shipping a delightful product somewhat at the expense of best practices. For the size of MFractors codebase, I have barely any unit tests 😱
9) What music do you listen to while you're coding?
Mostly electronic dance music as I find I can just switch off, ignore distractions and cut code. I’m a huge fan of a particular genre called Melbourne Bounce that’s pioneered by artists like Will Sparks, Timmy Trumpet and Joel Fletcher. Having grown up in Melbourne, Australia I guess there is something homely or nostalgic about it.
10) What's your motto?
This is a big one when it comes to creating MFractor and it’s how I prioritise my time: “That’s a future Matt problem”. When you’re developing a new product, you always feel out of your depth and every little task feels like it needed doing yesterday. When I classify something as a “future Matt problem”, I’m acknowledging while the work is important there’s usually more useful things we can do now that have a bigger impact.
Bonus! What's next for you?
This shouldn’t come as a surprise but MFractor for Visual Studio Windows. Tom and I will continue aggressively developing MFractor for Visual Studio Mac but we know there is a pressing need for MFractor on Windows. So yeah, I guess that’s a public announcement that we have started on MFractor for Windows :)
Bonus 2! Where can people find you?
In Sydney Australia 😂