8th April 2019
Cian Foley has combined two passions in life – healthy eating and developing clean and tidy code. As NearForm’s latest superfan of React Hooks, Cian is the person to speak to about emerging technologies.
We started the discussion talking about food – but it all links back to building great tech, in the end.
Where are you based and what’s your role at NearForm?
I’m a Full Stack Developer, based in Waterford, and work with clients across the world. Full Stack Developers are expected to roll up the sleeves and jump in at any level in the stack, from the database to front end.
So you’re near enough to headquarters to work either from there or from home?
Yes, and there’s a big incentive to go into the office because the food is amazing. I am not sure if our chef, Mark Lanigan, has a Michelin star but the food is Michelin star quality: fresh fish, fresh produce, freshly cooked and it’s so tasty.
I’ve noticed your background in food and dieting – and even body-building. Tell me about that.
I wrote a book called Don’t Eat for Winter and published my thoughts on how to eat differently. Our modern-day diet is heavily loaded with a 1:1 ratio of fat to carbs. In nature, these are foods that natural beings would consume in Autumn to fatten up for Winter, such as a squirrel eating acorns. I used to weigh 256 pounds, several years ago, as a sedentary software engineer. I lost 90 pounds through a new form of dieting – I even entered a national male physique competition last year and came away with a bronze medal so I was very pleased with that.
Such an interesting sideline that you have. Back to the day job though – what projects are you working on at NearForm?
I’m currently on a short-term project for a large telecoms customer – we’re basically extending their online catalogue of products and services over their high-speed networks. We’re adding new features, improving accessibility and so on, in order to provide a more unified and streamlined user experience. Due to confidentiality, I can’t say too much, but it will be a publicly-facing service to a lot of customers in a large country. On completion, it should result in an improved uptake of services.
What is trendsetting for developers right now?
I recently trained up on React Hooks, and I think it’s a game-changer, from a developer point of view.
Why is that?
Developers are mostly thought of as keyboard warriors, hammering away at a screen in a darkened room. How do you get into the zone to write code?
I start the day by checking in – check emails, check in with my team, look at what’s shared on Slack. We work to an agile process – there are stories in a sprint that we’re working on for typically 2-week blocks. We work to tasks under these stories that have come out of the planning session, complete them and mark them as done. Typically, tasks are taken on by team members who are best suited, most experienced in a particular area.
When I sit down to write code it’s almost like being hypnotised, getting into the detail of solving a complex puzzle. It’s all about problem-solving and getting into a flow. When we run into a hurdle we check documentation or Google the problem to quickly find a solution. It’s really important for me to have a very quiet environment, so working from home is good in that respect.
One criticism I have for the agile process is kudos during demos/retros. Sometimes stakeholders get involved in this and often developers working deep in the stack can be excluded as their work isn’t as visible as a cool front-end feature that everyone can appreciate. I think kudos is best left between peers on a team and if stakeholders wish to give kudos it should for the entire team. The last thing you want is developers competing for a rub on the belly.
By embracing open source and remote working, NearForm’s culture ensures its developers are constantly upskilling.
You’re characterising your work as very collaborative with the community of developers – not just at NearForm, but those around the world.
The key thing about being a developer is not how to solve a problem, but how to find a solution. We don’t waste time reinventing the wheel. You don’t need to know or solve every single thing yourself – because someone else will have shared a useful solution on GitHub or other forums.
Are you self-taught or do you have a degree in CS?
I studied at the Waterford Institute of Technology, and after my degree, I spent eight years there in the TSSG as a researcher.
What’s new in software development?
Technology changes all the time. In my career I’ve used C++, Visual Basic, Java, PHP and various frameworks for each – you have to pick things up as you go along. There’s always a learning curve. Now, Node.js and React are what I use mostly, and I’ve found them to be the most enjoyable to work with, because of all the open source tools and support available.
Is developing more progressive nowadays than it was before?
The cloud changes everything. Serverless computing as well. Just to get up and running is much cheaper. Front-end development has switched entirely to web and mobile, and it has matured. The front end is far superior to even three or four years ago. Now a lot of tools are free, and a lot of the grunt work of developing code has been taken away.
What has changed for enterprises?
I worked at an internship in a bank 20 years ago, building Windows applications. That was in Visual Basic 6. In that time period, applications were very heavy and OS specific. Now, things can be light and run on any platform. Highly-tested code is available for agile development. It’s a different world.
Is that the point at which companies tend to approach NearForm: when they’re seeing the dangers of not embracing that new world?
A lot of companies are living in the old world. They’ve gone on for years with the same technology – because, in their minds: ‘Why fix what’s not broken?’ Even these companies are coming to the realisation that if they don’t modernise and keep up, they will quickly become obsolete.
Customers are coming to us because they recognise that we have experts in every aspect of this new world. We have experts in software processes, architecture, DevOps, databases, web front-end, native apps, design, online marketing and analytics, literally all aspects of software development – if a customer needs it, it’s there and available and we have the breadth of expertise to understand how best to do it and avoid the pitfalls.
Companies we work with tend to quickly reap the benefits of the new world. Freeing up time is one key outcome. Using developments in technology to run things faster or to replace slower, outdated processes allows for that time to be spent on more useful pursuits.
How does the culture in NearForm lend itself to excellence in your work?
By embracing Open Source and having a highly collaborative team. All our code is reviewed before merging with a system or library, there’s always a stage where we get feedback from other NearFormers. These constructive reviews keep us on our toes and make us write better code. Our skills are constantly kept up-to-date because of that sharing mentality – because of Open Source and collaboration.
We also are practitioners of Inner Source: when a company takes the Open Source, collaborative mentality – sharing modules, and the agile way of doing things – and brings this way of working in-house.
Does the younger generation of developers have it easier?
The younger generation has more tools than we had when we started our career. My advice to a young coder would always be to look at Open Source code to learn your trade. All companies should look at exposing code that can be used by others, that people can benefit from. There’s no point in reinventing the wheel. Facebook is built in React – that’s Open Source. Paypal is putting a lot of Open Source code out – Google embraces Open Source – the biggest and best companies are going that way, and I think smaller companies should embrace Open Source too – there are so many benefits when individuals and companies put out useful reusable software as it improves the library for everyone including the creators, which ultimately improves the quality of the solutions they’re embedded in.
Any other technology trends you’re seeing now?
Material-UI. It’s a really elegant way of theming an application. It’s a really well implemented React styling and component framework using Google’s material design guidelines. We used this to create a complex MVP in a recent project for a large multinational – it was great to use and the customer was delighted with the results.
Next.js is another tool that’s helping developers build multi-paged React websites, hooking in with web servers like Fastify for server side rendering. And I’ve already mentioned that React Hooks is a gamechanger for simplifying react development – you can read my latest blog post about it.
Writing code is an artistic feat as well as technical. There’s a certain amount of creativity that goes into it. I don’t think computers can replace developers – not for a long time anyway.[
What are some common failures or problems that you see a lot of companies facing?
Sometimes people get too used to one way of looking at things – and then when something new is introduced, two camps can form on either side of a debate setting up a “them and us” scenario. This can cause internal and external politics and drive mistrust between people, I guess it’s natural, but I think being curious to new ways of doing things and be as open-minded as possible as a culture circumvents this quite a bit. It’s also important to understand developers get anxious with FOMO when there is excitement about a new technology. There’s so much going on, it’s impossible for developers to be an expert in everything, and so continuous upskilling should be a priority to alleviate this. Thankfully NearForm is sensitive to this.
I see the same in the dietary world – when people are too sold on a particular methodology and can’t judge others clearly for their merits. There are lots of things that are true when looking at them from different angles, but maybe there’s just one truth?
Any other trends to look out for?
gRPC – a remote-calling procedure initially developed by Google – is a more structured way of creating and consuming microservices. It’s an inter-service communication protocol that enables someone to write code on a local machine and call server-side APIs as if the service was on the same machine. It’s a bit like CORBA if anyone remembers that? We have done some work integrating gRPC with Fastify, an extremely fast and flexible web server, to connect to services implemented with gRPC from web clients easily.
What are your thoughts on AI? Will it change the world dramatically for developers?
Writing code is an artistic feat as well as technical. There’s a certain amount of creativity that goes into it. I don’t think computers can replace developers – not for a long time anyway. An AI algorithm has its place, for instance, enabling a machine to sift through a million photographs of fingerprints to catch a criminal – but the nuance of problem solving still has to be done by humans.
Any parting words about working for NearForm?
NearForm has been a challenge for me, but it’s an amazing place. It’s rare to see so many developers who are so passionate, and it’s rare to see our development process in other companies. It’s modern, efficient and it embraces Open Source and remote working. Remote working alone has made NearForm attractive for some really talented developers around the world.
It’s like a good football team – if you get a really great midfielder on board, then other talented players find out about it, and want to join up because being on their team improves everyone’s game!
Thanks so much to Cian Foley for opening up about your worlds – both as a developer, as well as your passions outside of work in fitness and dieting.
You can also connect with Cian on LinkedIn .