Josip Medic, Developer in Split, Croatia
Josip is currently unavailable

Josip Medic

Bio

Josip is passionate about designing asynchronous and concurrent code, leveraging tools like Kotlin coroutines and Scala ZIO to create robust, non-blocking solutions that maximize performance and responsiveness. With expertise in microservices architecture, distributed systems, and cloud platforms, he thrives on building maintainable, efficient, and scalable software that delivers real impact. He is a team player who thrives under pressure and brings creative problem-solving to every challenge.

Portfolio

Endeavor - Streaming dba Dice Technology
Java, REST APIs, Docker, Amazon Web Services (AWS), SQL, Spring Boot...
fullenrich
Scala, ZIO, Apache Kafka, Distributed Systems, Elasticsearch
PDF Solutions, CImterix
Java, Apache Kafka, gRPC, Camel, Kubernetes, Apache Cassandra, PostgreSQL, REST...

Experience

  • Software Engineering - 16 years
  • Java - 16 years
  • Spring Boot - 15 years
  • Spring - 15 years
  • Kotlin - 8 years
  • Python - 5 years
  • Blockchain - 3 years
  • Vertica - 1 year

Preferred Environment

Git, MacOS, Linux, IntelliJ IDEA, Claude

The most amazing...

...thing I've done is Habiplace, an online property network. I've co-founded and held a CTO role for one and a half years. We raised 150k seed investment.

Work Experience

Back-end Architect

2025 - 2026
Endeavor - Streaming dba Dice Technology
  • Architected and implemented a video reprocessing pipeline, multiple stages from video demuxing, video renditions, encoding segmentations, playback manifest creations, and different video qualities to be able to play on slower client speeds.
  • Designed ad-preconditioning to align segment boundaries with ad markers, guaranteeing frame-accurate ad insertion during live and VOD playback.
  • Split each high-bitrate raw mezzanine file into chunks, fanned out per-chunk FFmpeg jobs across a worker pool, and stitched the outputs. Reduced encode time by around 10x on long-form titles with no quality loss.
  • Modeled the pipeline as a stage DAG with idempotent, replay-safe workers, so any stage can be retried, re-run, or back-filled without producing duplicate or corrupt artifacts.
  • Embedded subtitles and ad preconditioning to support accurate ad placement during streams, using a microservice architecture for large video pipelines.
  • Implemented subtitle tools for converting different subtitle formats (SCC, SRT, VTT) using Python, providing embedded subtitle support.
Technologies: Java, REST APIs, Docker, Amazon Web Services (AWS), SQL, Spring Boot, Kubernetes, Terraform, Scala, Python, Google Cloud, FFmpeg, Dash, Streaming, Distributed Systems, Microservices

Principal Engineer

2025 - 2025
fullenrich
  • Architected a prospect/company ingestion pipeline as a decoupled, replayable streaming pipeline: starting from S3, parsing with ZStream, producing with zio-kafka, moving through a topic, consuming with zio-kafka, batching with ZStream, and then to OpenSearch bulk.
  • Enabled independent scaling and failure handling for ingestion and indexing, facilitating full reindexing by resetting consumer offsets instead of re-downloading from S3.
  • Designed the prospects-raw topic with 20 partitions, aligning it with consumer parallelism.
  • Implemented at-least-once delivery with idempotent sinks, commitBatched after the OpenSearch bulk response is ack'd; OpenSearch _id = prospect_id makes replay safe, crash mid-batch, and the next run re-indexes the same docs without duplicates.
  • Tuned the OpenSearch sink for write-heavy ingestion with configurations like 90 shards, 0 replicas, refresh_interval=-1, and asynchronous translog during bulk loads; settings were switched to query-mode post-load.
  • Built a DLQ pipeline (prospects-dlq) for handling parse failures.
Technologies: Scala, ZIO, Apache Kafka, Distributed Systems, Elasticsearch

Senior Software Engineer | Architect

2022 - 2025
PDF Solutions, CImterix
  • Designed and implemented a platform that processes large-scale traceability data using an event-driven microservice architecture built on Apache Kafka, with an integration layer designed in Apache Camel-Karavan.
  • Created pipelines that connect MES (shop floor) data, alert lifecycle, ticketing, and the analytics warehouse, integrating heterogeneous storage tiers such as Cassandra, Oracle, and PostgreSQL.
  • Implemented the traceability sync pipeline to maintain consistency between a hot operational store (Cassandra) and an analytics store (Oracle) through a pathway from MES to Kafka, then to Cassandra, and Camel scheduled aggregation routes, avoiding dual-writes.
  • Optimized tool control, developed scalable solutions, and processed large volumes of data to enhance manufacturing equipment connectivity and automation, driving smart manufacturing initiatives.
  • Developed and enhanced factory automation software solutions for the semiconductor and electronics manufacturing industries.
Technologies: Java, Apache Kafka, gRPC, Camel, Kubernetes, Apache Cassandra, PostgreSQL, REST, Microservices, Prometheus, Grafana, Elasticsearch, Kibana, RabbitMQ, Karavan, Distributed Software, NoSQL, REST APIs, SQL, Scala, ZIO, tapir, OpenTelemetry, DevOps, Terraform, Ansible

EVM, Blockchain Developer

2022 - 2024
Techpad
  • Set up EVM smart contracts architecture and development, which were responsible for staking, vesting, and collecting investment funds.
  • Created and managed vesting smart contracts responsible for IDO token vesting periods, covering diverse vesting schedules, including per block, daily, monthly, and more, to cater to varying project needs.
  • Designed, implemented, and maintained smart contracts.
Technologies: Solidity, Yul, Echidna, Hardhat, Truffle, Blockchain

Senior Software Engineer/Architect

2018 - 2023
Myo
  • Worked on the core back-end system, encompassing system architecture, database design, and code implementation.
  • Designed and deployed the Myo Kubernetes cluster, including a bare-metal setup with Kubespray and an Amazon EKS configuration, with automation using Ansible.
  • Managed infrastructure with Amazon Aurora Serverless, ECS, and Fargate, utilizing Terraform and Terragrunt for provisioning and deployment.
Technologies: Kotlin, Spring, Spring WebFlux, Coroutines, PostgreSQL, ECS, Amazon EKS, Terraform, Terragrunt, Ansible, CI/CD Pipelines, Docker, Asynchronous Development, Gradle, REST, REST APIs, SQL

Senior Software Engineer

2018 - 2018
Roomi, LLC
  • Developed a platform with various features like user management, listings, and configuration management.
  • Oversaw matching of users who want to find new apartments (movers) with ones who are searching for roommates (listers).
  • Optimized Elasticsearch queries so relevant results are returned on user search, matching the right candidates.
Technologies: Elasticsearch, MongoDB, Express.js, Mongoose, ECMAScript (ES6), Node.js, REST APIs, SQL

Co-founder, CTO

2017 - 2018
Habiplace, Ltd.
  • Organized the development team.
  • Designed the architecture and data extraction.
  • Helped define user stories.
  • Raised seed investment of 125,000 GBP.
Technologies: Angular, Spring, Play Framework, Java 8, Scala, SQL

Senior Software Engineer

2016 - 2018
Big Room Studios
  • Developed the back-end and front-end.
Technologies: Angular, PostgreSQL, Hibernate, Java, REST APIs, SQL

Senior Software Engineer

2013 - 2015
Reversing Labs
  • Collected malware and goodware samples from various providers.
  • Managed various services for Vertica logging. Logging all collected events about samples into the Vertica analytic database for later processing.
  • Created daily reports of running services based on the Vertical Analytics database. Aggregated all vertical data after collection, allowing daily reports to be easily fetched.
  • Worked on an aggregation service managing analytical data and making daily aggregations.
  • Created reports using Jasper Reports. Worked on a Jasper Reports Server for managing created reports.
Technologies: JasperReports, Vagrant, Vertica, Python, REST APIs, SQL

Senior Software Engineer

2014 - 2014
Peerspace (via Toptal)
  • Designed application Architecture.
  • Developed the back-end software.
  • Managed testing, staging, and production servers.
  • Reviewed code.
Technologies: PostgreSQL, Spring Boot, Java

Senior Software Engineer

2013 - 2014
Oradian
  • Worked on the architecture design of the Instafin microfinance product. Created modular application parts that can easily be decoupled.
  • Worked on the architecture design and application development of the Instafin microfinance product. Provided real solutions to technology problems facing financial service providers.
  • Handled back-end development of the Instafin application. Developed the back-end using Scala.
  • Created the Instafin application front-end. Developed the front-end using Scala template, Bootstrap Framework, JavaScript, and Undescore.js.
  • Managed Launch and Learn sessions twice a week for developers to discuss clean code, best practices, and code improvement-related techniques.
Technologies: Jira, PostgreSQL, JavaScript, jQuery, Play Framework, Scala, REST APIs

Medium Software Engineer

2011 - 2013
PayPal
  • Worked on an eBay Lifestyle deals project allowing multiple providers to list offers, deals, and coupons on eBay. Allowed eBay users to buy their deals and receive coupon codes within minutes on their eBay accounts.
  • Allowed multiple providers to list their offers on eBay.
  • Developed a network project, aggregating offers from multiple providers (Entertainment, Signpost, Zozi, Crowd savings, Living Social, Juice in the City, and more).
  • Supported offers through PayPal services.
  • Hunted exceptions, checking all services using app health tools.
Technologies: Poker, Jira, Memcached, MySQL, MongoDB, Spring, Play Framework, Scala, Java, REST APIs

Junior Software Engineer

2010 - 2011
Where, Inc.
  • Worked on a campaign manager administration tool responsible for managing campaigns in the Where Advertising Network and synchronizing between ad servers working on multiple publisher networks.
  • Worked on the Where advertisement server, creating banners serving end users.
  • Managed release cycles of the campaign manager application.
  • Located and corrected bugs in the app.
Technologies: Poker, Jira, Akamai, Memcached, MySQL, MongoDB, Web MVC, Spring, RMI, Java

Student Co-op

2007 - 2009
Larus d.o.o.
  • Created a room master system for controlling hotel rooms.
  • Developed a hotel SOS system.
  • Designed a system for my master's thesis for control of a touchscreen with 240x128 resolution, using an 8-bit Toshiba T6963C processor.
  • Soldered hardware.
  • Programmed in C.
Technologies: C

Experience

Microservices Showcase - Kotlin, JVM

https://github.com/git-josip/reactive-growth-microservices
A production-ready, cloud-native microservices architecture demonstrating modern back-end development practices with reactive programming, event-driven design, and comprehensive observability.

This project showcases a complete microservices ecosystem built with Kotlin and Spring Boot WebFlux, featuring fully reactive, non-blocking communication patterns. The system demonstrates enterprise-grade patterns, including API gateway routing, event-driven architecture with Kafka, distributed tracing, and comprehensive monitoring.

Key features:

• 100% reactive: End-to-end non-blocking architecture using Spring WebFlux and R2DBC.
• Modern API gateway: Armeria-based gateway with gRPC support, rate limiting, and circuit breakers.
• Event-driven communication: Asynchronous inter-service communication via Kafka.
• Full observability stack: Integrated OpenTelemetry, Jaeger, Zipkin, Tempo, Grafana, and Prometheus.
• Production-ready features: Includes health checks, metrics, distributed tracing, and proper error handling.
• Type-safe database access: JOOQ integration with automatic schema generation from Flyway migrations.
• Container-first approach: Complete Docker Compose setup for local development and testing.

Scala ZIO Tapir - Asynchronous

https://github.com/git-josip/scala-zio-tapir
A comprehensive showcase of Scala 3, ZIO 2, and Tapir demonstrating modern functional programming patterns, reactive architectures, and production-ready practices. This multi-module project features REST API development, stream processing with Kafka, type-safe database access, and JWT-based authentication.

Core capabilities:

• REST API server: Type-safe HTTP endpoints using Tapir with automatic OpenAPI/Swagger documentation.
• User management: Complete authentication system with JWT tokens, password recovery, and email notifications.
• Product and review system: CRUD operations for products and reviews with relational data modeling.
• Kafka streaming: Producer implementation with ZIO Streams for processing large datasets.
• Database access: Type-safe SQL queries using Quill with connection pooling.
• Error handling: Comprehensive error types with proper HTTP status code mapping.

ZIO ecosystem features:

• ZLayer dependency injection: Compile-time verified dependency graph
• ZIO streams: Declarative stream processing with backpressure
• ZIO logging: Structured logging with SLF4J integration
• ZIO configuration: Type-safe configuration loading with automatic derivation
• ZIO Kafka: Reactive Kafka client integration

