Kristijan Jurković, Developer in Pula, Croatia
Kristijan is available for hire
Hire Kristijan

Kristijan Jurković

Verified Expert  in Engineering

Software Developer

Location
Pula, Croatia
Toptal Member Since
October 10, 2017

As a software engineer and a mobile enthusiast, Kristijan has invested time and resources into perfecting the development process of building mobile apps. With experience 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.

Portfolio

Redox
Go, Android, iOS, Java, Kotlin, Node.js, Kubernetes, React, Vue, Swift...
Infinum
Git, Groovy, Gradle, Kotlin, Java, Android, Android API, Android SDK...
Infinum
Git, Groovy, Gradle, Kotlin, Java, Android, Android API, Android SDK...

Experience

Availability

Part-time

Preferred Environment

OS X, GitFlow, Git, IntelliJ IDEA, Android Studio

The most amazing...

...project I developed was a Slovenian mobile banking app where I built my own custom LayoutInflater to fulfill the client's request and avoid app crashes.

Work Experience

Owner

2018 - PRESENT
Redox
  • Managed employees and the financial part of the company.
  • Charted the development of the company management software.
  • Mentored and reviewed the younger colleagues through pull requests.
Technologies: Go, Android, iOS, Java, Kotlin, Node.js, Kubernetes, React, Vue, Swift, Android API, Android SDK, PostgreSQL, Native Mobile Apps, Figma, SwiftUI, APIs, Xcode, REST APIs

Android Team Lead

2016 - 2017
Infinum
  • Coordinated and mentored junior Android developers.
  • Gave a number of talks at Droidcon Zagreb, Droicon Turin, and Droidcon Vienna.
  • Handled small teams of developers working on projects within various niches.
  • Developed applications and libraries for teams' internal use on Android.
  • Collaborated closely with back-end developers on defining RESTful APIs for mobile applications.
  • Defined the architecture for implementing financial and banking applications with emphasis on data security and encryption.
Technologies: Git, Groovy, Gradle, Kotlin, Java, Android, Android API, Android SDK, Native Mobile Apps, NoSQL, GraphQL, APIs, REST APIs, Bluetooth

Android Engineer

2014 - 2016
Infinum
  • Built a set of mobile banking products with an emphasis on security.
  • Set up a continuous integration process in Jenkins and CircleCI.
  • Worked closely with designers on creating and implementing designs that respect Android best practices.
  • Coordinated and mentored junior Android developers.
  • Collaborated closely with back-end developers on defining RESTful APIs for mobile applications.
  • Defined the architecture for implementing financial and banking applications with emphasis on data security and encryption.
Technologies: Git, Groovy, Gradle, Kotlin, Java, Android, Android API, Android SDK, Native Mobile Apps, NoSQL, APIs, REST APIs, Bluetooth

Software Engineer

2012 - 2014
Interactive1
  • Developed an Android application and led the Android development for native and hybrid applications.
  • Built a web application and led the website development with J2EE.
  • Developed a Facebook application with PHP CodeIgniter framework.
  • Created a web application and website with PHP CodeIgniter framework.
  • Built a REST API with Python for managing TV program videos.
Technologies: Git, CVS, Python, Java, PHP, Android, Android API, Android SDK, APIs, REST APIs

Software Engineer

2009 - 2012
Superius
  • Developed a BI system based on the open-source solution Pentaho.
  • Created custom ETL procedures.
  • Worked as part of the team that developed Superius Mobile Office: an Android PhoneGap application for sales travelers.
Technologies: Pentaho, Microsoft SQL Server, JavaScript, Android, Android API, Android SDK, REST APIs, Bluetooth

Lead Developer

2009 - 2012
Virtualni svijet
  • Developed a cashier system for hair and cosmetic salons.
  • Built a web portal for hair stylists.
  • Constructed a webshop with Magento for selling hair products.
Technologies: Git, MySQL, CSS, HTML, JavaScript, PHP

Domain Money

https://domainmoney.com/
Domain money is a company that provides professionally managed portfolios designed for long-term growth. I charted the successful development of Earn, KYC, and deep linking features. I prioritized security by implementing storage encryption.

Fundingport

