Scroll To View More
Ivan Kušt

Ivan Kušt

Zagreb, Croatia
Member since March 15, 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.
Ivan is now available for hire
Portfolio
Experience
  • Git, 7 years
  • REST, 7 years
  • Android, 7 years
  • Git flow, 3 years
  • Ruby, 1 year
Zagreb, Croatia
Availability
Part-time
Preferred Environment
Android Studio, IntelliJ, Git
The most amazing...
...software that I’ve made was a set of native and hybrid mobile banking applications, with security and testability in mind.
Employment
  • 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: Android, Git
  • Android Developer
    2016 - 2016
    Vollo
    • Built an Android app for booking online bus tickets from various bus companies.
    • Worked closely with back-end developers on defining RESTful APIs.
    • Worked with designers to provide smooth material design and ensure Android best practices.
    • Integrated payments in the app using Braintree.
    Technologies: Android, Git, Braintree
  • Android Team Lead
    2015 - 2016
    Infinum
    • Coordinated and mentored junior Android developers.
    • Given a number of talks on Android meetups and at droidcon Zagreb.
    • Collaborated closely with back-end developers on defining RESTful APIs for mobile applications.
    • Developed games for Android.
    • Wrote Ruby and Shell scripts for generating boilerplate code.
    • Worked with Bluetooth Low Energy and iBeacons.
    • Handled small teams of developers.
    Technologies: Android, Git, Java, Ruby
  • 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 Circle CI.
    • Worked closely with designers on creating and implementing designs that respect Android best practices.
    Technologies: Android, Git, Java
Experience
  • Moneybox (Development)
    https://play.google.com/store/apps/details?id=com.moneyboxapp

    An application for savings and investment in the UK that I've developed in team with 2 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 used include Android Studio IDE, Android SDK, and Java.

  • Vollo (Development)
    https://play.google.com/store/apps/details?id=net.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 used include Android Studio IDE, Android SDK, Java, and Braintree SDK.

  • Five of the Largest Banks in the Croatian, Slovenian, and Serbian Market | Native App (Development)

    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 used include Android Studio IDE, Android SDK, and Java.

  • One of the Largest Banks in the Croatian Market | Hybrid App (Development)

    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 used include Android Studio IDE, Android SDK, Apache Cordova, and Java.

  • Simple Android Games (Development)

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

    Technologies used include Android Studio IDE, Android SDK, and Java.

  • Blog Posts (Other amazing things)
  • Android Certificate Pinning Example Project (Other amazing things)
    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 (Other amazing things)
    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 (Other amazing things)
    https://github.com/ikust/hello-sharedprocess

    An example of 2 Android applications signed with the same KeyStore and using the same shared user ID.

  • Ten Kotlin Features To Boost Android Development (Publication)
    Kotlin is a new, expressive general-purpose programming language powered by the same virtual machine technology that powers Java. Since Kotlin compiles to the JVM bytecode, it can be used side-by-side with Java, and it does not come with a performance overhead. In this article, Toptal Freelance Software Engineer Ivan Kušt gives us a walkthrough of ten major features of Kotlin that help avoid boilerplate code and, more importantly, save time.
Skills
  • Platforms
    Android
  • Languages
    Java, Groovy, Ruby
  • Frameworks
    Dagger, Android SDK, Robolectric
  • Libraries/APIs
    Google Maps, Butterknife, Retrofit, DBFlow, WebSockets
  • Tools
    Android Studio, Git, Git flow
  • Paradigms
    Model View Presenter (MVP), Dependency Injection, REST
  • Storage
    SQLite
  • Other
    SOAP, EventBus
Education
  • Master's degree in Information and Communication Technology
    2010 - 2012
    Faculty of Electrical Engineering and Computing, University of Zagreb - Zagreb, Croatia
  • Bachelor of Science degree in Computer Software Engineering
    2007 - 2010
    Faculty of Electrical Engineering and Computing, University of Zagreb - Zagreb, Croatia
I really like this profile
Share it with others