Java Developer in Zagreb, Croatia

Member since December 20, 2014

As a software engineer and a mobile enthusiast, Marko has invested time and resources into perfecting the development process of building mobile apps. With experience building products iteratively, he has developed analytical skills, wireframing and prototyping techniques, and coding best practices to develop quality software and, more importantly, the software that the client really wants. Android and iOS are his playgrounds of choice.

Availability

Preferred Environment

The most amazing...

...piece of software I've made is a set of mobile banking products, which pushed my limits in creating quality, secure, and testable code.

Employment

iOS Developer

2017 - 2017

iOS Mobile Network Analytics Startup

Built an iOS app for deep analysis of mobile carrier network status that develops in-depth understanding of the carrier's data collection across iOS versions, collects network status info, and uploads data to the server for analysis and visualization.

Created dynamic wizards to navigate the user through a network troubleshooting process with a flexible and adaptable data structure capable of handling a variety of market and language requirements.

Technologies: iOS

CTO

2016 - 2017

StyleReply

Built a digital platform that connects fashion stylists and clients remotely through video conferencing.

Provided fast prototyping and web development to validate the product and customers.

Led a team of people.

Operated a lean startup with an iterative approach.

Technologies: Android, Web prototyping

Lead Android Developer

2015 - 2016

Android Mobile Network Analytics Startup

Built an Android app for deep analysis of mobile carrier network status that develops in-depth understanding of the carrier's data collected across different Android versions, collects network status info, and collects and stores data locally to upload when a wifi connection is available.

Created smart retry mechanisms to upload data in chunks for when a significant amount of data is collected while the network is unavailable.

Created dynamic wizards to navigate the user through a network troubleshooting process. The wizard accommodates a flexible, adaptable data structure that works regardless of market and language requirements.

Technologies: Android

Lead Android Developer

2015 - 2015

Carboncash (via Toptal)

Built the Android CarbonCash app, which helps you track your energy consumption over time, from scratch. The app offers a loyalty program to reward the user for thoughtful energy consumption. Keep the Earth green.

Built interactive charts to display and filter energy consumption data across time and through different energy criteria.

Worked closely with the back-end team to define a strong mobile API which was used for both the Android and later on the iOS app.

Contributed to the API specification and set up API testing for easy tracking of back-end status and early discovery of problems.

Technologies: Android

Lead Android Engineer

2015 - 2015

Educational Quiz Game (via Toptal)

Joined the development team and set up the development culture (code reviews, Git flow, naming conventions).

Brought the product to the alpha and user testing stage together with the team.

Solved issues with the Android lifecycle.

Refactored the app's MVP architecture for easier testability and decoupling.

Helped develop a better quiz engine and abstracted the whole game flow in order to clearly specify the game mechanics/building blocks.

Implemented an additional app feature based on a layer messaging platform for rich in-app messaging.

Contributed to the product feature development.

Suggested UI/UX improvements which were adopted.

Set up a pilot project for phase two with a complex Android architecture with four in-app modules, including a pure Java module for business logic. This module can be cross compiled to Objective-C for the iOS app version.

Technologies: Android, Git, MVP, Java

Senior Android Developer

2012 - 2015

Infinum

Built a set of mobile banking products with emphasis on security (mobile token integration), testability (Robotium, Robolectric), and code reusability. Focused on continuous integration and understanding the importance of it from experience.

Outsourced to an international company working on their Android product (5M daily sessions at the time). Gained experience setting up analytics tracking funnels and AB testing.

Developed games for Android, specifically Samsung Stylus-Pen devices.

Gained experience handling small teams.

Collaborated closely with designers on defining guidelines and best practices for optimizing developer-designer interactions.

Technologies: Android

Experience

Two of the Largest Banks in the Croatian, Serbian and Slovenian markets | Native App (Development)

* Implemented mobile banking systems with a focus on data security* Integrated mobile tokens (Asseco & Entrust tokens)* Gained experience with both SOAP-based web services and REST APIs* Implemented MVP architecture on Android* Used dependency injection with Dagger for easy configuration switching between tests and production code. Motivation: having a central config module where parts of the architectures can be switched with minimal effort* Conducted acceptance/regression testing with Robotium. Ran tests in parallel with Spoon* Conducted unit tests with Robolectric* Created mockups of test data with Mockito and MockWebServer* Set up Jenkins ontinuous integration server with both GitHub and Bitbucket hooks

* Implemented MojVip (Vip telecommunications network) application, which makes the process of checking your current account balance fast and easy. It enables you to check your current balance, remaining free minutes, and past receipts; buy surf mobile packages; change roaming status; and much more.* Handles auto-login if you are using the Vip network and are on mobile data connection. Requires authentication over wifi.

One of the Largest Global Classifieds Services (Development)

* Developed the Android client which operates as a national online classifieds marketplace for used goods, globally active in 100+ countries.* Defined funnels and implemented analytics* AB testing* Participated in the process of creating Android OS images with embedded app to sell on new phones on the eastern markets* Worked on the project as part of a distributed team. Experienced in working with time difference (better planning)

* Mobile Android game for Samsung Stylus Pen devices where the goal is to navigate the little fish to the end of the level, squeezing through tight obstacles and evading enemies.* The focus of the development process was on the creativeness, research, and close work with an illustrator. It was really fun.

* Experienced in the usage of Balsamiq wireframing tool for quick iterations in defining the client's feature set and design needs* Experienced in the usage of InVision prototyping tool for setting up real life app prototypes with screen designs

Started an in-house education meetup for exchanging experience from past and current projects. The talks were filmed and broadcast on YouTube and are available at the provided link. Android Talks are regularly featured in Android Weekly, a free newsletter that helps you to stay cutting-edge with your Android development.

One of the Largest German Banks Present on the Croatian Market - Hybrid App (Development)

* Created the native Android wrapper for the bank mobile web application.

Writing about my travels, psychology topics and my experience in being part of the startup community.

iOS Mobile Network Diagnostics App (Development)

An iOS app for deep analysis of mobile carrier network status that develops in-depth understanding of the carrier's data collected across iOS versions, collects network status info as changes occur, and uploads data to the server for later analysis and visualization. I built the app and created dynamic wizards to navigate the user through a network troubleshooting process. It accommodates a flexible data structure that works regardless of language and adapts the wizard component for different market and language requirements. The app collects mobile network data for better understanding of signal strength and network stability for individual carriers, and the in-app diagnostics help give clients instant feedback on their connection status and steps they can take to resolve issues, thus diminishing pressure on support call centers.

Android Mobile Network Diagnostics App (Development)

An Android app built for deep analysis of mobile carrier network status that develops in-depth understanding of the carrier's data collected across Android versions, collects network status info when changes occur, and collects and stores data locally to upload when a WiFi connection is available. I built the app and created smart retry mechanisms to upload data in chunks in case a large amount of data is collected over a prolonged period of network non-availability. I also created dynamic wizards to navigate the user through a network troubleshooting process. The wizard accommodates a flexible, adaptable data structure that works regardless of market and language requirements.

The extremely diverse and fragmented Android ecosystem poses certain challenges when it comes to testing. In this article, we take a look at some approaches that can be effective with tackling these challenges and ease the process of writing and automating tests.