Meet the Wondermakers - Interview with Mike Parry
02 February 2021
Mike became a core part of the Development Team back in 2018. He fully immerses himself in his work with each client, and is currently working on some fascinating software solutions which will dynamically change the way one of our clients will connect with their target audience.
We caught up with Mike to find out more about how and why he became a software developer, and delving deeper into his role at Digital Wonderlab
Tell us a bit more about you, your career path and what your role is at Digital Wonderlab?
Like many people in the software world, my journey didn't start with Computer Science. Mine started with an Math degree from Bath University, though admittedly that included elements of software.
By chance I found my first job on my doorstep, a software consultancy within Bath itself. Through them I worked in telecommunications, automated testing, business intelligence, and in one area I'm not supposed to talk about. Since then I've worked on an incredibly complicated data management application, an incredibly antiquated CRM system and a personal attempt at a cryptocurrency tracking platform. At Digital Wonderlab I call on all I've learned to build bespoke software for many of our awesome clients.
Why, when and how did you get interested in being a Developer and coding? How has this progressed?
At age 12, I thought that my dad's job as a programmer sounded cool, I wanted in. I was already using his old Commodore 64 to play games, but then I found out that if I could learn a bit about a language called QBASIC, I too could be a programmer. The feeling of being able to communicate with the most powerful tool ever devised and get it to do what I want stuck with me. Since then I've never stopped learning and I've been able to ask computers to do more and more interesting things.
What programming language do you prefer? And why?
I am quite deeply invested in the Microsoft stack both at home and at work and C# is a magnificent ringmaster for all kinds of modules and programs. There will always be something else to know about it - but with a grasp of the essentials it can do just about anything. The language is clear, concise and really makes you think about what you're doing.
Tell us about your approach to a project, how do you start a new project with clients?
Discovery is important - understanding what it is the client needs and wants. I get involved in adding ideas or illustrating what can be done with tech. In terms of actually writing the code, I like prototyping. I will make lots of assumptions and get one specific thing working in the simplest way. From there I make it a little bit cleverer and get that to work. By gradually taking away the assumptions and replacing them with robust code you end up with something flexible and fully featured.
What are the key elements of a project build for you? Do you have any “go to” tools or techniques you use to help you create beautiful code for client projects?
Through the years I've come to value the model/view/controller methodology. It's an industry standard for a reason! Think of postal chess - when I make my move I have to consider the rules, or the logic of the game, to decide what to do. That's the controller. I then send you a description of how to update the positions of the pieces, that gives you the model. Finally, you move the pieces around your own board so you can visualise it - the view. By splitting up logic, data and presentation I can easily change any bit on it's own. I could get a shiny new chess set in the middle of a game and keep playing because the rules are the same and it represents the same game state.
Which top tips do you have for anyone thinking about a career move into coding and software development?
Learn by doing! Don't be afraid to start small. The first program I wrote on that Commodore 64 was a multiple choice quiz with one question and three possible answers. But by doing that I learned what an IF statement is.
I find that a lot of online learning resources try to teach too much too fast. Slow it right down, learn one thing at a time. If a concept doesn't make sense then I guarantee you're not the first. Put it down and come back to it later. The good news is that most industry standard programming languages use the same fundamental concepts so it gets easier.
What's your favourite bit of tech that you cannot live without?
Some might say I'm 20 years too late to be impressed by the internet - but honestly it's worth appreciating. Almost all of the software I write is used by people in an internet browser, or at the very least depends on the internet under the hood to do its job. Beyond that I use it to communicate with the team, with friends, to find answers to problems and to watch those all important cat videos.