Ivan Kajinic, Developer in Zagreb, Croatia
Ivan is available for hire
Hire Ivan

Ivan Kajinic

Verified Expert  in Engineering

Software Developer

Zagreb, Croatia

Toptal member since April 30, 2020

Bio

Ivan is a software engineer with vast experience developing software for multiple industries, including fintech, telecom, personal health, and banking. He is specialized in developing enterprise-grade distributed systems using the Java, Kotlin, and Spring ecosystem. He loves to learn about new languages and technologies and uses them to improve the products he's working on. He values clean code, taking responsibility, and good communication.

Portfolio

Staffing Platform Startup
Java, Spring, Unit Testing, Spring Boot, Kubernetes, PostgreSQL, Apache Kafka...
Typeqast
Amazon Web Services (AWS), Spring Microservice, Jenkins, Microservices...
Sweetpay
Amazon Web Services (AWS), Spring Microservice, Jenkins, Microservices, GitHub...

Experience

  • Java - 9 years
  • Spring - 7 years
  • Spring Boot - 6 years
  • MySQL - 6 years
  • Agile Software Development - 5 years
  • Amazon Web Services (AWS) - 4 years
  • Kotlin - 2 years
  • Apache Kafka - 2 years

Availability

Part-time

Preferred Environment

Amazon Web Services (AWS), Spring, Java, RDBMS, Redis, Apache Cassandra, Apache Kafka, Git, Jenkins, Test-driven Development (TDD), PostgreSQL, MySQL, SQL, Spring Boot, Kotlin

The most amazing...

...system I've helped create helped users become more active in their daily lives, be more mindful of their well-being, and drink more water.

Work Experience

Senior Software Engineer

2021 - 2022
Staffing Platform Startup
  • Developed a bonus system that allowed the company to automate payouts of various monetary and non-monetary rewards based on bonus campaign requirements.
  • Onboarded new back-end developers to the team, coordinated new features with stakeholders and other developers, and built dashboards so stakeholders could track the progress of various bonus campaigns.
  • Improved and modernized some of the existing services resulting in a more concise code. Overall, at the end of an engagement, my contribution was negative 13.8k lines of code while maintaining the same functionality.
Technologies: Java, Spring, Unit Testing, Spring Boot, Kubernetes, PostgreSQL, Apache Kafka, Groovy, REST, Amazon Web Services (AWS), Events, Integration Testing, Java 17, Role-based Access Control (RBAC), Spring MVC, API Integration

Senior Software Engineer

2019 - 2020
Typeqast
  • Worked on an existing legacy service that handled the process of getting a mortgage.
  • Modernized the service by migrating some functionalities to their microservices, such as authentication.
  • Worked on internal libraries that improved developer productivity.
Technologies: Amazon Web Services (AWS), Spring Microservice, Jenkins, Microservices, PostgreSQL, Agile Software Development, Hibernate, Relational Databases, Git, SQL, Spring Cloud, Spring, Java, GitHub, Bitbucket, Jira, MySQL, Spring Boot, Kotlin, Java 11, Java 8, Docker, DevOps, Linux, REST APIs, MongoDB, Kubernetes, SOLID Principles, Clean Code, Object-oriented Design (OOD), REST, Unit Testing, Apache Maven, JPA, RESTful Microservices, Microservices Architecture, Google Guava, IntelliJ IDEA, HTTP, APIs, Back-end, Flyway, Role-based Access Control (RBAC), Spring MVC, API Integration

Senior Software Engineer

2018 - 2019
Sweetpay
  • Led the migration from monolithic to microservices architecture.
  • Helped establish monitoring, logging, and alerting for the services.
  • Developed payment gateway and credit scoring services.
Technologies: Amazon Web Services (AWS), Spring Microservice, Jenkins, Microservices, GitHub, Agile Software Development, Hibernate, Relational Databases, Git, SQL, Spring Cloud, Spring, Java, Bitbucket, Jira, MySQL, Spring Boot, Java 8, Docker, DevOps, Linux, REST APIs, SOLID Principles, Clean Code, Object-oriented Design (OOD), REST, Unit Testing, Apache Maven, JPA, RESTful Microservices, Microservices Architecture, Google Guava, IntelliJ IDEA, HTTP, APIs, Back-end, Flyway, Role-based Access Control (RBAC), Spring MVC, API Integration

Senior Software Engineer

2018 - 2018
Infobip
  • Worked on an API gateway that handled all incoming HTTP requests and routed them to downstream services.
  • Improved response times of API gateway by adding caching in a few strategic locations.
  • Improved the deployment process and built additional checks that ran before the service was deployed to production.
Technologies: Spring Microservice, Jenkins, Microservices, PostgreSQL, GitHub, Agile Software Development, Hibernate, Relational Databases, Git, SQL, Spring, Java, Bitbucket, Jira, RabbitMQ, Redis, Spring Boot, Java 8, Docker, DevOps, REST APIs, SOLID Principles, Clean Code, Object-oriented Design (OOD), REST, Unit Testing, Apache Maven, JPA, RESTful Microservices, Microservices Architecture, Google Guava, IntelliJ IDEA, Gradle, HTTP, APIs, Back-end, Flyway, Role-based Access Control (RBAC), Spring MVC, API Integration

