As CTO of Clock, it is the job of Paul Serby to define and deliver the best technical solutions for our clients. So we decided to ask him a few questions on the latest trends to get his insight on what is important and relevant, covering everything from Progressive Web Apps, to hybrid and native apps, search strategy, technology frameworks and climbing!
Q - I wanted to grab a few minutes of your time to ask your thoughts about some of the hottest tech trends in web development. So first up, Progressive Web Apps - why should clients be thinking about them?
A - Progressive web apps allow users to have near App like experiences on the web without the need to install from an ‘App’ store. Offline content, background sync and push notifications are all possible with Progressive Web Apps these days.
Any client who wants to engage with their users with the best possible experience should be investing in progressive web apps.
Q - Search is obviously a big thing. What do clients need to know and what do they need to think about when developing search strategies for their platforms?
A - If you just want a public site search then my advice is to always do deep Google integration, using the power of Google for searching and ranking but with full control of the presentation of the results. There is a bit of lag in crawling the site, but this is fine for most websites. If you have a product or content catalogue then you need to think about a powerful faceted search for your site, think Autotrader or ASOS. With faceted search, you need to ensure your users don’t end up on empty results set and have their filters applied in realtime without the need to press a button after every filter is added. Quick and powerful is the aim here.
Q - Inevitably, I am going to have to ask about Machine Learning (ML) and Artificial Intelligence (AI). Should all clients be incorporating some element of AI or machine learning into their strategy for building web applications?
A - There is an ML application for most clients. It might be in the form of analytics, sentiment analysis or suggesting products or actions they might want to carry out. With services like Watson from IBM or even custom rolled solutions, building ML models has never been easier, you just need the data and the ideas to implement them. We are pretty excited about ML/AI so if you want to add value to your customers and have good data Clock can help work out the options you have for creating value for your customers.
Q - Best technology framework for developing websites and apps. And why?
A -React is still the standout favourite and below that we are currently favouring next.js over alternatives like Gatsby.js. The age-old problem with frameworks is when they do too much you become dependent and constrained by them. Light frameworks such as React, or Redux, that do one thing and one thing well, with a separation of concerns, is always what to look for if you want to build a platform that can evolve and adapt over time.
Q - Hybrid App or Native App?
A - It really depends on what you are trying to do and the performance you require from your App. If you are building an App alongside a website and you want it to be an extension with the same look and feel, then a hybrid app is the way to go for sure. There are fewer native App like things you can’t do on the Web these days, so with hybrid Apps you can benefit from a lot of shared development across the projects. Anything that really needs true native, such as with the OCR code scanner we built on the Sun Savers app, you can still build as a native extension and plug into a hybrid app. The other big advantage with hybrid apps is they are easy to maintain for Apple and Android requiring very little change.
If exceptional performance like with a game or augmented reality, or if all your features require native functionality such as camera, sensors or access to the local storage, then you’ll be better with a truly native app.
Q - What do you look for when choosing the new technology for Clock?
A . - Mostly I look for technology that does one thing and does that one thing well. And with beautiful simplicity. We are builders and we want the blocks and materials that allow us to create and invent as quickly, with as little complexity as possible. That allows us to use all our imagination. Bloated technology that claims to do it all in one box, rarely lives up to expectations and often can’t be melded to match our ideas or the full requirements of our clients.
Q - What advice would you give companies when looking to engage a web development agency?
A - You get what you pay for. Look for passionate people who focus on keeping the end-user engaged and safe. Each agency will have its sweet spot, look at the case studies, have they already solved the kinds of problems you have, do they understand the domain, what are they like to interact with. Building digital products take a lot of work and you are going to be in the trenches with these people, make sure they share your vision and that you believe in them.
Q - You have done a fair bit of coding in your time. What’s your favourite piece of code that you have ever written?
A - I love to code and design software, shaping features and products every week, but some of the code that I’m most proud of often sits behind the scenes, making things more secure or more performant. For example, writing a thermal printer driver for a product we developed into a sister company: SwipeStation. I built it in JavaScript which was great fun and a nice change as hardware hacking isn’t something you do every day in web development. The all-time favourite has to be the data schema and validation module that I built in 2011, it is at the core of everything we’ve done since and is still going strong.
Q - An approximate estimate on number of lines of code you have written in your lifetime please!?
A - It is just as much about how many lines you remove as how many you add. My role is often to refactor work and I can often remove more lines of code than I add on some weeks. For every line of code, there is an increased likelihood of error so the less code you have the better. I would estimate about 100K lines of code a year, so over my life it has to be somewhere around 2.5 million lines of code. Wow, that is a lot of bugs!
Q - Finally, you love climbing and coding. Both require skill, endurance and solution finding. Which is more challenging and why?
A - Climbing is certainly more of a challenge. With coding you develop and grow your skills and knowledge and if you take a break, it doesn’t take long to get back up to speed. With climbing while your technic remains in a similar way, your strength and power takes a long time to build up and goes very quickly if you don’t train. Climbing unlike coding is measured against a grading system so it keeps you honest, you know at all times, how good or bad you are, and how hard you can climb. With coding, you have no idea if you are the best developer in the world or the worst. This can make developers, including myself, get a little self-assured because even when they are doing a bad job, they can look like they are in control. I think it is really important to measure yourself and keep yourself grounded in all that you do. Setting goals and letting yourself be compared to the best in your field, is a great way you can be honest with yourself and those around you. It doesn’t matter how good or bad you are, being the best in the world isn’t the aim. If you can best you can be, add value with integrity then you have already won, and with that mentality, you’ll keep on winning.