Principal Engineer · Architecture · Generative AI

Two decades.
Up the abstraction.
With curiosity for challenges.

Nineteen years, from assembler and bare-metal C to generative AI. Every few years the stack changed underneath me. What did not change: I learned the layer below the new thing until I could build on it with confidence.

EmbeddedCompilersJVMMicroservicesGenAIArchitecture

Looking back, it is a curious climb up the abstraction ladder.

This is my journey through IT, the way I would tell it over a coffee.

Lower is closer to the metal. Each point is a move, not a year.
abstraction2001Logic gates2005Boards, by hand2006C, and algorithms2016Compiler, assembler2017Java, Eclipse tooling2018Angular, the browser2019JVM internals2022Cloud and APIs2024GenAI and agents
the 1990s Adaševcibefore any of it

Taking things apart

As a kid I liked to take things apart and try to rebuild them. I had a passion for electronic devices. I would get old calculators, remotes, anything I could find, and break them open. I still remember the first one I managed to fix: a shop calculator that printed receipts on a roll of paper. I could not find the proper paper to test it, so I cut strips out of an A4 sheet and fed them in, just to see it work.

Owning a computer was not an option, though I dreamt about it. I did get my hands on a games console with a built-in QWERTY keyboard. There was no operating system and no way to program anything, but some of the games were very good for practising typing. So I did. I could type fast long before high school.

In the seventh grade I finally had access to a computer at school, a Commodore if I remember correctly. I wrote my first lines in QBasic. I knew that was what I wanted to do. There was no doubt.

2001 — 2005 Sremska Mitrovicaelectrotechnical high schoolautomated systems

Electronics, but not by choice

There was no option in my region to go to a high school focused on informatics or programming. An electrotechnical high school, in the section for automated systems, was the closest I could get.

By accident it was a great choice. It laid a very good foundation for understanding electronics and how devices work, long before learning to program them. The inside of a computer, of a printer. Digital Electronics, after which I could draw a rudimentary calculator out of nothing but logic gates — AND, OR, XOR, NOR. Before I wrote my first real lines of code, I understood how a CPU works.

It ended with a diploma project that started as bare copper. I drew the circuit by hand, made the board myself with acid rather than ordering one, burned a controller chip and a flash ROM, and wrote the control software in Pascal.

Software and hardware cannot go one without the other. I would learn later that software is often thought of completely independently of the hardware, especially at the higher levels of abstraction.

2005 — 2008 TimișoaraWest University of TimișoaraBSc Informatics · 180 ECTS

University, in a language I barely spoke

I had left Romania at the age of five and only came back a few times since. At eighteen I moved back for good and enrolled at the West University of Timișoara. When I started my studies, the level at which I spoke Romanian was not better than that of a five year old. It was definitely not good enough for university. It was an interesting challenge, and quite a struggle in the first months.

The studies themselves were a dream for me. We started with algorithms, databases and the C programming language. Later came more complex things, including image processing and my first AI algorithms. I enjoyed every course.

My thesis was an image processing application written in C# — inversion, greyscale, blur, histogram equalisation, and the statistics to inspect what it had done. It was a working application rather than a paper, which was the point.

The degree lasted three years. I started an internship after the second one, was hired by the company not long after, and finished my studies part time while working.

2008 — 2010 TimișoaraWest University of TimișoaraMSc Informatics · Software Engineering

How much of a compression is too much?

The master’s was further up: software lifecycle, graphics, some product management. I kept working all the way through it, on reduced hours.

I carried on with the C# image processing application and added a compression algorithm to it. The pixels went away entirely. An image was stored as polygon vertices and colour, and an evolutionary search looked for an arrangement close enough to the original, against a quality threshold I could set. It got to roughly four hundred to one.

When I did the research I did not find a practical implementation done the way I had done it. The notion existed. What I did not find was anyone willing to accept that much compromise for a 400:1 ratio, or the proposal to use it for thumbnails.

2007 — 2016 TimișoaraSaguaro TechnologyC · IPDS · nine years

Nine years inside a printer, without even a hint of a UI

I joined as a summer intern and wrote a multithreaded backup server in C. I stayed nine years.

Most of that time was printer firmware for high end production machines, in C. A resource database and its caching, a parser for resource containers, font handling. Later the same functionality had to run on x86, MIPS and PowerPC, on VxWorks, FreeBSD and SLES, because the machine at the customer was whichever one it was.

The last four years were colour. Halftones, ICC profiles, colour management resources. Nothing crashes when the colour is wrong. The page comes out and the shade is simply off, and someone will notice. Chasing that on deployed systems, with valgrind and GDB, was slow work.

2016 — 2017 CyberTHOR StudiosGNU toolchain, for Renesas

From writing C to writing compiler optimizations

After nine years of writing C I went to work on the thing that compiles it. GNU compiler and debugger components, for three embedded architectures.

Within a year I was also doing Eclipse toolchain work in Java, which was my first real step up the abstraction ladder, and leading the team doing it. Then I took over the quarterly releases as well, and automated the delivery down to one click.

Three roles at once for the last ten months. It was the busiest I have been, and I have never learned faster.

2017 — 2018 ElektrobitAUTOSAR tooling

Tools, and how to make people not hate them

A short stretch in automotive, one step back from the vehicle. Eclipse based Java tooling for AUTOSAR configuration, where you take an architectural definition and generate the C++ that ends up in the car.

The product was still in R&D at that point. Nobody outside the building sees this layer, and I liked working on it.

2018 — 2019 Timișoara → NiceAmadeus

New country, new language, new life, new frontend framework

In June 2018 I moved from Romania to France, and from embedded C to Angular in a browser, on a real-time airline merchandising platform. Both in the same month.

Nothing I knew about registers was any use. What was of use was being able to read a system nobody had explained to me. That is the part that carried over.

It is the only stretch of my career spent in the front end. On the next product I proposed Matomo for analytics, so we could measure what we needed without following anyone around. It was adopted.

2019 — 2021 NiceJVM internals · performance

Dove into the fascinating complexities of JVM

Then I went back down, into the JVM. Roughly a year of internals, profiling and garbage collector behaviour, together with the performance work that came with it, and forensics on production incidents when nobody could explain what had happened.

I came out of it answering with design changes rather than tuning flags.

2021 — 2023 NiceQuarkus · OpenShift · Kafka

The famous cloud and the birth of a chat bot

A service layer built from an empty repository, which moved from Spring to Quarkus while we were still building it. OpenShift underneath, Keycloak for authentication, and an observability baseline in place from the start.

A year later we rebuilt it on the standard internal platform instead of the one we had made ourselves. Six microservices, and nobody outside the team noticed the migration.

The first AI chatbot in the product shipped in that period. That one turned out to matter.

2023 — now Nice Principal Engineer

Contributing to effective AI adoption and usage

I lead the technical side of an AI assistant that business travellers use every day, and I set the AI architectural direction across the programme. I was made Principal Engineer in April 2026.

The work is mostly not the model. Cutting the Bot Framework out from under three teams and seven microservices, behind a connector, with no downtime. Moving travel policy questions onto vector search, so the answer comes from the paragraph that is actually in the policy. Building an agent playground small, so a team could try things locally before committing to them.

It is the same thing every time. Learn the layer below the new thing, until I can build on it.

Themes I keep coming back to, and want to write about properly. There will be more.

What is underneath this?

Every job I have taken has been one layer below the last one that made me curious. The board, the firmware, the compiler, the runtime, the platform.

drafting

Is it right when nothing crashes?

A colour that is subtly off. A pause that only appears under real traffic. An answer that is fluent and wrong. The failures I have spent most of my life on are the quiet ones.

drafting

Can I build the thing that builds the thing?

Compilers, generators, release automation, playgrounds for other people's experiments. Given the choice, I would rather own the tool than borrow it.

drafting

How much can a machine work out for itself?

Older than it looks: a master's thesis that threw the pixels away and let a search find its own representation, and a day job doing a version of the same thing sixteen years later.

drafting
View all posts →
coming soon

A personal AI assistant that knows my work and background — ask it about my experience, or leave a message and it will pass it along.