Senior Software Engineer

2016 - 2017
Bellabeat
  • Contributed to migration from monolithic to microservices architecture.
  • Developed data processing pipelines that handled processing and aggregation of user data in near real time.
  • Developed an API gateway that handled all incoming HTTP requests along with rate-limiting requests, load shedding, and client-side balancing them to downstream services.
Technologies: Amazon Web Services (AWS), Spring Microservice, Jenkins, Apache Cassandra, Microservices, Jira, PostgreSQL, GitHub, Agile Software Development, Hibernate, Relational Databases, Git, SQL, Spring Cloud, Spring, Java, Cassandra, Apache Kafka, Redis, MySQL, Netflix OSS, Spring Boot, Kotlin, Java 8, Docker, DevOps, REST APIs, Stripe API, SOLID Principles, Clean Code, Object-oriented Design (OOD), REST, Unit Testing, Apache Maven, JPA, RESTful Microservices, Microservices Architecture, Google Guava, IntelliJ IDEA, Gradle, HTTP, APIs, Back-end, Flyway, Firebase, Role-based Access Control (RBAC), Spring MVC, API Integration

Software Engineer

2014 - 2016
OptimIT
  • Worked on enterprise software for telecoms which allowed for application provisioning and configuration of various VToW and VoLTE clients.
  • Developed a front-end application that allowed monitoring and configuration of the back-end service.
  • Oversaw deployment to production, and led code handoff and training of in-house developers.
Technologies: Hibernate, Relational Databases, Git, SQL, Java, Spring, GitHub, MySQL, Spring Data, Spring Security, Spring Boot, Java 7, REST APIs, SOLID Principles, Clean Code, Object-oriented Design (OOD), REST, Unit Testing, Apache Maven, JPA, Google Guava, IntelliJ IDEA, HTTP, APIs, Back-end, Spring MVC, API Integration

Software Developer

2012 - 2014
Equidem
  • Contributed to enterprise software for a multinational banking conglomerate that streamlined the bank's communication with their clients.
  • Worked on a greenfield project for bank tellers which handled customer life cycle, money withdrawal, and deposits.
  • Worked on a system that ensured the quality of data stored in various databases by allowing the users to define business rules in runtime and validating data against those rules.
Technologies: Hibernate, Relational Databases, SQL, Java, Spring Boot, Spring, Git, MySQL, Spring Data, Spring Security, Boot, Enterprise Java Beans (EJB), JSF, Java 6, REST APIs, SOLID Principles, Clean Code, Object-oriented Design (OOD), REST, Unit Testing, Apache Maven, JPA, HTTP, APIs, Back-end

Experience

RAPP ‑ Retention and Churn App

A Shopify based application that gives insights to users about customer growth, retention, churn, and lifetime value. I've worked on the initial version of the back-end system which integrated with Shopify and additional external service to ingest and process data. Developed the initial version of the front-end application using Shopify's Polaris UI kit.

Crypto Markets Data Collector

A Kotlin/Spring-based web service that integrates with crypto exchanges and collects trading data using REST and WebSockets. Collected data is transformed into a unified model and sent to Kafka topics so additional services can collect and operate on that data. The service can be run in high availability mode where one instance is chosen as a leader using Zookeeper-based leader election, and in case something goes wrong new leader is elected and takes over.

Data Processing Pipeline

A Java/Spring/Spring Cloud-based project consisting of multiple microservices which ingests large quantities of minute-based data generated by IoT devices. Services perform various transformations and calculations on said data and pass them along to Kafka topics where downstream services either store them, send reports to users, trigger additional calculations, etc.

Education

2009 - 2011

Master's Degree in Software Engineering and Information Systems

University Of Zagreb - Zagreb, Croatia

2006 - 2009

Bachelor's Degree in Software Engineering and Information Systems

University Of Dubrovnik - Dubrovnik, Croatia

Skills

Libraries/APIs

REST APIs, Stripe API, Reactor

Tools

Flyway, Apache Maven, Git, GitHub, Bitbucket, Jira, RabbitMQ, Jenkins, IntelliJ IDEA, Gradle

Languages

Java, Kotlin, SQL, Java 6, Java 7, Java 8, Java 11, Groovy

Frameworks

Spring, Spring Boot, Spring MVC, JPA, Hibernate, Spring Microservice, JSF, Spring Security, WebFlux, Google Guava

Paradigms

Role-based Access Control (RBAC), Microservices, Microservices Architecture, Agile Software Development, Object-oriented Design (OOD), REST, Clean Code, Unit Testing, Functional Programming, DevOps, Test-driven Development (TDD), Agile

Platforms

Kubernetes, Apache Kafka, Amazon Web Services (AWS), Firebase, Docker, Linux

Storage

MongoDB, MySQL, PostgreSQL, Relational Databases, RDBMS, Spring Data, Cassandra, Redis

Other

APIs, Back-end, Back-end Development, Java 17, API Integration, RESTful Microservices, SOLID Principles, Spring Cloud, HTTP, Boot, Netflix OSS, Reactive Streams, Apache Cassandra, Enterprise Java Beans (EJB), R2DBC, Events, Integration Testing

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