Jurica Migač.

Experienced backend software engineer with extensive expertise in AEM and feature development, specializing in building efficient, high-performing applications. Passionate about designing and implementing scalable backend architectures, optimizing workflows, and enhancing user experiences through well-structured and maintainable code.

Photo session for iX Blog

Experiences

  1. Lead AEM Developer @ IBM iX

    Working as an Adobe Experience Manager Developer with the following technology stack: Java, Spring Boot, Javascript, HTML, HTL, SCSS, CSS, JUnit, Mockito, JCache, Redis, JCR, OSGi, Sling, MySQL, Liquid Pixels chains, and Akamai. Active peer code reviewer on Azure and Github on projects for insurance of code quality and for following coding guidelines acquired through years of working on a series of different projects, and requirements. My main responsibility in the Scrum team is to work on maintaining and developing components for campaigns and newsletters, by writing and implementing user stories for easier creation of new content, or new content request through requirements. Active domain developer in Adobe domain where I'm improving internal AEM projects with newer requirements or just application of best practices. Researcher in the domain of Sling and OSGi, for the possibility of extending existing features provided by Adobe Experience Manager through the use of OSGi's interfaces to hide abstract business logic behind custom annotation. Working on a microservice for one of the biggest clothing retail brands, which should be able to shorten Liquid Pixels URL into hashed values, while also providing an in-memory cache for faster access to hashed values in a database. Since the microservice will get millions of requests in a short period of time, the cache is also created per country and per region to assure maximal performance of the microservice.

  2. Java Web Developer @ IBM iX

    Working as an Adobe Experience Manager Developer with the following technology stack: Java, Javascript, HTML, and HTL. Active peer code reviewer on Azure and Github on projects for insurance of code quality and for following coding guidelines acquired through years of working on a series of different projects, requirements. My main responsibility in Scrum team is to work on maintaining and developing components for campaigns and newsletters, by writing and implementing user stories for easier creation of new content, or new content request through requirements. Through an internship, learning projects, domain, and project work have learned to write unit tests, documentation of done stories, tests and investigations

  3. Java Web Developer - Internship @ IBM iX

    Working on internal starter project developing web components in Adobe Experience Manager, shortly knows as AEM.

Projects

Multi-brand CMS solution for Car Manufacturer

Working as a Lead developer on the AEM (Adobe Managed Services) project. Migration of existing solution for luxury car companies to a new platform Adobe Experience Manager on-premise. Building and reinforcing best practices for component creation, services and integration through reusability across all of the brands on the project.

AEMCludoCaffeineGranite UIJavascriptDispatcherGoogle AnalyticsPDF Generation

Global solution for navigation with authoring experience

Working as an Adobe Experience Manager Sites developer on the custom navigation component, which embraces authoring experience, where each and individual container (tab item) could be switched in the edit mode and provide "preview-like" experience while authoring the navigation. Expanding Panel Container to accomadate needs of walking through containers in the edit mode.

AEMJavascriptSmartlingCoralGranite UI

Adobe Experience Manager Marketing Solution

Working as an Adobe Experience Manager sites developer on the AEM on premise infrastructure on the marketing solution for the Emails and Mobile notifications. Development of custom "blocks" for Emails, cross-different segments with Adobe Campaign integration. All of the images, videos were exposed through Liquid Pixels integration, where I wrote, managed and maintain written integration of set actions for image manipulation. As a developer also work on the solution to minimize the size of the Liquid Pixels chain with custom build microservice for URL Shortening, exposed through Akamai and internally made caching.

AEMAkamaiSmartlingMicroservicesSpringWebpackSonarqubeLiquid PixelsJavascriptSplunkAzure

Expertise

GraphQL with Adobe Experience Manager

Investigating and experimenting GraphQL implementation inside of the Adobe Experience Manager Eco-System, by extending and utilising Sling solutions to expose JCR structure through GraphQL. Using [Sling Apache GraphQL Core](https://github.com/apache/sling-org-apache-sling-graphql-core) for extension of the OOTB Sling with Sling Data Fetcher, Schema Providers and Type Resolvers. Building a separate solution in the Spring boot, comparing data through performance testing on larger data scale, and giving input on usage of GraphQL for certain implementation, query sizes, query types to utilise different caching layers, and persistent queries. Implementing custom extensions for GraphQL on Spring Boot using Annotation driven principle to setup the whole integration with few annotations on top of the objects and let the Java Runtime handle the rest.

Adobe Experience ManagerSlingJCRSpring BootJMeterGraphQL

Sling Specific Annotations

Working on a OSGi bundle (compatible with AEM Cloud) to expand existing AEM logic, and utilise exposed interfaces in the AEM dependency through AEM SDK API to utilise Specific Sling Annotations for Sling models to benefit readability, maintainability and usage of Java 8+ tools such as LocalDateTime and LocalDate objects in the Sling model as default injections.

SlingAdobe Experience ManagerOSGiAEM SDK API

Dockerized Solution for AEM platform

Working on a dockerized solution for OS agnostic Adobe Experience Manager setup with Python as a backend system, and React application for Frontend UI/UX. Solution enables users to start, stop, restart any of the services embedded with the AEM solution, such as AEM Author, Publish, Dispatcher, Kibana, Sonarqube. Since solution is dockerized, and all of the data is saved in the volumes (crx-quickstart/repository folder), data can be migrated from one instance to another in matter of the seconds utilising CRX2Oak tool for content migration. Dispatcher comes as fully setupped solution, and only few clicks use, by utilising OOTB solution provided in the Adobe Experience Manager archive on the Software Distributions. Kibana is used as a tool for the Logging Query, inspection analysis, and ultimate local dashboard tool to monitor your AEM instances. AEM Images are prebuild (no need for initial installation startup), just download a AEM image, start-stop-restart, and play.

DockerAdobe Experience ManagerShellPythonPython on WhalesReactElasticSearchKibanaDispatcherSonarqube