Scroll To View More
Matko Šuflaj, Java Developer in Zagreb, Croatia
Matko Šuflaj

Java Developer in Zagreb, Croatia

Member since April 6, 2016
Matko is a software engineer with extensive experience in Java-based projects where architecture spans several tiers and layers of integration. His main focus is the Java and Spring ecosystem, but he also adapts quickly to developing front-end functionalities. Among the traits he values most are dedication, responsibility, and honest effort. He gives it all in everything he does, which results in quality solutions.
Matko is now available for hire

Portfolio

  • Freelance
    Java, Spring, Spring boot, REST API, AWS, Spring Thymeleaf, Stripe API
  • Croz d.o.o.
    Java, Spring, JavaScript, Knockout.js, Apache CXF, Websphere AS, Splunk...
  • Equidem d.o.o.
    Java, Spring, Spring Boot, AngularJS, Linux, ESXi VMWare, Nginx, SOAP, REST

Experience

  • Eclipse IDE, 7 years
  • Java, 7 years
  • Object-oriented Design (OOD), 7 years
  • Web App Development, 5 years
  • JPA, 5 years
  • Spring, 2 years
  • Spring Boot, 1 year
  • REST, 1 year
Zagreb, Croatia

Availability

Part-time

Preferred Environment

Eclipse, Git, SVN

The most amazing...

...thing I've coded is a genetic algorithm which solved the timetable problem of scheduling students' exams in an educational institution.

Employment

  • Software Engineer

    2016 - PRESENT
    Freelance
    • Implemented payment processing functionality for customer software using Stripe API.
    • Integrated a customer's web application with Mailgun and mail sending functionality.
    • Implemented a REST API on existing back-end functionality for a customer application.
    • Integrated an existing back-end in Spring with Amazon S3 Web Services.
    • Changed an existing StringTemplate engine to Spring's Thymeleaf, utilizing new templates in mail sending.
    • Implemented stateless JWT authentication for a client's back-end.
    • Focused on application security on a client's application by encrypting sensitive application and configuration data.
    Technologies: Java, Spring, Spring boot, REST API, AWS, Spring Thymeleaf, Stripe API
  • Senior Software Engineer

    2015 - 2016
    Croz d.o.o.
    • Set up architecture in the software development process.
    • Collaborated with the support and development team for core-service software in one of the biggest banks in Croatia. Additionally, supported and developed new functionality for an internet banking product.
    • Adapted quickly; successfully implemented fixes for crucial bugs found during the testing phases in preproduction less than a month after being introduced to the company and software processes, without deeper previous knowledge of the code.
    • Designed, developed, and deployed a solution which enabled communication of bank products with Oracle Real-time Decisions. Functionality was developed on the existing logging system, which was additionally enhanced for the purpose of tracking customer experience and retrieving real-time data from Oracle RTD.
    • Upgraded technical elements of the SW process by proposing new solutions and tools.
    Technologies: Java, Spring, JavaScript, Knockout.js, Apache CXF, Websphere AS, Splunk,PL-SQL, HTML, CSS
  • Manager, Systems Engineering

    2013 - 2015
    Equidem d.o.o.
    • Maintained company systems and infrastructure, proactively using the role to better the overall software, system, and company procedures. Continuously promoted excellence.
    • Raised awareness for the Clean Code paradigm, introduced pair programming in education, promoted and handled code reviews, introduced the idea of Agile methodology, and introduced the idea of creating a User Experience section.
    • Improved communication between employees and all levels of management, initiating and setting a standard of one-on-ones.
    • Promoted switching to newer technologies (Spring framework and AngularJS) from a business and technical point of view, introducing new technologies to high level management.
    • Organized webcasts for company employees with topics specific to software development. Organized and reviewed presentations for software design patterns and high availability, and maintained the knowledge management process specifically in the system sector.
    • Conducted software security research, resulting in company wide setup of web application security testing processes. The main focus was on penetration testing, with emphasis on black box testing with elements of grey box testing.
    • Started and conducted education processes for AngularJS and Spring on a sector level. Assembled best practices for AngularJS projects.
    • Conducted objective research of pros and cons of using enterprise Java in a non-enterprise-like webshop project.
    Technologies: Java, Spring, Spring Boot, AngularJS, Linux, ESXi VMWare, Nginx, SOAP, REST
  • Sofware Developer/Team Lead

    2011 - 2013
    Equidem d.o.o.
    • Led the integration team for a Russian and Bulgarian CRM project, and later took over technical responsibility for the Ukrainian version of the product.
    • Continued the work I began as developer in terms of overviewing the system architecture and delegating responsibilities in a matrix-managed company of 40+ developers.
    • Defined the main points of integration with core banking systems, including Microsoft Active Directory, Oracle FlexCube, Oracle Database 11GR2, and SAP business objects. Connected the system with banking in-house solutions and worked on the functionalities in terms of overviewing the codebase and configuration.
    • Managed "hot deploys" with immediate changes to the code after going live with a system specifically for Bulgaria.
    • Solved critical issues of users not being able to log into the live system.
    • Took the role of education team lead - set up extensive education processes for the purpose of educating new employees (and existing ones) in technologies the company used for products - Java EE (EJB3, JSF 1.2), JBoss AS 5.1. Created specific tasks for employees to go through. Education was done on individually prepared isolated "testing-polygons" where employees would then code a range of functionalities, isolated from the "live" environment.
    • Set up a company knowledge library, carefully filtering and setting up the most valuable literature both developers and leads/managers needed to better themselves.
    • Chosen to present the software architecture to external auditors for an online front-end application that the company developed.
    • Supported and deployed the products on Go-Lives directly on customer sites.
    Technologies: Java EE, EJB3, JSF 1.2, Oracle DB, JBoss AS
  • Software Developer

    2011 - 2011
    Equidem d.o.o.
    • Developed functionalities for a customer relationship management system to be used in financial institutions in central and eastern Europe. The product had a unified codebase with specifics for each country to where the product would be later deployed.
    • Implemented, among other things, core campaign functionalities, an online service serving customer information data available to cash teller applications, and a Java client solution connecting to a .NET web service.
    • Proactively involved in the integration phase of the software development process for the CRM product, involved in defining main functionalities and architecture.
    • Sent on numerous international workshops acting as a company consultant, defining and explaining the product solution from both business and technical points of view.
    • Mapped processes extensively for the CRM product with the goal to map data from external systems in different countries to the unified CRM product. Defined architectural functionalities and managed the process less than 6 months into my employment here.
    Technologies: Java EE, EJB3, JSF 1.2, Oracle DB, JBoss AS

