Reactor 04: New Shift
3D-printed portal gun replica

Just finished my first large 3D-printing project. For sure I couldn’t pass by when I saw this amazing portal gun replica from @KirbyDowney_65 on Printables. Here I’d simply like to share some highlights and happy moments I had while doing it.
I started by printing claws and assembling them, as they seemed the most fragile and tricky to assemble, but not so time-consuming when printing.

A few more printing sessions and the remaining black parts were also done:
Databend on AWS/EKS

Over the Christmas silent period, I got my hands on Databend, a data warehousing solution intended to provide an easily scalable, cloud-first, SQL-based data engine. The keywords bingo speaks for itself: it’s written in Rust, friendly with containers/Kubernetes (k8s), elastically scalable, and uses Raft as a consensus algorithm instead of Paxos. In short, it fits all the last five years’ fashion trends in data warehousing. What specifically appealed to me was the ability to use cloud object storage as a storage backend and the isolation between compute and storage. Benchmarks comparing its performance with alternative open-source solutions ClickBench and with cloud alternatives show some interesting results.
Flipper Zero for testing old dusty electronic components
ClojureD 2020
Last saturday I visited my second ClojureD conference in Berlin. It’s an amazing experience meeting people who indirectly influenced my choice of programming language for the past several years (kudos to Alexander and Nikita).
It’s also very pleasant to see how many new things popped up recently in Clojure community.
Here are few highlights I wanted to share:
Babashka by @borkdude (github)
Really appreciate how much effort Michael puts into the modern tooling for Clojure!
Querying the databases from REPL
For already quite some time I prefer using Clojure REPL instead of any other tools for querying the databases. At work we have variety of the storage solutions available (Postgres, Aurora, Presto, Hive), and having a single consistent SQL read-only API to them is crucial for productivity. Additional benefit compared to the graphical tools available in the market is the ability of programmatic post-processing of the data using higher-level language. Being very data-oriented, Clojure comes really handy.
Mastering the Tooling around Clojure Data Analysis
My December present to myself was a series of books. One of them was called “Mastering Clojure Data Analysis” by Eric Rochester.
It contains a comprehensive set of examples on analysing and visualising data using Clojure.
I found it quite interesting mainly because a couple of use-cases covered in the book correllated very well with
daily work, so I thought “why not?”.
Once I got the book, I realised what’d be the biggest challenge. It’s first written in 2014, and Clojure tooling made an enormous leap
in this 5 years.
Obstacle? No, challenge! I really wanted to get my hands dirty with some of the examples in there,
but I also resisted to use outdated libraries and tools. Also long time ago wanted to start using deps.edn and it was also a good opportunity to
to do that.
So, long story short, the process began. I read through and roughly got 60% of the idea of the first Chapter (facebook graph analysis).
But for sure, real problem solving goes second, but setting up the tooling goes first!
Simple data-driven applications in Clojure
Sometimes the information from the data lake/warehouse/pond/whatever simply needs to be exposed via the REST-api. Just getting the tooling right sometimes may be troublesome. Here’s an example on how things can work out in clojure.
Let’s say we have an SQL-based engine like Presto (or Presto) as the main interface to the datalake. Let’s check how we can leverage the power of Clojure to build a simple application for fetching the data from Presto.
3 libraries to work with swagger in Clojure
OpenAPI specification drills it’s ways into becoming a standard in many software companies. Let’s say your organization wants to follow the API-first approach. It means that before implementing any cross-team (or 3d party integration) functionality, the parties first agree on the contract, and review it.
I had this approach in mind since I’ve started working in a small payment provider company. Contracts there meant everything, and negotiating the API/authentication process was basically 80% of the job. When I joined Zalando in 2017 I was very happy to see this approach being adopted company-wise.