Portfolio
aqi.eco
I’m maintaining a SaaS that reads the data from an ESP8266-based, Luftdaten-compatible air pollution sensor and displays it in a nice way.
Coffee GB
Coffee GB is a Gameboy Color emulator written in Java 8. It’s meant to be a development exercise and a way to learn about internal architecture of a retro game console.
Github
Why did I spend 1.5 months creating a Gameboy emulator?
Carty
Carty is an integrated tool to create, edit, review and test Sling mappings for Adobe CQ/AEM.
SecureCQ
Secure CQ is a tool which can be used to find the most popular security problems in your CQ instance. It tests both instances (author, publish) and the dispatcher.
Sling Query
Sling Query is a Sling resource tree traversal tool inspired by the jQuery. It allows to avoid boilerplate code using convenient, functional API.
Sling Dynamic Include
SDI replaces dynamic generated components (eg. current time or foreign exchange rates) with server-side include tag (eg. SSI or ESI). Therefore the dispatcher is able to cache the whole page but dynamic components are generated and included with every request.
Conferences
adaptTo() 2019, Berlin
Deep-dive into cloud-native AEM deployments based on Kubernetes
Presentation gives an overview on the Kubernetes setup we internally use in Adobe, the issues we’ve run into and the ways we’re dealing with them.
Toruń JUG #36, 2017
Game Boy emulation in Java
Polish presentation about my Coffee GB emulator.
Presentation
Video
Event webpage
adaptTo() 2017, Berlin
Zero downtime deployments for the Sling-based apps using Docker
Presentation shows how the Composite Node Store, a new Oak feature, can be used together with Docker to perform blue-green deployments. This kind of setup allows to dynamically change a part of the repository (containing the application code), while leaving the content part untouched.
EVOLVE 2016, San Diego
CRX2Oak — all the secrets of repository migration
Basic CRX2Oak usage, more advanced options and some real-world cases of large-scale (hundreds of GBs) data migration cases.
CIRCUIT 2014, Chicago
Use SlingQuery and walk the tree with ease
I talked about Sling Query — a jQuery-inspired repository traversal tool for Sling.
Presentation
Blog post
Blog post (in Polish)
Sling Query
adaptTo() 2013, Berlin
Inter-Sling communication with a message queue
I presented results of my efforts to integrate Sling with ActiveMQ.
CQCON 2013, Basel
Security testing with SecureCQ.
I presented SecureCQ — automated security checklist for Adobe CQ5/AEM.
Java User Group 2013, Poznań
Shooting rabbits with sling
I introduced local Java User Group to the Apache Jackrabbit and Apache Sling.
adaptTo() 2012, Berlin
Sling Dynamic Include
I presented an useful cache tool for Sling.
Presentation
Video
Blog post on the SDI
Blog post on the conference
Sling Dynamic Include
Cognifide blog 2012
Multidomain CQ mappings and Apache configuration
I wrote a popular article on Sling mappings configuration.