Ivan Kušt, Developer in Zagreb, Croatia
Ivan is available for hire
Hire Ivan

Ivan Kušt

Verified Expert  in Engineering

Android Developer

Location
Zagreb, Croatia
Toptal Member Since
April 14, 2016

As a software engineer and mobile enthusiast, Ivan has invested time and resources into perfecting the development process and architecture of mobile apps. With experience in building large and security sensitive applications, he has developed analytical skills, wireframing and prototyping techniques, and coding best practices to develop quality and secure software.

Portfolio

Roomi (via Toptal)
Retrofit, Android Studio, Android SDK, GitFlow, Java, Intercom, Stripe...
Moneybox (via Toptal)
Dagger, Retrofit, Android Studio, Android SDK, GitFlow, Java, Git, Android...
Vollo
Dagger, Retrofit, Android Studio, Android SDK, Java, BrainTree, Git, Android

Experience

Availability

Part-time

Preferred Environment

Git, IntelliJ IDEA, Android Studio

The most amazing...

...software that I’ve made was a set of native and hybrid mobile banking applications, with security and testability in mind.

Work Experience

Freelance Android Engineer

2017 - 2018
Roomi (via Toptal)
  • Worked as part of the remote Android team.
  • Contributed to the improvement of the application architecture and made it testable.
  • Implemented Google In-App Purchases.
  • Integrated Stripe for payments.
  • Set up Robolectric and Espresso testing frameworks with Jacoco coverage reports and added tests that were running on CI.
Technologies: Retrofit, Android Studio, Android SDK, GitFlow, Java, Intercom, Stripe, In-app Purchases, Git, Android, Slack, GitHub

Freelance Lead Android Developer

2016 - 2017
Moneybox (via Toptal)
  • Built an Android application for saving and investing in the UK.
  • Mentored and worked closely with 2 junior Android developers.
  • Worked with designers to provide smooth material design and ensure Android best practices.
  • Set up unit tests using JUnit and the Robolectric testing framework.
  • Implemented a small and simple physics engine for interactive animations on the main screen of the app.
Technologies: Dagger, Retrofit, Android Studio, Android SDK, GitFlow, Java, Git, Android, GitHub

Android Developer

2016 - 2016
Vollo
  • Built an Android app for booking online bus tickets from various bus companies.
  • Cooperated closely with back-end developers on defining RESTful APIs.
  • Collaborated with designers to provide smooth material design and ensure Android best practices.
  • Integrated payments in the app using Braintree SDK.
Technologies: Dagger, Retrofit, Android Studio, Android SDK, Java, BrainTree, Git, Android

Android Team Lead

2015 - 2016
Infinum
  • Coordinated and mentored junior Android developers.
  • Gave a number of talks on Android meetups and at droidcon conference in Zagreb.
  • Collaborated closely with back-end developers on defining RESTful APIs for mobile applications.
  • Developed a few simple 2D mobile games for Android.
  • Wrote Ruby and Shell scripts for generating boilerplate code.
  • Worked on projects that used Bluetooth Low Energy and iBeacon.
  • Handled and mentored small teams of Android developers.
Technologies: Robolectric, Dagger, Retrofit, Android Studio, Android SDK, Ruby, Java, Git, Android, GitHub

Senior Android Developer

2008 - 2015
Infinum
  • Developed applications and libraries for Android.
  • Built a set of mobile banking products with emphasis on security (including mobile token integration), testability (Robolectric, Circle CI), and code reusability.
  • Implemented critical security features for a mobile token solution (secure token data storage).
  • Participated in setting up a continuous integration process in Jenkins and CircleCI.
  • Worked closely with designers on creating and implementing designs that respect Android best practices.
Technologies: Robolectric, Dagger, Retrofit, Android Studio, Android SDK, Java, Git, Android

Moneybox

