Mladen Čikara, Developer in Zagreb, Croatia
Mladen is available for hire
Hire Mladen

Mladen Čikara

Verified Expert  in Engineering

Software Engineer and Developer

Zagreb, Croatia

Toptal member since July 1, 2019

Bio

Mladen is a software engineer with more than a decade of experience developing Java applications. He's worked mainly with financial institutions but also with small businesses on the creation of custom CRM. He specializes in scalable enterprise applications. He is always looking to obtain a deep understanding of the domain he is working in so that the right technology is applied to the right problem.

Portfolio

VG Soft
Spring Boot, Spring, Java, Gradle, Git, Oracle Database
Liferay, Inc.
Amazon Web Services (AWS), Spring, Java, Cassandra...
Polyclinic Identalia
Spring, Java, ZeroMQ, Ant Design, PostgreSQL, Apache Tomcat, Smart GWT

Experience

  • Java - 15 years
  • Spring - 14 years
  • Hibernate - 12 years
  • SQL - 12 years
  • JPA 2 - 10 years
  • Web Services - 8 years
  • Spring Boot - 8 years
  • REST APIs - 4 years

Availability

Part-time

Preferred Environment

Docker, Git, IntelliJ IDEA, Linux

The most amazing...

...thing I've created was a connector between a CRM app and telephone center that routed incoming calls to operators and also opened a window with client details.

Work Experience

Senior Software Developer | Freelancer

2018 - PRESENT
VG Soft
  • Constructed a load-testing suite for stress-testing web applications using JMeter.
  • Developed REST endpoints for entering and validating client data.
  • Used Spring aspects for validating input data and logging.
  • Created custom SQL queries to optimize data fetching.
  • Worked with the front-end team to optimize the REST API and lowered the number of requests from the front by 90%.
Technologies: Spring Boot, Spring, Java, Gradle, Git, Oracle Database

Software Engineer

2015 - 2018
Liferay, Inc.
  • Developed features for Liferay Connected Services, a metrics-gathering and processing service.
  • Enabled blue-green deployment on AWS stack using Ansible scripts.
  • Created ELK (Elasticsearch, Logstash, and Kibana) service for managing application logs.
  • Built a module to determine the right number of CPU cores on Liferay Connected Service clients for different platforms (Docker, AWS, VMware).
  • Made a client for Liferay Connected Services more resilient to connectivity problems.
Technologies: Amazon Web Services (AWS), Spring, Java, Cassandra, Amazon Simple Queue Service (SQS), Amazon EC2, Logstash, Kibana, Elasticsearch, Docker, Ansible, Apache Tomcat, MySQL, Liferay

Senior Java Programmer

2013 - 2015
Polyclinic Identalia
  • Developed new features for a custom-made CRM application for a medical tourism company.
  • Provided the 1st line of support for a CRM application with direct contact with application users.
  • Built an integration module that connected a CRM application to a telephone system, routed incoming calls to the appropriate operator, and enabled starting outgoing calls from a CRM application using ZeroMQ.
  • Created an integration module between a CRM application and a 3rd-party ERP application.
  • Developed a module that validated company invoices.
Technologies: Spring, Java, ZeroMQ, Ant Design, PostgreSQL, Apache Tomcat, Smart GWT

Software Engineer

2007 - 2013
IN2 d.o.o.
  • Supported and maintained a type of back-office software for brokerage firms using Oracle Forms.
  • Developed and integrated connectors for different financial services using Apache Camel and the FIX protocol.
  • Built and implemented an information system for the control of workflows (with the BPMN tool) for money distribution and vault management.
  • Developed an application for managing the sales of mutual funds.
  • Created a module for direct market access to the ZSE (Zagreb Stock Exchange).
  • Found and fixed a memory leak that crashed the application every two weeks.
  • Worked as a Java expert in a team that analyzed requirements and wrote tender bids. I determined the feasibility of requirements with technologies that we used and gave time estimations.
Technologies: Hibernate, Spring, Apache Tomcat, WebSphere MQ, FIX Protocol, Apache Camel, Business Process Modeling Notation (BPMN), Apache Maven, PL/SQL, SQL, Vaadin, Spring Security

Experience

Senior Java Back-end Developer

https://dextcloud.com/
Dextcloud is a low-code development platform that aims to help users develop REST APIs with minimal code required.

