Last week we gave you our insights on starting your career as a junior mobile developer - what skills you should be focusing on, the importance of developing your own code and how to approach the entire recruitment process. Today we wanted to talk to you about what it means to be a senior - the traits that such a person encompasses and what they should be doing to further develop their career. We once again spoke to Patryk and Kamil, who are our resident senior mobile developers about their own journeys and the thoughts that they have on this subject.
Who is considered a senior mobile developer?
This is an important question, and the answers to it differ among different agencies and industries.
Very generally, senior mobile developers are professionals with significant experience in mobile development (usually around 5-7 years as a minimum). If they work as part of a larger team with a more formal hierarchy, they may take on more of the organizational tasks, which include delegating work, liaising closely with clients and even managing project timelines.
They have several years of working experience in this field, but this work is generally done in teams with no strict structure of hierarchy, with senior members taking up more of the organizational tasks, such as delegating work and managing the timeline for projects.
Kamil says: “A senior is a person that has a well-established position. He or she knows the technology and is able to help others in the team. But as the famous saying goes, ‘With great power comes great responsibility.’ It’s therefore important to note that senior mobile developers are responsible not just for their own work, but also usually for the work of other team members and often or an entire project.”
Responsibility for product delivery
As Kamil outlines, one of the most important elements of a senior developer’s role is the fact that they take on product responsibility. Usually, product teams are reasonably small which means that each senior developer is worth his or her weight in gold and their influence on the success of the given product is critical.
One of the key elements of this responsibility is client liaison - and specifically offering advice and guidance on a given product.
It’s important to remember that clients come in all shapes and sizes. Some have extensive technical knowledge (such as CTOs of scale ups and enterprises) and others may know little about it. So it’s important to speak to them at their level.
Kamil says: “It’s not just about offering technical advice. It’s also important that the senior developer or Tech Leader is able to offer guidance from a business perspective. Is there a solution that could work which will save considerable money but have the same impact? Is there a small change that could be made which will significantly improve the user experience? This kind of advice is hugely valuable and will have a big impact on client satisfaction and even potential referral.”
Patryk adds: “A senior developer should offer different solutions to a given challenge. A junior developer might be super keen on a given technology, which may not offer the client the best possible result. Whereas a senior should rise above this and have a much more overarching perspective of the possibilities of working on a product.
Responsibility for the project process
Having covered the important point about product delivery and offering advice to clients, the next area of focus for all senior developers is having ownership of the development process.
Note that in software houses, a senior developer is often also a Team Leader and is likely to play a large role in project delivery. In some cases he or she might come up against resource problems, or a case in which not all roles in the team are filled - for example there may be no DevOps Engineer or enough testers.
Patryk says: “A senior developer is often expected to wear many hats, and due to their experience, they should have a decent understanding of all areas of the development process, from design, through DevOps, all the way to testing. They are ultimately responsible for managing the project process, and ensuring that it continues to progress despite any hurdles that may occur along the way.
It is sometimes assumed that in a corporate way of working, everyone has their designated roles, and developers and merely there to write the code that’s been allocated to them. This is the opposite to what a successful senior mobile developer is, from my perspective. There’s huge value in having an understanding of the bigger picture.”
Responsibility for any hurdles in development
Of course, a senior developer's work isn’t always rosy. There will inevitably be challenges that come up with some projects, ranging from having to reset client’s expectations, through to a lack of resource, or simply a piece of work that has proven ineffective.
Kamil explains: “If something isn’t going right in a project, it’s the responsibility of the senior developer to speak to the client about this openly. It won’t always be pleasant. We won’t always have the satisfaction of proudly demonstrating an outstanding product.
Patryk adds: “It’s a bit like catching the thunder before the storm sets in - i.e. effectively identifying any early risks, and solving them sooner rather than later.”
The technical knowledge that a senior developer should have
Aside from the above-mentioned responsibilities, it’s important to note that a senior developer should have a significant amount of technical knowledge. If you’re looking for a new role, the recruiter will definitely ask you about this.
As a start, it's important to have a very solid grasp of the technology that you mostly operate in.
It would also be helpful to know the surrounding elements - git, continuous integration, continuous delivery. Apart from that, you should know about the other forces at play which have an impact on your work. So - you’re developing a mobile app, but you should know why on the backend or the frontend, somebody has made a given decision, and what overall impact this decision is likely to have.
Developing the team and mentoring
Another important element of a senior developer’s work is team development and mentoring. There’s no use having a great deal of technical knowledge if you just end up keeping it to yourself.
Kamil explains: “Using the words of Spider-Man again, ‘With great power comes great responsibility.’ If we have these skills, then we shouldn't keep them to ourselves, but encourage our more junior colleagues to learn and develop them too.”
Patryk adds: “Sometimes senior developers have this tendency that they naturally take on anything difficult because they think it will be easier and quicker for everyone involved if they do so. But that means that a junior developer doesn’t get the chance to try out their skills on something more challenging and consequently loses the ability to learn. That’s why mentoring is so important.”
Gaining other valuable soft skills
Of course it’s also important to build up your soft skills including team management, empathy, great communication at all levels (both with the team internally, and with clients).
A very valuable skill is assertiveness, as you’ll likely come up against a number of scenarios in which the client is determined to proceed with a project in a certain way, but you know that an alternative method is preferable for many reasons.
It’s important to learn how to bring your point across.
If you’re looking to fully embrace the role of a Team Leader, it’s also a good idea to build up your management skills, both on the job and via external course providers.
Patryk adds: “Soft skills are essential when it comes to leading and supporting your team, and also when you’re in contact with the client or with the stakeholders on a given project. They also stand you in good stead if you find that further into your career, you don’t want to develop further from a technical perspective and that you would much rather form the function of someone who oversees projects and manages people. It’s good to keep your options open.”
Continuous self-development
An important fact to mention is that you should never stop learning. The secret to the long term success of any senior developer is an ability to evolve with the times. To understand new technology, to evaluate every project to see which things went well, which didn’t and what could have been handled better.
Patryk says, “There’s a warped cycle of knowledge that a lot of developers go through. When you’re a junior, you feel that you know nothing and you want to spend your entire time learning and developing your skills. When you’re a mid, you feel like you’re suddenly the fountain of all knowledge. And when you’re a senior, you come to understand once again that there’s actually a lot that you don’t know. The truth is that there’s always a lot to learn. Technology changes, things evolve and you must keep up in order to be successful.”
The road to success
Being a senior mobile developer is a job with significant responsibilities, but also a great deal of satisfaction. With the right combination of team development, product ownership and a focus on continuous improvement, you’re likely to have an interesting and varied career.