Andrew Williams is one of the most revered technologists in the Scottish software scene. A computer scientist by trade, he has held a multitude of roles and responsibilities working across a variety of different businesses – including Kotikan, FanDuel, Administrate and Criton. His path to leadership has seen him hold roles including COO, CTO and now CEO of his own business – Fyne Labs, providing expertise in cross-platform application development.
Andrew is also a published author, with his latest book (Building Cross Platform GUI Applications with Fyne) available to order now.
Andrew spoke with Hamilton Forth’s Josh Moreland, – answering questions on his experiences working in the Edinburgh tech scene, his perspective on the evolution of the software landscape and his predictions for the future.
What does a typical day look like for you?
I like to start the day with a plan – so the first thing is to check my emails and messages to see how that will have to be adjusted! I make sure that my schedule and plan match up, as meeting requests can come in overnight.
After this I work through incoming support requests, new issues and pull requests that need comments. Once I have covered everything from the community, I try to get some bugs fixed before lunch. Afternoon is when I get a chance to work on the main aim for the day – a new product feature, documentation, or tutorial normally.
I like to have work catch-ups and brainstorming sessions where possible, at a minimum we end the week with a community video call to discuss project progress and direction.
What were your ambitions when you first graduated from The University of Edinburgh with your Computer Science degree?
I think my main hope was that I would make some cool things that lots of people enjoyed using – software is a world of possibilities and so I felt inspired to ignore current constraints and see what could be possible.
Something that has stayed with me since graduating is the desire to have created a product or technology that is seen to have a positive impact on society. Interestingly enough I think that I’ve had a bigger impact through creating and growing teams of software engineers and support their development and work – which is a role that I fell into rather than planned.
What advice would you give to those looking to pursue a career in commercial programming?
Mostly I would encourage anyone to ignore what others tell them are limitations or things that can’t be done. I’ve found some of my most enjoyable work building the impossible or working together to solve terribly complex problems.
Go out and find something that interests you, play around with it and see if you can find a way to improve the status-quo. Remember that we are in an industry where you can demonstrate your skills through Open Source development or a portfolio of projects. When recruiting new software engineers, I find personal apps or side-projects to be far more helpful than qualifications or work history.
What are your predictions for the evolution of technology, particularly in software?
My hope is that the software industry will mature – the speed at which tools change and best practices develop is a real problem for people looking to get into a career with software development. The basic principles, which everyone should learn, have not changed much in 50 years, so I see a lot of the ‘gatekeeping’ as people defending their knowledge rather than embracing newcomers and learning together.
What I really think will change is that we will continue to see programming become more abstract (i.e. hiding the details). We are getting close to the point that what operating system you run does not matter, and to some extent the hardware does not either.
We should continue to focus on why we build software (for the betterment of society) and try to avoid the vendor lock-in/sandboxing that commercial entities in this area are pushing for. Software, and to some extent data, should be free so that we can build on each other’s work.
What career advice would you give yourself when you were younger if you could?
Always push yourself. If you’re not feeling a little out of your comfort zone then you’re not learning/growing.
Also you should take an opportunity when it arises – who knows where it will lead, but you can be sure that ignoring it goes nowhere new.
Thinking about the evolution from employee to tech entrepreneur within the start-up scene – what prompted this move for you and what challenges have you faced?
I only really held one traditional job in technology, straight out of university. It was a great opportunity to learn but I realised, eventually, that places that train graduates don’t always offer them career progression and so I needed to leave.
At that time, I was fortunate to get offered a chance to be a founder of a new start-up and so myself and a group of talented young engineers that I barely knew rented an apartment in San Francisco and started building something new. That particular project ended badly, but the experience was amazing – collaborating, enjoying work and social time, doing something that mattered all inspired me and I knew that I would never return to the ‘9 to 5’.
Since then, I have been involved in founding or supporting many start-ups. Some go well, some go badly, and others I help for a while and then move on to another endeavour. In any challenging project or ambitious adventure there will be difficult times and struggles – the thing that makes it all worthwhile is when a team comes together and makes a big success – this euphoria is worth all the hardships.
If you weren’t working in technology, what other route do you think you would’ve pursued a career in?
I think that I would have been a mechanical engineer. I have pursued various hobbies and projects over the years but the one that keeps going is model engineering – as evidenced by the miniature railway that runs through my garden.
There are many similarities between software and mechanics, including the way that sometimes it just doesn’t seem to work, but when it does the results can be beautiful.
You established FyneLabs in 2020 – tell us a bit about the organisation.
This company was created to support and promote the Fyne project. We believe that it should be possible to write native applications for all graphical operating systems using a single codebase and that a modern programming language makes this much easier. It turns out that building all of the APIs and tools to support this is a lot of work, so I created the company to help support this.
Fyne Labs manages sponsorship and finances of the project and provides the sort of contracts that businesses want to see when relying on a new technology to build their products on. We also work to promote the toolkit by publishing cool apps that show off its functionality and help other organisations contribute to the project.
We are growing all the time and taking on new work – a percentage of all profits from commercial activities go directly back to the Open Source community.
If you could invite two people to a dinner party (living or deceased) who you choose and why?
My first guest would be Sir Tim Berners-Lee, he is an inspiration of the connected age and also a really great guy. I had the pleasure of speaking to him once in passing and I really want to carry on our conversation. Mostly I want to learn the ways in which the internet has not lived up to his ambitions and how he (or we) could go about fixing it!
I would also really like to chat to Charles Babbage. Clearly an important name in the history of the computer I would like to learn how he came up with his ideas and what he would think of a completed analytical engine and what the concepts he founded have led to. Mostly I think that his work to make digital programmable elements from mechanical components is fascinating and the sort of inspirational leap that creates a generation of possibilities.
You’ve recently had your second book published – what can readers expect to learn about if they get their hands on a copy?
In my previous book I compared various ways that you can build graphical apps with the Go programming language. The background work required to write the content reinforced an idea that many existing technologies are too complicated and that a fresh approach is desirable.
In this new book we go into much more detail about the design behind the Fyne toolkit and how it rethinks a lot of the old assumptions to help build better apps, faster, and for all standard platforms.
By following through the book you will learn everything from the first lines of code through to distributing apps to desktop and mobile app stores. We cover five fully worked apps including a small game and a water tracker app, each of which build on what was learned in previous chapters.
The hope is that by better documenting the possibilities of a fresh approach to app development we can help encourage more people into software development. Never before has it been easier to build beautiful and performant native applications with a single codebase.
To discuss your IT and Technology recruitment needs contact [email protected]