
Filip Vinković
Verified Expert in Engineering
Mobile Apps Developer
Zagreb, Croatia
Toptal member since July 2, 2019
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
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
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
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.
Senior Android Developer
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.
Android Engineer
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.
Android Engineer
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.
Experience
Njuškalo | The Largest Classified Ads App in the Region
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
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
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
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
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
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
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
Master's Degree in Software Engineering
University of Applied Sciences - Zagreb, Croatia
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
How to Work with Toptal
Toptal matches you directly with global industry experts from our network in hours—not weeks or months.
Share your needs
Choose your talent
Start your risk-free talent trial
Top talent is in high demand.
Start hiring