We recently invited students from Reigate College to a Taster Day in our office where they met two of our developers, Billy Needham (Tech Lead for Android) and Ben Frearson (iOS Developer). The students had the opportunity to ask Billy and Ben about their experiences and careers as Developers. In this blog, we share the questions and answers to give you a taste of what it’s like working as a Developer in an Award-Winning Agency.
What does a typical day in the life of a developer look like?
Billy (Android): Generally, as a developer there are a few different parts of the job, not just writing code.
At Sonin, we build native apps. Our clients pay for bespoke software. When we receive the app designs, we look at how we can build those pages in code. This means we have to think about the best way to write the code, and quicker ways of working, in order to deliver the intended user experience. Once we have figured that out, we give the design team feedback. Those designs get turned into tickets – an example might be “add ability to download videos and how to present it”. We turn these into flow diagrams of how the code will work and what the process is going to be – before the fun part where we crunch down code!
Next, we build onto a test phone to check if the code works. We then submit our work for peer review using a GitHub source control – so multiple people can be on the same code base. Other developers go through your code to check if it works, see if there are any issues or if the code needs to be cleaner – your code might make sense to you but not others! A famous quote from Martin Fowler is “Any fool can write code that a computer can understand. Good programmers write code that humans can understand.”
Finally, the Quality Assurance Team use the app, trying all possible routes a user would take to make sure everything works as it’s supposed to. Once they are happy, it gets released to an app store.
How did you get into development?
Ben (iOS): I was a physics teacher before and then a pastor, but I enjoyed coding and worked on code in my spare time, building apps and my own website. I worked on my skills when I could. Then, during lockdown, I made an app for my church to help us stream videos. It was a simple app built from reading the swift manual and using online tutorials. After my first experience with iOS, I decided that I’d like to become a full-time developer.
Billy (Android): I signed up to the army when I was 16, but I’ve always loved software and computers. I built little scripts initially and spent as much time as I could learning and doing courses. This led me to do an internship as a developer. I started in web development, then became a hybrid developer. Finally, I moved to a native app developer in Android. Now I’m a Tech Lead for Android at Sonin. One of my favourite quotes from Mark Twain is “Find a job you enjoy doing, and you will never have to work a day in your life!”
What code do you use?
Billy (Android): In Sonin, Android use Kotlin and iOS use Swift. The main thing is to learn the principles of coding because these can be applied to any language. There is not a huge difference between Swift and Kotlin. If you can read one, you can read the other. The deeper you get into development, it is true of all languages in code.
Ben (iOS): In the iOS team, we also use a system called Combine for when we need asynchronous code (this means having to multi-thread code, running independently of your main task). For example, when I am writing code for downloading a video with Combine, I tell the app not to freeze as it downloads the video, so then I can add other actions like a loading spinner. It can then trigger other actions after it has finished.
How long does it take from knowing nothing to landing a job as a Developer?
Billy (Android): I’d say, probably a couple of years. Spend time building up your skills and problem solving.
How can someone who wants to start a career in development build their CV?
Billy (Android): Build lots of stuff! Work on side projects. If you have a GitHub account, upload your side projects to there so employers can look through and can see you can do the job already. GitHub also has lots of open-source code so you can work on these projects, e.g., fixing issues and then use these in your CV. You can experiment with lots of stuff on GitHub with no risk too.
Another route is through freelancing. For example, building your own website or building other people’s websites with places like Fiverr. It’s simple work but it proves you know and can do that job.
Also, be prepared to explain what went well and what didn’t go so well. If you can solve your own problems, you can learn loads about what you are doing and how to improve.
Ben (iOS): When I decided that I’d like to become a full-time developer. I knew that switching careers would be difficult, so I set the goal of working 1 hour a day on a new project, getting up at 6am each day. This new project used more advanced SwiftUI layouts and REST API to receive data from a remote server. After 50 days I had a working prototype that I thought was good enough to show to employers, so I began to apply for jobs. I also built my own website, turning my write up into a 50-day blog for potential employers to read. To prepare for interviews, I read through ‘Cracking the Coding Interview’ and practiced LeetCode problems, because I realised that the interview was going to be a challenge in itself.
How do you handle work-life balance working remotely as a Developer?
Billy (Android): I love it! I finish work and go surfing or rock climbing. Being able to do that makes me better at my job and less stressed – I’m at home already and have no commute.
Ben (iOS): I have children, so being able to open the door and see them whenever is amazing. I have learnt over the years how to manage my time being by myself. If you look at jobs, don’t rule them out if they aren’t remote, there is a lot to say for working in an office and having colleagues around you is valuable. I had to learn how to work by myself and not waste time.
With the introduction of AI, are you concerned for job security as a Developer?
Billy (Android): No, I used to worry about AI but now I think that the last people working will be developers! ChatGPT is good but it still needs testing and building. It is amazing for content – it can even build your CV! 20 years ago, when Google came out people said, “well you don’t need books anymore” and books are still being used! Having used AI tools, it is nowhere near replacing developers.
Ben (iOS): It could speed things up for developers, for example, asking AI to design a website for you, but development is problem solving and explaining the problem is half the challenge.
Billy (Android): Advances in the next few years will take some of the work out of developers as it can help work out hard problems. Tech is always evolving. I started out using ‘Notepad’ which had no help from technology. Now, everything is integrated. If there is an error in your code the system will highlight “this is going to break”.
How did you decide on your specialism within development?
Ben (iOS): I always used Apple products. I had an iPhone and I wanted to use it!
Billy (Android): I started as a web developer and moved over to hybrid but there was a layer of code between yours and the one that runs. So, I started coding in Android and fell in love with Kotlin!
Do you need maths skills to be a Developer?
Ben (iOS): Maths is needed infrequently on customer facing apps. However, I did need trigonometry for integrating a map into an app. Speaking as having been a Physics Teacher, I would say, A-Level Physics is harder than the maths I need in my job!
Billy (Android): It depends what we are doing. A map app might need lots of maths, others might not. Game development is an example of where maths would be used more in the code.
Why do you work for an agency and not a big app development company, like Google or Apple?
Billy (Android): If you work for a big app development company you are building on one code base. It needs to be so concrete. You may only write 10 lines of code a day and spend more time breaking up your code then revising it. In other words, you need to be very careful. A start up, on the other hand, you may write 100,000 lines of code a day! But it can be quite sloppy and messy.
However, in Agency, you get a variety. One week you’re on an app that uses complex software, the next week you are gathering information and producing results.
Ben (iOS): For me, it’s the diversity of working in an agency. To learn from my previous work, using what I learnt last week and seeing that I can now do it better this week is rewarding. Also, I love when an app you’re working on has been released and being able to say to your friends “I built this!”.
What advice would you give for new Developers learning code?
Billy (Android): It is normal to feel overwhelmed! Keep it small, start at one end and push through to the other side. For example, from the back-end, I recommend looking at the giants in frameworks; node,js, Express, React. Why? That’s where the work will be, but don’t try to do it all at once!
Courses are also a good way as learning is directed. You can also use GitHub to experiment in code and learn to solve problems.
How do you know you are competent enough for a job in development?
Billy (Android): I never feel competent enough! Imposter syndrome is a thing many people experience when going for jobs. Interviews force me to go and prepare as much as I can. Put the effort in, that’s where success comes from.