Experience

  • Genetic Algorithm Timetabler (Development)

    A Java application I built that utilizes the power of genetic algorithms to produce the best timetable for student exam sets. Constraints used during the genetic algorithm processing were students (classes), exams, and space availability. The application was a standalone desktop, and Swing GUI was used to develop the user interface.

  • Bookshelf (Development)

    A "GoodReads" like platform where users can review and track their favorite books. I developed both the back-end and the front-end. Technology highlights: Spring Boot, AngularJS 1.4, AOP, Liquibase.

  • Hibernate Mapping Generator (Development)

    A tool developed for the purpose of mapping Java Bean objects to hibernate definitions that could then be used for object persistence. The user can load Java files from any particular package from a disk, and the program loads the class attributes into memory, which the user can model as per his needs to produce an XML hibernate mapping file. Functionalities include general hibernate ORM options, relationship mappings, ID generations, attribute constraints, and more.

  • Martial Arts Admin (Development)

    A Java Desktop application developed for the purpose of tracking the business of an owner of a martial arts club. The owner had the option to track memberships, equipment, employees, their wages, and club sponsorships.

  • Audio Video Library (Development)

    A Java desktop application built for the purpose of tracking audio and video titles in a library. Functionality includes tracking users, title reservations, and rent. The application was specific since it did not have, for that time, a standard relational database beneath, but was developed for different types of databases: object, object-relational, and XML.

  • Business intelligence (Development)

    A Java-based desktop application developed for the purpose of digging out and analyzing business data. The user could use the program for analyzing a specific set of business-important data, for example sales revenue by product and/or department.

  • Usable Security (Other amazing things)
  • Software Security (Other amazing things)
    https://www.coursera.org/account/accomplishments/verify/VXTJGECRU3

    Coursera's Software security accomplishment.

  • Java in the Cloud: Continuous Integration Setup Tutorial (Publication)
    More than two decades ago, Java shook the world with its "Write once, run anywhere“ slogan. Today, Java developers have at their disposal a whole set of tools, such as Spring Boot, Docker, Cloud, Amazon Web Services, and Continuous Delivery, to take development and delivery to a whole new universe. In this article, Toptal Freelance Software Engineer Matko Šuflaj presents all these technologies and guides us through a step-by-step tutorial on how to build a small microservice and prepare it for continuous integration in the cloud.

Skills

  • Languages

    Java, SQL, HTML5, JavaScript
  • Frameworks

    Spring, Spring Boot, JPA, Hibernate, Apache CXF, AngularJS
  • Tools

    Eclipse IDE, Jenkins, Gradle, Gulp.js, NPM, Nginx, Maven, Git, Bower, Jetty, Apache Tomcat, Subversion (SVN)
  • Paradigms

    Object-oriented Design (OOD), DevOps, Object-oriented Programming (OOP), Object-relational Mapping (ORM), REST, Clean Code, SOLID Principles, Test-driven Development (TDD), Dependency Injection, Unit Testing
  • Other

    Web App Development, SOAP, Integration, Enterprise Integration, VMware ESXi
  • Platforms

    Docker, Amazon Web Services (AWS), Oracle, Linux
  • Storage

    Relational Databases, JSON, Database Modeling, MySQL, JBoss AS
  • Libraries/APIs

    JAX-WS, Stripe API

Education

  • Master of Science in Computing degree in Software Engineering and Information Systems
    2006 - 2011
    Faculty of Electrical Engineering and Computing - Zagreb
I really like this profile
Share it with others