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

Ivan Senji

Verified Expert  in Engineering

Software Developer

Location
Zagreb, Croatia
Toptal Member Since
September 2, 2020

Ivan is a senior software engineer with more than a decade of experience developing Java applications. He has had the chance to work on many different business domains, use many frameworks and technologies related to Java, and gain a lot of experience with some of them. He is most comfortable working on back-end development but has also worked on front-end development using Java-related technologies. He always strives to improve his coding and learn something new.

Portfolio

Kodis
Java, GraphQL, GTK+, Rust, PostGIS, PostgreSQL, Spring REST, Spring Data JPA...
Freelance
Java, Microservices, Spring, Apache Kafka, APIs, Open Policy Agent (OPA)...
Poliklinika Identalia, Zagreb
Java, PL/pgSQL, SQL, jMonkeyEngine, Smart GWT, PostgreSQL, Spring, JavaScript...

Experience

Availability

Part-time

Preferred Environment

Java, Linux

The most amazing...

...thing that I have implemented is a module for an in-house CRM application that generates personalized 3D animations of dental procedures.

Work Experience

Senior Software Developer | Self-employed

2019 - PRESENT
Kodis
  • Added new features to a custom social network for a client.
  • Implemented the back end for a GIS product using GraphQL.
  • Contributed to software for a 3D printer: one application running on a printer and another on a desktop computer (cross-platform).
  • Worked for a client in the banking industry on their messaging platform, gaining a lot of experience in CI/CD, infrastructure, AWS, and deployments.
Technologies: Java, GraphQL, GTK+, Rust, PostGIS, PostgreSQL, Spring REST, Spring Data JPA, JPA 2, Spring Boot, REST, Back-end

Java Developer for an Investment Company

2021 - 2022
Freelance
  • Worked on improving various aspects of code in a messaging platform, including simplifying code and improving how Kafka is used.
  • Worked on introducing Open Policy Agent to existing services.
  • Gained experience with CI/CD-related technologies, including AWS, Kubernetes, GitLab pipelines, and Terraform.
Technologies: Java, Microservices, Spring, Apache Kafka, APIs, Open Policy Agent (OPA), Amazon Web Services (AWS), Kubernetes, Terraform

Senior Software Developer

2014 - 2019
Poliklinika Identalia, Zagreb
  • Implemented a 3D service engine for generating personalized 3D animations of dental procedures.
  • Integrated third-party services into the CRM, including SMS, Viber, Vimeo, and the Google Calendar.
  • Provided first-line support for the end users of a CRM application.
  • Developed and maintained an in-house CRM application.
Technologies: Java, PL/pgSQL, SQL, jMonkeyEngine, Smart GWT, PostgreSQL, Spring, JavaScript, REST

Senior Software Developer

2011 - 2014
Asseco SEE, Zagreb
  • Worked in a team of two developers on a personal financial planner for a bank with a DB2 database in the back end.
  • Migrated the build of a complex project from Ant to Maven.
  • Contributed to a personal finance management product using an Oracle database and a data warehouse.
Technologies: Java, Pentaho Mondrian OLAP Engine, ETL, OLAP, Oracle, IBM WebSphere, CICS, IBM Db2, JDBC, JSON-RPC, Servlet

Software Developer

2006 - 2011
IN2 d.o.o., Zagreb
  • Developed web applications for various ministries/public sector.
  • Implemented web services for the public sector, and implemented the integration of web services into existing applications.
  • Contributed to a desktop application and web services (public sector).
Technologies: Java, SQL, SWT, Apache Maven, Ant Design, Apache CXF, JAX-WS, EJB 3, Oracle, Hibernate, JPA, RichFaces, JBoss Seam, JSF, Jakarta Server Pages (JSP), Apache Struts, Spring, Groovy

Ledger - Kotlin

Double-entry accounting based on text files. Implemented double-entry accounting inspired by Beancount. (https://github.com/beancount/beancount).

It allows for keeping financial transaction data in plain text files, reading it into memory, and processing and generating reports. Most of the syntax, as described in Beancount documentation, is supported.

PFM (Personal Financial Management) for AssecoSEE

https://www.youtube.com/watch?v=QXkeHCJs-cU
At Asseco, I worked on a really small team consisting of a project lead developer and myself. One of the most important things I learned there while working in the banking sector on personal financial management software, was that incredible software can be created relying only on core Java/JDBC and not using a library or framework for every little feature. This approach, at first, might seem counter-intuitive and might seem that it costs time implementing features by yourself, but this approach has, in many instances, turned out to be very flexible.

CRM and 3D Animations Generation for Identalia

At Identalia (a dental clinic), I worked as a senior developer in a small team working on an in-house CRM. While there, I had an opportunity to work on all parts of software development: from talking to end-users, gathering new requirements and feature requests, collecting feedback on new features, implementing new features and interesting modules, testing, and documentation. I also learned how a seemingly small change in a feature (saving a user a few clicks for example) can have a huge impact when multiplied across all users and it is much easier to work with users that are happy with the application they are working on.

One of the modules that I am happy to have had a chance to implement was one that had a task to generate personalized (for each patient) 3D animations that depicted patients' dental procedures. This module was not only extremely interesting because of my old interest in computer graphics, but it was also an invaluable tool for explaining dental procedures to patients who felt more comfortable when things were explained visually.
2000 - 2006

Master of Engineering Degree in Computer Engineering

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

DECEMBER 2012 - PRESENT

Functional Programming Principles in Scala

Coursera

Languages

Java, SQL, Java 8, PL/pgSQL, Kotlin, Groovy, CICS, Rust, GraphQL, Scala, JavaScript

Frameworks

Spring Boot, Spring, Jakarta Server Pages (JSP), JPA, Hibernate, Apache Struts, JSF, JBoss Seam, Apache CXF, Ant Design, jMonkeyEngine

Tools

Apache Maven, Servlet, Pentaho Mondrian OLAP Engine, GTK+, Terraform

Platforms

Linux, Oracle, IBM WebSphere, Docker, Apache Kafka, Amazon Web Services (AWS), Kubernetes

Storage

PostgreSQL, Spring Data JPA, IBM Db2, PostGIS, Elasticsearch

Other

APIs, API Integration, EJB 3, Open Policy Agent (OPA), Back-end, Cloud

Libraries/APIs

RichFaces, JAX-WS, SWT, JSON-RPC, JDBC, Smart GWT, JPA 2, Spring REST

Paradigms

OLAP, ETL, Microservices, REST

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