This week, we caught up with MyDrive’s Senior Mobile Software Engineer, James Coggan, to find out what his job is all about.
The path to becoming a Mobile Engineer:
James started his journey to Software Engineering in Brazil at the early age of 12, when he began teaching himself the Linux system. His interest stemmed from his computer game hobby and continued to grow, the more he learned. At 18 years of age, James landed a job as a Junior Linux Developer, maintaining servers, whilst completing a degree in Electrical Engineering. Later, he moved to an international corporation working on Embedded Linux Systems, and supporting the Marketing team.
James discovered Android technology when he invested in his first Android mobile phone. He changed jobs to a role which involved Embedded Linux developing whilst learning the Android system. This naturally led James to mobile app development where he has been working primarily with Android for the last 4 years.
At MyDrive, James has been developing mobile applications on both Android and iOS platforms and explains that mobile app development involves understanding the mobile structure regardless of the code. Once one has an understanding of a system (Android) it is easier to understand another (iOS) due to the transferable nature of mobile development skills. Mobile Engineers at MyDrive develop with Java on Android and are in process of migrating from Objective C to Swift for iOS.
A day in the life of a Mobile Engineer:
James, born and raised in Brazil by English parents, moved to the UK in June 2015 to work for MyDrive. He leads a team of five Mobile Engineers who develop mobile applications used by our Motor Insurance clients for driver behavioural profiling.
An average day as a Mobile Developer starts with a daily team meeting, referred to as “Standup” where the team reviews the Kanban Board, decides which tasks are finished or need reviewing and raises any issues.
When a task is completed, the developer creates a “Pull Request” (a request to include new code into the master code). The Pull Request will be reviewed by at least one peer, who will check the code for bugs, typos and improvements. On creation of a Pull Request, the code will be tested by an automated system. If the tests are successful, the code is approved and will be merged into the master code. “Quality is our first priority, even if it takes longer,” says James. “During meetings, we make decisions about what work will be done and whether we have the time to do it to a high standard. If there is not enough time, we will just do a small amount with quality or not do it at all,” he explains.
Cooperation is a necessity in the Mobile Engineering team. In general, everyone is capable of working on all tasks on the Kanban board. “The Android and iOS applications are similar enough for any developer to work on both platforms. The team’s focus varies according to project priorities and deadlines,” says James.
The most rewarding and challenging aspects of mobile development:
James says that the most rewarding part of his job is finalising clean, good quality code which he can be proud of. Finding a balance between tight deadlines and quality is the most challenging part of mobile developing. “It is very hard to estimate timeframes for coding tasks,” says James, “Unforeseeable problems may arise which require time and research to resolve.”
As mobile technology rapidly advances, James stresses the importance of continuous learning in order to release apps which include the best and latest features. Listening to podcasts from other developers who share their experiences is one way to maintain awareness of fast-evolving industry standards.
Advice for future Mobile Engineers:
For those considering a career as a Mobile Software Engineer, James has several pieces of advice:
- It doesn’t matter which coding language you know – if you have a good understanding, you can always migrate to another (e.g. Java/Swift/Objective C)
- Take initiative to learn and research on your own and try to get access to the latest mobile technologies
- Listen to the advice of others. Books are a good starting reference but they fast become outdated, even by the time of their release.
Does a future Mobile Developer need a university or college degree?
James says that a job in this field does not necessarily require a Computer Science degree. Best practices and developing skills can be self-taught, however he suggests that it is useful to have a degree of some kind which shapes the attitude of a Software Engineer in regards to work ethic, analytical skills and meeting deadlines. Certain characteristics are sought after in a Software Developer such as a passion for developing, a creative and inquisitive nature and problem-solving capabilities. Developers should be open-minded, flexible and accepting of change and new technology.
What are common characteristics of MyDrive’s Mobile Engineers?
MyDrive values software engineers who are good communicators, passionate about their work, proud of their code, focused on quality and open-minded. Whilst having been acquired by international insurance company, Generali, in July 2015, MyDrive continues to function with a startup culture. “The environment is friendly and enjoyable, everyone has a voice and there are opportunities to participate on all projects. People work together to improve the company as a whole,” says James.