Mary Yasensky Delivery Manager

    How to Hire Remote Kotlin Developers to Scale Your Android or Cross-Platform Project

    Kotlin is a general-purpose and open source programming language developed by JetBrains in the early 2010s. Kotlin is designed to fully interpolate with one of the most popular programming languages, Java. In 2019 Google announced Kotlin as a preferred language for Android mobile application development, which made it’s popularity grow significantly. Today, Kotlin is among the top 4 most loved programming languages and is widely used by such companies as Twitter, BMW, Coursera, Reddit and, of course, Google.

    If you think about creating a native Android app for your business, you’ll likely need to hire Kotlin developers as a part of your team. We at Surf have 12 years of experience developing mobile apps using both native and cross-platform technologies. In the article, we’ll review the roles and responsibilities of Kotlin developers in a mobile app project, what expertise is required from such specialists and ways to hire them.

    Roles and responsibilities of Kotlin developer

    On average, Kotlin app development team consists of a project manager, 2-3 developers and a QA engineer. Additional specialists include backend developer, business analyst and UX/UI designers. The size of a team is defined by multiple factors, including the app’s supported platforms, complexity, budget and development deadlines. To learn more about who you’ll need for an app development team, check our dedicated article.

    The main role of a Kotlin developer is to create a robust Android app according to the project’s requirements. To be more specific, the responsibilities of a Kotlin developer include:

    • Writing clear and efficient code of an Android app from scratch.
    • Understanding the project’s requirements and design wireframes and translating them into code.
    • Maintain code quality and its reusability.
    • Code optimization.
    • Working with APIs and third-party integrations if necessary.
    • Collaboration with other Android development team members, including designers and QA engineers.
    • Ensuring the written code has no errors, conducting UNIT-testing and bug fixing.
    • Implementing security measures and technologies where necessary.

    Kotlin app development cycle can be roughly split into four main prods: 

    Discovery – a project manager, UX-researcher, designer and analyst together with a client analyze the market, define the audience and future app’s functionality and appearance.

    UI design and planning — designers create an interactive prototype of a future app, while analysts together with developers put together business and system requirements and describe interaction patterns.

    Development — developers write the code of the app.

    Testing — the app’s bugs get fixed and functionality improved.

    Kotlin developers are the most important participants of planning, development and testing prods: they assess technical possibilities of satisfying client’s requirements, create code, fix discovered bugs and continuously polish the app until the final product is released in stores for the general public.

    App for the grocery store developed by Surf

    Kotlin developer requirements

    To become a Kotlin app developer, a programmer must attain several essential skills, which include:

    Java knowledge. Since Kotlin programming code is completely interoperable with Java, meaning that Kotlin can call and execute Java code, any developer who wishes to write apps on Kotlin should know Java and its main concepts.

    Kotlin knowledge. Obviously, to write clean and maintainable code on Kotlin, a developer must have comprehensive knowledge of this programming language.

    Experience in Android SDK and Android Studio. The main developer tools for Android apps are Android Software Development Kit and Android Studio, so a developer must have knowledge of their functionality and how to use them.

    Familiarity with Agile development. The concept of agile mobile app development is based on creating an app in increments called sprints. For example, at Surf we use 2-4 week sprints. At the end of each sprint, the app receives a fully functional update or configuration. Since the agile approach is the most widely used development methodology, Kotlin developers need to be familiar and comfortable with it.

    Understanding of app lifecycle, architecture and design principles. Even if we talk about a junior developer, an understanding of app development principles helps in every kind of task, including the most routine and basic ones, improves code quality and helps the developer grow professionally.

    Knowledge of RESTful APIs and XML. To work with third-party integrations and connect the app with backend services, Kotlin developers should have a strong understanding of MVC frameworks such as Spring/Play, REST/RESTful web services, HTTP protocols, JSON, XML and protocol buffers.

    Debugging and quality check skills. Bugs are an inevitable part of writing code. Generally, code errors can be divided into logical and syntactical and can be identified through crashes, exceptions, or minor issues when running an app. For any developer, the ability to identify problems in code and fix them is a huge part of their daily job.

    Analytical mindset and problem-solving abilities. Analytical skills help developers detect patterns, interpret data, and choose the best solution based on many factors. All of these make developers’ work more effective and productive. 

    Communication and time management skills. Because app development is always a team effort and often has tight deadlines, soft skills are of no less importance than hard technical skills.

    Twim trading app developed by Surf

    Kotlin developer salary

    Developer’s rate depends on their experience, skills and tasks assigned during the development process. Junior Kotlin developers have an average monthly salary of $6,000 and usually work on the app’s modules. Mid-level Kotlin developers earn around $8,000, while Senior level programmers have an average salary of $10,000 and can manage the whole development process, releases of the app’s versions and builds. 

    Also, don’t forget that the developers’ salaries are largely determined by their location. If you’re a US-based startup, hiring specialists offshore can significantly lower development costs without any decrease in quality. For example, developers living in the USA have an average hourly rate of $90, while developers in Western Europe countries charge $40-45 per hour without any compromise on the code’s quality. Learn more about the best locations to hire developers in our dedicated article.

    How to hire Kotlin developers

    If you’ve decided to build an Android app, you’ll need to find skillful Kotlin developers. Mainly, there are three ways to do this:

    Hire in-house. The benefits of making developers part of your team include total control over them in terms of business process and practices, salary and working culture. When hiring in-house, you can be sure the developers would be solely focused on your project — a higher degree of involvement is a must for complex and big scale projects. On the other hand, hiring developers requires you to set up a complete HR process within the company, from screening and interviewing candidates to handling red tape associated with in-house employees, which comes at additional operational costs. Also, if app development is not your primary business, think twice before hiring new team members for just one short-term project — mobile developers are one of the most expensive specialists on the market, so what would you do with them employees when the app is finished? Find a way to fire them or transfer to another project?

    Hire freelancers. Finding developers through such platforms as Fiverr or Upwork is a popular option for mobile app development. This approach allows you to cut costs for the company, because freelance developers are exempted from in-house employees’ perks and benefits, don’t need a permanent office space and usually work on hourly wage conditions. Also, if your app development project requires expertise in particular fields, it is easier to find and temporarily hire freelance specialists with the right experience just for this project. However, it can be hard to assess the real skill level of a freelancer, which increases risks of having code of poor quality. Also, Because freelancers are often engaged in multiple projects, there is always a risk that they can be poorly involved in your project or even abandon it in the middle of development. To ensure that you’re hiring highly-motivated professionals, carefully review portfolios of potential candidates before making a decision.

    Hire a development company. Another option is to handle all development related to a company providing Android development services. Such companies specialize in app development and handle organizational matters, meaning you won’t need to set up the development process from scratch. For example, we at Surf have been developing apps for banks, e-commerce and digital platforms for over a decade, always adhering to the best current industry practices and using our experience across industries. Along with developers, our team includes specialists to handle all other prods of project development, such as designers, analytics and QA. We also supply every project with comprehensive documentation, so that it can be easily handed to an in-house team for further maintenance.

    Questions for Kotlin developer interview

    When hiring in-house or freelance developers it is important to assess their competence during an interview. The usual approach is to start from general questions that help to understand the candidate’s skillset and motivation behind becoming a Kotlin developer and then move on to theoretical questions. For example:

    Q: In Kotlin, what is the difference between val and var?

    A: Both keywords declare a variable. Var is a general non-final variable that can be changed throughout the code, while val is a final immutable variable that can be initialized only once and becomes read-only.

    Q: What structural expressions exist in Kotlin? 

    A: There are three structural jump expressions:

    Break is used to terminate the nearest enclosing loop.

    Return is used to return from the nearest enclosing or anonymous function. 

    Continue is used to proceed to the next step of the nearest enclosing loop. 

    Q: What modifiers does Kotlin have?

    A: There are four visibility modifiers in Kotlin:

    Public — a default modifier that makes a declaration visible to everyone.

    Private makes a declaration visible only inside the file containing the declaration.

    Internal modifier makes a declaration visible everywhere within the same module.

    Protected acts as private modifier but is only available for top-level declarations, making them visible in subclasses too.

    The interview can be finished with a couple of quick practical tasks that would help assess the developer’s practical coding skills. Also, check our article for more insights on how to hire the right developer for your app.

    To sum things up

    Since Kotlin is currently the main Android programming language, there are plenty of Kotlin developers looking for new projects. However, hiring the right people might be a daunting task, especially if you decide to set up an in-house HR process and make developers permanent members of your team. To make things a little easier, so that you can focus more on your core business, consider trusting the app development to a specialized mobile app development company. We at Surf have extensive experience developing mobile apps for emerging startups, e-commerce players and major banks. If you want to build an app with Kotlin, fill in the short form and we’ll get back to you to discuss the details.