Java Developer in Zagreb, Croatia
iOS Developer2017 - 2017iOS 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.
CTO2016 - 2017StyleReply
Technologies: Android, Web prototyping
- 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.
Lead Android Developer2015 - 2016Android 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.
Lead Android Developer2015 - 2015Carboncash (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.
Lead Android Engineer2015 - 2015Educational Quiz Game (via Toptal)
Technologies: Android, Git, MVP, Java
- 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.
Senior Android Developer2012 - 2015Infinum
- 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.
- 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
- MojVip (Development)https://play.google.com/store/apps/details?id=hr.infinum.mojvip
* 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)
- Pen Adventures (Development)https://www.infinum.co/case/pen-adventures
* 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.
- HAK (Development)https://play.google.com/store/apps/details?id=com.infinum.hak
* Worked on the app for the Croatian auto club
- Wireframing and Prototyping (Other amazing things)
* 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
- Android Talks (Other amazing things)https://www.infinum.co/android-talks
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.
- Blog Entries Tech (Other amazing things)https://www.infinum.co/the-capsized-eight/author/marko-vitas
Interesting reads, written by me.
- Blog Entries Travels, Startups, Life (Other amazing things)https://surfon.life
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.
- Android Testing Tutorial: Unit Testing like a True Green Droid (Publication)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.
Libraries/APIsRetrofit, Butterknife, Layer API, Parse SDK, DBFlow
ToolsBalsamiq Mockups, Jenkins, Google Analytics, Sketch, Trello, Git Flow, Git, Android Studio, Gradle, InVision, Eclipse IDE, Xcode
OtherApps, Mobile UI, Mobile UX, Online Marketing, Prototyping, Market Research & Analysis, Startups, Software Project Management, Project Management, Sales, Writing, Social Media Marketing, Social Media Strategy, Business Development, Lean Startups, Financial Modeling, SOAP
LanguagesJava, Swift 3, Python, Groovy
FrameworksJTBD, Dagger, Robotium, Robolectric
ParadigmsAgile Software Development, REST, Gamification
- Software Engineering and Information Systems degree in Computer science2011 - 2012Mälardalen University - Västerås, Sweden
- Software Engineering and Information Systems degree in Computer science2006 - 2012Faculty of Electrical Engineering and Computing - Zagreb, Croatia