RESTful Scala Play Framework 2.4 Application

A restful Scala Play framework 2.4 application using Akka, Reactive Slick 3.0, Akka Actors for ActionLogs, JWT Token user identification and authentication, DDD domain validation, and Guice Dependency Injection

Code Sampling with Scala, Play

https://github.com/git-josip/scala-backend-sampling
This is a sample application using Scala, PlayFramework, and Postgres.


- Slick FRM for DB connection
- Akka Actors for ActionLog
- Deep validation where all errors, warnings, and info messages are collected and presented
- All REST responses are unified with the same structure every time, so it's easier to handle errors, warnings, and messages as well as specific data on pages.

Responses are structured for global and local messages. Local messages are coupled to some field, e.g., "Username is too long. Allowed length is 80 chars." Global messages are messages that reflect all data on page, e.g., "User will not be active untill is approved." Messages have three levels: ERROR, WARNING and INFORMATION.

(example response: http://demo3385913.mockable.io/api/v1/single-create-response)


- JSON Web Tokens (JWT) for user identification and authentication
- Divided into modules, e.g., user module, organization-structure module, etc. Each module has DAO, domain, validation, and service packages
- Spring dependecy injection

Chess Problem

https://github.com/git-josip/chess-problem-josip
The problem is to find all unique configurations of a set of normal chess pieces on a chess board with dimensions M×N where none of the pieces is in a position to take any of the others. Assume the colour of the piece does not matter, and that there are no pawns among the pieces. Write a program which takes as input:

- The dimensions of the board: M, N.
- The number of pieces of each type (King, Queen, Bishop, Rook and Knight) to try and place on the board.

As output, the program should list all the unique configurations to the console for which all of the pieces can be placed on the board without threatening each other. When returning your solution, please provide with your answer the total number of unique configurations for a 7×7 board with 2 Kings, 2 Queens, 2 Bishops and 1 Knight.

Red Bull Paper Wings 2009. Croatian Champion

National Champion of Croatia in the Red Bull Paper Wings contest in 2009 and participant in the Red Bull Paper Wings World Championships in Salzburg, Austria, where I took 43rd place.

Red Bull Paper Wings 2012. Croatian Champion

National Champion of Croatia in the Red Bull Paper Wings contest in 2012 and participant in the World Championships in Salzburg, Austria, where I took 20th place.

Education

2003 - 2009

Master's Degree in Electrotechnic Engineering and Computer Science

University of Split - Split, Croatia

Certifications

SEPTEMBER 2020 - SEPTEMBER 2023

AWS Certified Solutions Architect – Associate

Amazon Web Services Training and Certification

JULY 2020 - PRESENT

Spring Professional

Pivotal

Skills

Libraries/APIs

REST APIs, Node.js, JOOQ, JasperReports, Underscore.js, jQuery, Terragrunt, ZIO, FFmpeg, ZIO HTTP

Tools

Claude, IntelliJ IDEA, WebStorm, Git, Jira, Vagrant, Mongoose, Amazon Simple Email Service (SES), RabbitMQ, Amazon EKS, Terraform, Ansible, Gradle, Grafana, Kibana, Loki, Zipkin, Quill

Languages

Scala, Java, Kotlin, SQL, JavaScript, C, Java 8, ECMAScript (ES6), Python, Solidity, Yul

Frameworks

Spring Boot, Spring, Play Framework, WebFlux, Angular, Hibernate, Express.js, AngularJS, Spring WebFlux, gRPC, Camel, Hardhat, Truffle

Paradigms

Microservices, Kanban, Agile, Asynchronous Development, REST, DevOps

Platforms

Docker, Amazon Web Services (AWS), Kubernetes, Linux, Blockchain, MacOS, Amazon EC2, Apache Kafka, JVM

Storage

NoSQL, Elasticsearch, Memcached, MongoDB, PostgreSQL, Amazon S3 (AWS S3), Vertica, MySQL, Google Cloud

Other

Software Engineering, APIs, Distributed Systems, Startups, CTO, Sprint Planning, Coroutines, Dash, Streaming, RMI, Web MVC, Akamai, Poker, ECS, CI/CD Pipelines, Apache Cassandra, Prometheus, Karavan, Echidna, Distributed Software, tapir, OpenTelemetry, Jaeger, Tapir

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