https://play.google.com/store/apps/details?id=com.moneyboxapp
An application for savings and investment in the UK that I've developed in a team with two Android developers. As the Android lead, I've worked closely with other developers and mentored them. I've also worked with designers to ensure smooth material design with Android best practices in mind.

Some of the implementation challenges included:
· Implementing the functionality for taking pictures of users ID during registration process—storing and passing the picture to the back-end in a high-enough quality for verification proved to be a challenge on some phones.
· Implementing a simple physics engine for Android views to enable interactive animations on the main screen of the app.
· Dynamic UI forms that are generated depending on the response from the RESTful API.

To ensure maximum testability, applications were implemented using MVP architecture in conjunction with dependency injection (Dagger 2). Unit tests were written using the Robolectric test framework in combination with MockWebServer for mocking the networking layer.

Technologies: Android Studio IDE, Android SDK, Java

Vollo

I developed an Android app for booking online bus tickets from various bus companies. I worked closely with the back-end developers on a RESTful API specification and payment integration using Braintree SDK.

Technologies: Android Studio IDE, Android SDK, Java, Braintree SDK

Five of the Largest Banks in the Croatian, Slovenian, and Serbian Market | Native App

I developed and maintained mobile banking applications with a focus on data security, both alone and as a part of a team. I’ve integrated time and event-based mobile tokens (Asseco, Entrust), worked with SOAP-based web services and RESTful APIs, and developed core libraries with shared code that were used across applications.

To ensure maximum testability, applications were implemented using MVP architecture in conjunction with dependency injection (Dagger and Dagger 2). Unit tests were written using the Robolectric test framework in combination with MockWebServer for mocking the networking layer. Finally, a continuous integration environment was set up using Jenkins and Circle CI with both GItHub and Bitbucket repositories.

Technologies: Android Studio IDE, Android SDK, Java

One of the Largest Banks in the Croatian Market | Hybrid App

I’ve implemented a native wrapper for an HTML5 banking application using Apache Cordova. Cordova was configured to work with an HTML5 application from a remote endpoint instead of using a bundled HTML5 application. I also wrote a couple of Cordova Android plugins.

Technologies: Android Studio IDE, Android SDK, Apache Cordova, Java

Simple Android Games

I've developed a few 2D Android games and a simple physics engine that handles collisions and gravity.

Technologies: Android Studio IDE, Android SDK, Java

Android Tutorials

https://www.raywenderlich.com/u/ikust
I wrote the Android tutorials on Raywenderlich.com.

Android Certificate Pinning Example Project

https://github.com/ikust/hello-pinnedcerts
An example project that demonstrates how to pin certificates with (now obsolete) Apache HTTP client that is shipped with Android and a Retrofit/OkHttp client.

Simple List Adapter Injection Library for Android

https://github.com/ikust/AbstractViewAdapter
A list adapter "injection" library which uses an annotation processing to generate code that implements a ListView Adapter and assigns it to one of your ListViews.

Android Shared Process Example Project

https://github.com/ikust/hello-sharedprocess
An example of two Android applications signed with the same KeyStore and using the same shared user ID.
2010 - 2012

Master's Degree in Information and Communication Technology

University of Zagreb, Faculty of Electrical Engineering and Computing - Zagreb, Croatia

2007 - 2010

Bachelor of Science Degree in Computer Software Engineering

University of Zagreb, Faculty of Electrical Engineering and Computing - Zagreb, Croatia

Libraries/APIs

Stripe, Google Maps, DBFlow, Butterknife, Retrofit

Tools

GitHub, Slack, IntelliJ IDEA, Android Studio, Git

Frameworks

Android SDK, Robolectric, Dagger

Platforms

Android

Languages

Java, Kotlin, Groovy, Ruby

Paradigms

Dependency Injection, Model View Presenter (MVP), REST

Storage

SQLite

Other

BrainTree, In-app Purchases, Intercom, GitFlow, EventBus, WebSockets, SOAP

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring