GraphCompose 1.8 banner with native gradient bar charts, rendered by the engine itself

GraphCompose 1.8: Documents That Can Draw

For most of its life, GraphCompose could lay out text and structure very well, and draw very little. It produced invoices, reports, CVs, and proposals — documents that are mostly typography, spacing, and tables. That was the point. But real business documents are not only words. They have a revenue chart, a sparkline next to a KPI, a logo, a divider shape, a coloured panel with a soft gradient. Up to now, every one of those meant rasterizing an image somewhere else and pasting it in. ...

19 June 2026 · 7 min · Artem Demchyshyn
Four abstract monoliths on a dark plain, a metaphor for the four leading AI labs and their different foundations

The Race Where Two Players Have Nowhere to Retreat

Four names sit at the top right now: Google, xAI, OpenAI, and Anthropic. The list of companies shipping something is endless — Meta, DeepSeek, Qwen, and so on. But at the top, where the real competition happens, it’s these four. And they’re playing completely different games. Four players, four foundations Each of the four has its own strength — and that strength isn’t only the model. Google went its own way. They have Search behind them and the whole stack of services half the world already uses. They don’t need to convince you to come to their model — they bake it into the places you already live. Mail, search, docs, your phone. It’s a very strong play: the model doesn’t even have to be the best, because it’s everywhere. ...

15 June 2026 · 6 min · Artem Demchyshyn
Pipeline diagram: backend data flows through a document engine and a tested layout into business documents

Document Generation Is Backend Infrastructure

Most backend systems eventually need to produce documents: invoices, reports, offers, letters, CVs, certificates, export packs. The business treats those documents as serious output. They are sent to customers, attached to applications, used by operations teams, and archived for compliance. The code that produces them often does not get the same respect. This is the companion to What Drove Me to Build GraphCompose — that post was the personal story of how GraphCompose started. This one is about a claim I now believe after living inside that code: document generation is backend infrastructure, and it pays off when you build it like infrastructure instead of like a one-off script. ...

15 June 2026 · 4 min · Artem Demchyshyn
A person pushing a large modular structure made of technology symbols

Why I Started This Blog

I decided to create a personal blog because I often have thoughts that are too large for a quick note and too useful to leave only in my head. My name is Artem Demchyshyn. I am a Ukrainian Java Backend Developer based in London. My work is mostly around backend systems, Java, Spring Boot, APIs, databases, product logic, and the practical engineering decisions that make software reliable. But this blog is not only about code. ...

14 June 2026 · 4 min · Artem Demchyshyn
A developer connecting layout fragments into finished document pages

What Drove Me to Build GraphCompose

It started with a simple idea: I wanted to create my own CV in pure Java. No big framework. No designer tool. No attempt to overengineer everything before I even had one page. Just Java, PDFBox, and the confidence every developer has right before a supposedly small task becomes a real project. At first I thought: how hard can it be? Very quickly I found myself inside the classic PDF generation loop: ...

14 June 2026 · 9 min · Artem Demchyshyn
A developer looking at layered document layout plans

Lessons from Building a Java PDF Engine

Building a PDF engine in Java is a useful way to meet a lot of hidden complexity at once. Text measurement, pagination, styling, rendering order, reusable components, API design, testing, and performance all become visible very quickly. This is not a tutorial about drawing text into a PDF. It is a reflection on what I learned while building the layout engine behind GraphCompose: the hard part is rarely one isolated algorithm. The hard part is making many small rules work together until the final document feels reliable. ...

14 June 2026 · 7 min · Artem Demchyshyn
A person using leverage to move a large stone covered with code symbols

AI as a Developer Tool, Not Cheating

AI tools make some developers uncomfortable because they blur a familiar line. If a tool can suggest code, explain an API, draft a test, or refactor a function, does using it mean the developer is cheating? I do not think so. But I also do not think AI removes responsibility from the developer. Tools have always changed the work Modern development is already tool-assisted. We use IDE completion, static analysis, linters, formatters, frameworks, dependency managers, documentation search, and generated code. ...

14 June 2026 · 2 min · Artem Demchyshyn
A question mark formed from butterfly illustrations on a pale background

Claude Fable 5 and the Shape of Frontier AI Access

On June 9, 2026, Anthropic announced Claude Fable 5, a Mythos-class model made available for broader use with stricter safety layers around it. On June 12, Anthropic added an update saying that access to Claude Fable 5 and Claude Mythos 5 was temporarily unavailable while they worked to restore it. That timeline is already interesting. Frontier AI releases are starting to look less like simple product launches and more like controlled deployment systems: a powerful model, safety routing, monitoring, fallback behavior, access policy, pricing, and operational risk all wrapped together. ...

14 June 2026 · 4 min · Artem Demchyshyn