I was a back-end developer in a small team of five people. I was mainly working on developing back-end features and working very closely with front-end team members to connect the back end and front end and with operations team members to help with the CI/CD pipeline. We used microservice architecture and Kubernetes to allow the application to run on AWS, GCP, and OpenShift. I was involved in deploying the application to a banking client: the app was in production use for more than a year there. As this platform allows developing a wide range of APIs, I was fortunate to work with a large number of interesting services, e.g., AWS, GCP, Kubernetes, the Stripe API, Auth0, Amazon Cognito, Okta, HashiCorp Vault, MongoDB, Kafka, Salesforce to name a few. I also ran daily stand-ups and scrum evens after the scrum master left the team, so I was closely involved in backlog grooming and feature planning.

Datagame

https://datagame.io/
Datagama is an application for gamifying surveys to make them more engaging for end users.

My tasks were to improve the existing application by connecting it to Stripe and enabling monetization. I was also working on improving existing games in jQuery and adding new games. The back end was done with Spring and Java, and I had to add features so that further improvements from games would be saved and processed.

Client | Partner Module | Zagrebačka Banka

CPM is an application for gathering all required data from bank clients and calculating all documents that need to be received to prove the gathered data. CPM is used by all bank (Zagrebačka Banka) employees who are working with clients in all 97 Croatian offices.

I worked as a senior software developer for the back-end part of the application. I worked very closely with the front-end team to create a REST API that minimizes the number of requests from front to back. I also worked on processing incoming data and storing them in Elasticsearch for quicker and more flexible queries. I worked on creating optimized SQL queries and PL/SQL procedures with the database team.

We used domain-driven design for modeling applications and scrum for project management.

Liferay Connected Service (LCS)

LCS is a set of tools and services for managing and monitoring Liferay instances. It helps users manage Liferay clusters by installing fix packs, monitor performances, and manage subscriptions. LCS is separated into two parts. The back end gathers and processes data and a Liferay plugin that is installed on Liferay Portal instances. We built the back end with microservices architecture and deployed it in AWS.

I worked as a software developer on both parts but mainly on the back end. In addition to Java programming, I was tasked with writing the Ansible script that automated deployment to AWS.

I also managed ELK (Elasticsearch, Logstash, Kibana) for gathering and classifying all logs from all services in one place.

CRM for a Dental Clinic

Identalia CRM is a custom-made CRM system for tracking dental patients from initial contact until all medical procedures are done. It has three distinct parts. The first is for managing a call center where all contact client data is stored and presented to the operator. The second part is for managing medical patients' stay in the clinic, where doctors and nurses could enter all procedures that were done. The third part was meant to manage medical supplies.

While working for Polyclinic Identalia, I helped develop a CRM application. I worked as a developer in a small team with two other developers. That is why I was involved in every aspect of making the application.

Despite having a small team, we made an application that connected telephone switches and routed incoming and outgoing calls to relevant call operators in our CRM application. We also connected our application to a third-party ERP system.

We provided support for applications and worked very closely with our users. That enabled us to focus our development on features that brought the most business value.

Mutual Fund Sales Application

I was the architect and lead developer for an application for managing the sales of mutual and retirement funds for NLB (Nlb.si). I served as the team lead for a team of three people. This application recorded prices and quantities of shares and calculated provisions awarded to the company's sales force. The application was developed with Vaadin and Spring.

Cash Money Tracking System

Cash Money Tracking System is an application that IN2 developed for FinaGS (www.finags.hr). FinaGS is Croatia's largest company for storing, transporting, and distributing cash and securities.

In this project, I started as a software developer, but I was promoted to lead developer because the previous lead developer had left the company during the project. We used the BPMN tool ActiveVOS to track all operations of FinaGS. The front end was created with Vaadin, and the back end was created with Spring and deployed to Tomcat servers. We also connected to machines for counting money to record counts and to signature pads to record operators for every operation.

BrokerIN2 | ORC Trader Connector

This project involved connecting BrokerIN2 with ORC Trader (Itiviti.com/orc). With this connector, we enabled users of BrokerIN2 to send orders to the stock exchange via the ORC application.

The connector was created in Java and Spring and deployed on the JBoss application server. I used the Financial Information eXchange (FIX) protocol to get data from the market and stored it in our database. In this project, we used enterprise integration patterns (EIP) to connect applications.

BrokerIN2

BrokerIn2 is an application for the back office of an equity trading company. It manages client personal data, information about buy and sell orders, and executions of said orders. It calculates the fees that the client is charged. All documents required by law are generated in this application.

I worked in a small team of three people as a junior software developer, and we were tasked with creating database models, business logic, user interfaces, and reports. The application was created in PL/SQL using Oracle Designer, Oracle Forms, and Oracle Reports.

ENC Checker

ENC Checker is a simple Android application that I created while learning Android development. It checks a balance on an ENC device (electronic toll collection system) for one Croatian ENC provider (HAC).

Learning Tests

I try to get a deep understanding of the technologies and tools that I use. For that, I use learning tests and techniques that I have learned from Robert C. Martin (Uncle Bob). I also create tests to learn a language, tool, or framework. The most important tests are those that show how I will be using this technology in a real project, but these tests are a great way to learn the limitations of the tools I'm testing.

These tests are great tools even later when I have a good understanding of the technology because when a new version is released, I can update my build script and check for failing tests.

Presentations

I believe that sharing knowledge is an important and great way to get a deeper understanding of what you are presenting. It is also a great way to get other perspectives during Q and A. That is why I try to present at the Croatian Java Usergroup conference whenever I can.

A presentation about connecting to ZeroMQ and server-side push to the front end: https://www.slideshare.net/hujak/javacro14-zeromq-and-javascript-mladen-ikara

A presentation about using ELK stack in Liferay Connected Services (LCS): https://2019.javacro.hr/JavaCRO-16/Program/ELK-Stack-Problemi-i-nasa-rjesenja

A presentation about creating simple query language with ANTLR (ANother Tool for Language Recognition): https://2020.javacro.hr/JavaCRO-18/Program/Creating-simple-languages-with-ANTLR

ELM Stopwatch

https://mcnullty.github.io/
ELM Stopwatch is a simple progressive web application I created while learning about ELM programming language. I used Bootstrap for the presentation.

Repository: https://github.com/McNullty/elm-stopwatch

Education

2008 - 2009

Diploma in Office Management

University of Zagreb, Faculty of Electrical Engineering and Computing - Zagreb, Croatia

2000 - 2007

Master of Engineering in Computer Engineering

University of Zagreb, Faculty of Electrical Engineering and Computing - Zagreb, Croatia

Certifications

OCTOBER 2023 - OCTOBER 2026

AWS Certified Solutions Architect - Associate (SAA)

Amazon Web Services Training and Certification

JUNE 2012 - PRESENT

Java Standard Edition 6 Programmer Certified Professional (OCJP)

Oracle

Skills

Libraries/APIs

JPA 2, REST APIs, Smart GWT, Spring REST, QueryDSL, Hystrix, ZeroMQ, Java Message Service (JMS), Liquibase, Stripe, jQuery

Tools

Git, Apache Maven, Gradle, Flyway, Subversion (SVN), Ansible, Apache Tomcat, Apache JMeter, AWS ELB, Eureka, IntelliJ IDEA, Kibana, Logstash, Amazon Simple Queue Service (SQS), ELK (Elastic Stack), ANTLR 4

Languages

Java, SQL, HTML, HTML5, Groovy, CSS, Clojure, Elm, Java 8

Frameworks

Spring, Spring Boot, JUnit, Hibernate, Vaadin, Spring Security, Spring Integration, Ant Design, Bootstrap, GWT, Apache Camel, JPA, Spock Framework, OAuth 2, Android SDK, Thymeleaf

Paradigms

REST, Microservices, Microservices Architecture, Agile Software Development, Scrum, Business Process Modeling Notation (BPMN), Management, Testing

Platforms

Linux, Windows, Amazon Web Services (AWS), Amazon EC2, Docker, Kubernetes, Oracle Database, WebSphere MQ, Oracle, Software Design Patterns, Google Cloud Platform (GCP), Apache Kafka, OpenShift

Storage

Spring Data JPA, Amazon S3 (AWS S3), PL/SQL, PostgreSQL, MySQL, Oracle RDBMS, Databases, H2, Cassandra, Elasticsearch

Industry Expertise

Banking & Finance

Other

Back-end, Web Services, Single-page Applications (SPAs), Domain-driven Design (DDD), Architecture, Project Lombok, HATEOAS, Netflix OSS, Liferay, FIX Protocol, AsciiDoc, Software Development, Finance, Software Design, Software Deployment, HTTP, AWS Certified Solution Architect, AWS Cloud Architecture, Cloud Services, Cloud Infrastructure

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