Filip Vinković, Developer in Zagreb, Croatia
Filip is available for hire
Hire Filip

Filip Vinković

Verified Expert  in Engineering

Mobile Apps Developer

Zagreb, Croatia

Toptal member since July 2, 2019

Bio

Filip is a software engineer with five years of experience specializing in Android development. He's worked on dozens of projects in multiple industries, the latest being the largest classified ads app in the region with over 200,000 monthly active users. Filip is passionate about building reliable software architecture and writing readable and maintainable code.

Portfolio

App Commerce Company (via Toptal)
RxJava 2, Rx, Model View ViewModel (MVVM), KOIN, Dagger, Git, Java, Kotlin...
Undabot
RxJava 2, Rx, Git, Java, Kotlin, Android
Ars Futura
Bluetooth Low Energy (LE), Git, Java, Kotlin, Android

Experience

  • Git - 6 years
  • Mobile Apps - 6 years
  • Android SDK - 6 years
  • Java - 6 years
  • REST - 5 years
  • Android - 5 years
  • Kotlin - 4 years
  • Clean Architecture - 4 years

Availability

Part-time

Preferred Environment

Git, Gradle, Android Studio, OS X

The most amazing...

...project I've worked on is a white-label app which was published for 10 different amusement parks in North America.

Work Experience

Senior Android Developer

2019 - 2020
App Commerce Company (via Toptal)
  • Developed and maintained multiple apps using an app commerce platform.
  • Wrote new apps and new features in older projects using Kotlin and refactored some of the codebases from Java to Kotlin.
  • Performed code reviews through GitHub, used Jira for task tracking and Azure DevOps for continuous integration.
Technologies: RxJava 2, Rx, Model View ViewModel (MVVM), KOIN, Dagger, Git, Java, Kotlin, Android SDK

Senior Android Developer

2018 - 2019
Undabot
  • Working on an agile team of four Android developers on the largest classified ads platform in the region with more than 500,000 downloads.
  • Generated time estimates, implemented code reviews, and participated in Scrum meetings.
  • Wrote new features in Kotlin, followed clean architecture and MVP pattern, maintained and refactored legacy Java code, and composed unit tests.
  • Collaborated with the design team by giving input and opinions specific to the Android platform.
  • Worked with the back-end team to define the RESTful APIs following the JSON API standard.
Technologies: RxJava 2, Rx, Git, Java, Kotlin, Android

Android Engineer

2017 - 2018
Ars Futura
  • Created an Android app for musicians by setting up the code architecture, unit tests, and continuous integration.
  • Developed a custom Android view for an optimized performance of displaying song lyrics with music chords; also implemented manual text size/position measuring and drawing.
  • Took over an IoT project using Bluetooth Low Energy and real-time data transfers. Improved stability and performance, resulting in a better user experience and lower data usage costs.
  • Collaborated closely with back-end developers on defining RESTful APIs and designing a data synchronization system.
  • Collaborated closely with designers in creating a modern Material Design app.
  • Conducted interviews for the company and for a client.
  • Mentored junior developers.
Technologies: Bluetooth Low Energy (LE), Git, Java, Kotlin, Android

Android Engineer

2015 - 2017
Infinum
  • Developed a number of Android applications from scratch for international clients in different industries, some of which have hundreds of thousands of users.
  • Worked on maintaining, refactoring and upgrading legacy applications.
  • Worked closely with designers on creating and implementing designs that follow the best practices for the Android platform.
  • Collaborated closely with back-end developers on defining RESTful APIs for mobile applications.
  • Worked on creating a library for a simplified usage of Camera 1 and Camera 2 Android APIs.
Technologies: Git, Kotlin, Java, Android

Experience

Njuškalo | The Largest Classified Ads App in the Region

As a member of an agile team consisting of four iOS and four Android developers, I implemented and maintained critical parts of the app which has more than 500,000 downloads.

Some of the complex features I worked on are ad details, in-app messenger, an engine for dynamic form input screens, and so on.

I participated in scrum meetings, time estimates, and other related operations.

We wanted an easy-to-maintain, testable codebase, so we used clean architecture, an MVP for the presentation layer, and Dagger for dependency injection. We composed unit tests with JUnit and UI tests with Espresso.

Tests and static analysis tools like Lint and Detekt were run on the GitLab CI server to prevent merging any issues to the main branches.

Tools and Libraries: Android SDK, Java, Kotlin, RxJava, Retrofit, OkHttp, Dagger, Glide, Picasso, Facebook SDK, JUnit, Mockito, Espresso