https://www.fundingport.com/
Fundingport is an innovative online financing platform. It connects borrowers and lenders for corporate finance, commercial real estate, and renewable energies. I've charted the successful development of an Agency product on the back end side and implemented features tested through unit and integration tests via GitLab pipelines.

Juit.com

https://www.juit.com
A Flutter-based mobile app for food purchases in offices. Helped the team build new features and maintain existing popular in-company fridge apps for Android and iOS platforms.

Mentored and code reviewed other team members.

Backen.de

https://backen.de/
Successfully charted existing popular baking apps rewritten for iOS and Android platforms on MVVM+C and MVVM architecture. Helped the team build new features. Mentored and code reviewed other team members.

Yunar by Ambidexter

Helped the team build new features and maintain a popular loyalty card app used in stores in Germany. Implemented the Christmas redesign feature using Clean-code architecture.

Mentored and code reviewed other team members.

Mobile Banking App for German Bank

Native mobile (iOS and Android) banking applications for checking and acquiring credit scores.

Charted the successful development of both Android and iOS mobile applications. Prioritized security by implementing certificate pinning and storage encryption.

Amplify and Well-being Apps | Johnson & Johnson

I worked as part of the team developing healthcare solutions for the US market. This app was coded in a modular way and both apps shared codebase which was completely controlled by the back-end.

To ensure maximum testability, the applications were implemented using MVP architecture in conjunction with dependency injection (Dagger 2) and a reactive approach (Rx Java2).

Tests were written using the JUnit test framework in combination with Mockito for mocking the networking layer and Espresso for instrumentation tests. Finally, a continuous integration environment was set up using Jenkins with Bitbucket repository

Five Largest Banks in the Croatian, Slovenian, and Serbian Market | Native App

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) and worked with SOAP-based web services and RESTful APIs.

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 Mockito for mocking the networking layer. Finally, a continuous integration environment was set up using Circle CI with both GitHub and Bitbucket repositories.

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

Mobile Apps for Various Business Sectors in Netherlands

I developed and maintained apps for electricity and gas providers in the Netherlands with a focus on data security, both alone and as a part of a team.

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 Mockito for mocking the networking layer. Finally, a continuous integration environment was set up using Circle CI with both GitHub and Bitbucket repositories.

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

Mobile Banking App for the Slovenian Market

The client wanted to log out the user automatically after three minutes of inactivity. I used a user interaction listener (part of the Android Activity class) but this method did not track if the user input via the keyboard, only with clicks and scrolls.

I had two options to go with:
1. Inflate a layout into the fragment/activity and iterate through all views and its children recursively after the layout was attached to an activity or fragment.
2. Search only the EditText instances and attach TextWatcher which would track input. This would consume a lot of time and sometimes cause the app to freeze.

Since Android was already doing that while inflating, I went on and created my own custom LayoutInflater which I attached to the activity by replacing the ContextWrapper with my own version, replaced the factory classes, iterated EditText instances, and attached TextWatcher with my own listener on the inflated view so I could track user input and properly log him out after a period of inactivity. 

This approach was faster since it was done while parsing XML itself and in one iteration, unlike the first approach. It was important since most of the interaction with the app are forms which the user has to fill out.

Languages

Swift, XML, Java, Kotlin, GraphQL, Groovy, PHP, Python, JavaScript, HTML, CSS, PHP 5, Dart, Go, Python 3

Frameworks

Android SDK, Spring Boot, SwiftUI, CodeIgniter, Flutter, Spring

Libraries/APIs

RxJava, Android API, Core Animation, REST APIs, Node.js, RxJava 2, React, Vue

Tools

Xcode, Git, Gradle, Android Jetpack, Figma, Android Studio, IntelliJ IDEA, CVS, CircleCI, Amazon EKS

Paradigms

REST, Microservices Architecture, Microservices, HIPAA Compliance

Platforms

iOS, Android, Firebase, Kubernetes, Docker, OS X, Pentaho, Bitrise, Amazon Web Services (AWS)

Storage

JSON, MySQL, PostgreSQL, NoSQL, Microsoft SQL Server

Other

Native Mobile Apps, UI Animation, APIs, Bluetooth, GitFlow

2019 - 2022

Bachelor's Degree in Computer Science

University of Juraj Dobrila, Technical Faculty - Pula, Croatia

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