Tell us about yourself. What was your career path before you joined Aveni?
My background is with start-ups and building out companies. When I was much younger, I developed games for Sinclair Computers and automation software for manufacturing. I started my first company in 1999, building software for call centres and retail industries. Back in the 90s, my team built the world’s first EPoS system that used browser tech on the internet, something most EPoS systems do now and which I’m very proud of. The following year, our CEO won world entrepreneur of the year and I spent a couple of formative years steeped in that environment.
Immediately prior to Aveni, I ran a small dev agency called Ginger, we worked with the broadcasting, fintech, charity and retail sectors – wherever we could find interesting and tricky problems to solve.
In the last 20 years, I’ve founded several start-ups as well as helping numerous companies that were stuck in a rut with poor tech choices and demotivated teams. As a consultant, I love helping start-ups succeed and as CTO and Co-founder of Aveni, I’m focused on building a successful business using great tech and great people.
Why did you co-found Aveni?
We founded Aveni initially to shake up the financial advice industry. We saw there was a gap where machine learning and great engineering could change the industry for the better. The existing founders had some good ideas, I had the engineering insights and product focus to make it a reality and off we went.
I love a challenge, I enjoy thinking creatively and finding new solutions to old problems, so start-ups are the perfect conduit for me. In all honesty, I just like a good old challenge, we only get one shot in life, so I’m going to take the most interesting path through it that I can.
What does a typical day look like for you?
One thing only I know, and that is that I know nothing. Every day is a learning day. I typically turn my Macbook on somewhere between 9 am and 9:30 am. Catch up with any slack messages, then go about building out our proposition with the team.
Most of my day is spent with the team working on the product stack, coding and pairing. But I also spend a large part of the day in meetings with clients and with the management team, working out the details of our proposition and managing expectations.
I love it when my calendar is free and I can just get stuck into a tricky tech problem. I also like to have regular breaks and take my spaniels out for a walk through the hills of Aviemore where I live, often solving problems in my head as I go.
What does the Engineering team do at Aveni? How do you work as a team remotely?
The engineering team is responsible for developing, deploying and supporting the entire Aveni platform stack.
We build the frontend, backend, machine learning platform and the entire product lifecycle. We come up with product ideas, do the analysis and deliver a product. We have several data scientists in our team, and we all work together to not only discover the art of the possible but make it real.
I’m a massive fan and advocate for the Scrum/Agile framework. I truly believe in teamwork, sharing and empowering full stack developers to do the right thing. All our team members are multi-disciplined and learn from each other, we fail together and we succeed together. The team is geographically dispersed, so we are used to pairing remotely, so not much change except for our absent after-work social gatherings – which we hope to change in the near future as we come out of lockdown 😬
What kind of technology do you use in your day-to-day operations? And how does the Engineering team decide what kind of technology to work with?
Our platform runs on AWS infrastructure. We use serverless technology everywhere – from our databases through to our serverless APIs and Auth platform. Scalability is traditionally a big problem for start-ups, so I’m keen to choose the best tech to enable us to grow quickly.
Our frontend and backend are written primarily in Typescript, with some Python thrown in the mix where appropriate. Having TS on the front and back means less context switching and more code sharing. Our web apps use React, and our APIs are Node JS. We use VSCode, Slack, Gitlab, Figma and lots of other nice goodies. I love automation, I’d love a bit more time to get this perfect. As developers, we always try to minimise our future workload, and automating tricky tasks helps us achieve that. We choose technology that is easy and quick to work with. As an early-stage start-up, we can iterate fast, inspect, adapt and pivot as required. We choose tech that helps us achieve that.
What is something the engineering team has worked on recently that you’re proud of?
We are in the process of building a game-changing Machine Learning platform that will change the way financial advice is delivered. It’s a massive undertaking, but we are failing fast and learning fast. I’m really proud of the way our team accepts change and pivots quickly. Our team is full of really generous individuals, nobody has an ego, and everyone is honest enough to speak up and point out issues when they arise. I guess, the thing I’m most proud of is our attitude and our ambition and the way we help each other be better.
What do you think are the key elements of a great Engineering culture? And what is the Engineering culture like at Aveni?
There is no single culture at Aveni. The team is made of individuals. Sometimes in this industry, we fall into the trap of artificially trying to create a culture, rather than letting it emerge from a set of axioms. I worked for a large unicorn start-up who had a session on company culture asking everyone to come up with 3 words then voting on the resulting list. This is a massive problem for me, culture emerges if the conditions are right, it can never be decreed. Engineers do what they care about, and that will resonate in the product. They should be able to work well in a team, be keen to give and receive constructive criticism, and be passionate and take personal responsibility for learning their craft. We encourage individualism and enable our staff to achieve their potential, often that is just about getting out of their way and giving them the resources they need and the trust to use them. Matthew Syed’s Rebel Ideas spells out why it’s important to not encourage conformity in a team.
A month with Aveni is like a year with another company, you’ve got to enjoy the pace that comes with a disruptive start-up and like to move fast. For instance, don’t hold on to old code thinking there is value there because of the amount of effort put in, let it go, learn and iterate.
What do you look for in a new team member? And how do you ensure new developers feel welcome when they join Aveni?
I look for passion and excitement. Natural lifelong learners and curious people make the best engineers. Our developer experience is good and getting better every sprint. We make it easy and safe to contribute, and usually, developers have their first commit in their first day working here. Be brave!
Developers need to enjoy what they do and be generous in contributing to the team’s collective knowledge. I’m always saying ‘a rising tide raises all boats’. Give away your old knowledge freely, be that rising tide and make space for the exciting new stuff.
We try to remove tribal knowledge in our team by running ‘community of practice’ sessions where we can all learn together. We also pair as much as possible during our sprints so the knowledge belongs to the team and isn’t siloed.
We heard you recently enjoyed a lovely holiday in the sun! What tips would you share with your fellow redheads on achieving that sunkissed tan?
I don’t tan, I freckle. It’s not going to happen, best scenario, you have a few more freckles that are spaced more closely together and from maybe 20 feet away look like an incredible tan. And anyway, freckles are like seasoning for the skin, they make you spicy.
Join the team!
If you would like to work for folks like Mark, keep a lookout on our careers page for vacancies.