White-label Amusement Park App

As an Android developer in an Agile team, I created a white-label app that was published for ten different amusement parks in North America. Each of the apps was downloaded between 100,000 and 500,000 times.

The app downloaded a configuration from the API to modify the appearance of the app, depending on the park it was used for.

I implemented Bluetooth beacon detection with Bluetooth Low Energy API to trigger push notifications as the users walk by a certain POI in the park.

I worked with location services to display the user's location on an illustrated high-resolution map which utilized tiling to make pinch-to-zoom performant and reduce the device's memory usage.

Geofencing was implemented to detect when the user enters and exits the park.

Technologies and Tools: Android SDK, Bluetooth Low Energy, Java, Retrofit, DBFlow, JUnit, Mockito, Glide

Electricity Consumption Monitoring App

I worked in a team of three Android developers on the development of an electricity consumption monitoring app.

The app was written in Kotlin and followed clean architecture and MVVM. Android Architecture Components were used, specifically ViewModel and LiveData. To ensure code quality, we used Detekt, Ktlint for static analysis, and also wrote JUnit tests.

We forked and modified a popular open-source chart library to display energy consumption with real-time data updates.

OAuth was implemented for authentication.

Technologies and Tools: Android SDK, Kotlin, RxJava, JUnit, Retrofit

IoT Bluetooth Gateway App

This was an Android app that used Bluetooth Low Energy to connect to temperature, humidity, pressure, and light sensors to read measurements and publish them to an API.

When I joined the project, the codebase was in a rough state and my task was to improve reliability and implement new functionalities.

I fixed a number of concurrency issues, improved performance, and stability which resulted in fewer missing data points.

I also implemented data traffic throttling when the devices are connected to the cell network which reduced data usage costs by a fair amount.

Technologies and Tools: Android SDK, Bluetooth Low Energy, Java, Couchbase SDK

Songbook | Lyrics Database app

I created an Android app that allowed users to save song lyrics, add chords to them, and create playlists.

The app was written in Kotlin and followed clean architecture and MVP for the presentation layer. Unit tests were written with JUnit and Mockito.

I implemented a custom view for the optimal performance of rendering lyrics with music chords with support for touch gestures like scrolling and piching to change text size.

The lyrics view featured a pinch-to-zoom and automatic scrolling capabilities with configurable scrolling speed.

I used Realm for data storage and Retrofit for connecting to a RESTful API.

I closely worked with the back-end team to design a data synchronization system between multiple devices.

Technologies and Tools: Android SDK, Kotlin, Realm, Retrofit, JUnit, Mockito

Mobile Money Transfer App

A financial application for money transfer between people, depositing, and withdrawing from partner companies and telecom accounts.

The app was written in Kotlin, using MVVM architectural pattern (Android architecture components—ViewModel/LiveData) in conjunction with dependency injection (Koin) to ensure maximum testability.

Threading was done using Kotlin Coroutines and unit tests with a combination of JUnit/Mockito.

Builds go through a continuous integration pipeline on GitLab running static analysis checks (lint, detekt) and unit tests.

Internal News App for a Global Engineering and Consulting Company

For this project, I implemented OAuth, push notifications, and social media sharing.

Per the client's requirement, I implemented fetching encrypted articles from the API and decrypted them in the app using the AES encryption algorithm

Technologies and Tools: Android SDK, Kotlin, Retrofit, DBFlow, JUnit, Espresso

Education

2015 - 2017

Master's Degree in Software Engineering

University of Applied Sciences - Zagreb, Croatia

2012 - 2015

Bachelor's Degree in Software Engineering

University of Applied Sciences - Zagreb, Croatia

Skills

Libraries/APIs

Retrofit, Retrofit 2, RxJava 2, REST APIs, Android Architecture Components, RxJava

Tools

Git, Android Studio, Jira, Charles Proxy, Gradle, Zeplin

Languages

Java, Kotlin, XML

Frameworks

JUnit, Mockito, Android SDK, Dagger 2, Rx, Dagger, KOIN, Spring Boot, Flutter

Paradigms

Clean Architecture, Model View Presenter (MVP), Dependency Injection, REST, Agile Software Development, Unit Testing, Model View ViewModel (MVVM)

Platforms

Android, OS X, Bluetooth Low Energy (LE), Firebase

Storage

JSON, MySQL, Realm

Other

Mobile Apps, Third-party SDK Integration, OkHttp, SDKs, GitFlow, Location Services, Location Tracking, CI/CD Pipelines, Coroutines

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