Vitalii Kasap Enterprise Frontend & AI Engineer
Back to all articles
STORY

From the engine room to the codebase

Two decades from a judo mat in Odesa to enterprise frontend in Germany. The detour that was never supposed to happen.

STORY
A dark ship engine room lit by warm machinery glow
3 a.m. in the engine room. Where the real work waited until after the watch.

It is 3 a.m. somewhere in the Indian Ocean.

I have just come off a watch I was never supposed to be standing. Our boiler had failed a few days earlier, a big Capesize bulk carrier with a problem that does not wait for office hours, so the schedule had been torn up and the engineers split into watches around the clock. Mine ran from eight to twelve. The engine room runs at 45 degrees Celsius, the kind of heat that soaks through a boiler suit and stays on your skin for hours, and my ears are still ringing from machinery that does not stop, ever. I close the door of my cabin behind me, sit on the edge of the bunk, and open my laptop.

On the screen, a Laravel project I have been chipping at for weeks. npm install is still running. The ship hums under my feet at fourteen knots.

I had been at sea for years. I was a marine engineer with good papers and a steady contract. And every spare hour I had, I spent writing code that I knew, even then, was the work I should have been doing instead.

I was not where I should have been.

Two childhoods

Two things have been with me for as long as I can remember. Judo, and computers.

Judo came first. I grew up in Moldavanka, a neighborhood in Odesa where the streets had their own pull. A lot of kids around me drifted toward the wrong crowd, the wrong street, a road that ruins lives. Judo pulled me the other way. My coaches did not just teach me how to throw and how to land. They built a backbone in me. Through school and university I became a Ukrainian champion, medaled at national and international tournaments, and won my city and region more times than I can count.

The mat was the first place I learned what discipline actually means. Not enthusiasm. Not motivation. Discipline. Showing up when you do not feel like it. Drilling the same throw for the thousandth time because the thousand-and-first will be the one that lands clean. Getting up after you have been thrown, again, and again, and again.

Computers came not long after, when I was still a kid. It started with a Russian gaming magazine called Igromania, full of glossy screenshots and reviews. The first issue I bought had a feature on 3D graphics. Maya. 3ds Max. The studios behind Pixar and Disney. I read it three times. I decided I was going to make animated films.

For a while I tried. I installed 3ds Max on a family desktop that could barely run it, taught myself the interface from forum threads, modeled small scenes, and tried to render. A single frame, at the quality I wanted, took the machine the entire night. I would wake up, find that the render had crashed, and start again. I never finished anything.

As a teenager I gave up on Pixar and read an article on how to build a website. HTML. CSS. PHP. Notepad and a free hosting account. That, the machine could handle. I built a site for myself, then for a friend, then for our local judo club. There were no courses. There was no path. There was an article, and trial and error, and a kid who would not stop until the page loaded.

The fork

When it came time to choose what to study, I had to decide what the rest of my life would look like.

I wanted computer science. But where I lived, that was not a path with clear edges. It was abstract, distant, something other people in other cities seemed to do. My parents wanted something stable. Something with a contract at the end of it. The sea.

So I said yes. Because when you are that young, you say yes to the people who raised you, especially when the case they are making is reasonable. Good money. Travel. Engineering, just a different kind. I went to a maritime university in Odesa and came out with engineering degrees, and then the deck, and then the world.

I did not know it then, but that decision would cost me more than a decade.

The floating prison

A ship can feel like a floating prison.

I do not say that to be dramatic. I say it because anyone who has done a six-month contract at sea knows what it means to live inside the same walls, with the same people, and no real way to step away.

On a bulk carrier or a container ship, the crew is usually twenty, maybe thirty people. You see the same faces every single day. The horizon barely changes. Ports come and go, but after a while even they start to blur into the same routine.

But it had a rhythm, and the rhythm is what saved me.

When everything ran normally, the working day was eight to five. After that, every day from Monday to Friday, I gave one hour to staying in shape. Pull-up bars, resistance bands, a skipping rope that I still think is useless. The mat had taught me that form is not something you have, it is something you maintain, so I maintained it. Then, in the evening, I opened the laptop and wrote code, because it was the thing I actually wanted to do. And at night, before sleep, I read. Psychology, business, how things are built and why people do what they do.

That was the whole shape of my day at sea. Work, train, build, read. Repeat.

I filled the building hours with everything I could reach. I started with PHP because that was what the article from when I was a kid had taught me. I moved to Laravel because that is where PHP was going. I built a backend for a friend's project, then another, then another. I started selling small websites to people I knew, between contracts. I taught myself JavaScript because the browser was where the user actually lived. I picked up jQuery, then AngularJS, then Angular and TypeScript when they arrived.

A laptop open on a bunk in a small ship cabin at night
The cabin. Where my real life happened, after hours.

I built things that worked. A rental platform with a friend, called Rentber. WordPress sites for sports clubs and small businesses back home. Side projects that came and went. I watched conference talks on a phone in a cabin, downloaded ahead of time because there was no internet at sea. I kept a notebook, which I still have, where I sketched out the architecture of frontend applications I had not yet been hired to build.

I never told anyone on the ship what I was doing. They would not have understood. To them I was the engineer who kept the generators running. To me, the generators were the day job, and the laptop in my cabin was where my real life happened.

A strong spirit gets up to win. That is what the mat taught me. It does not say a strong spirit waits for the right moment. It says it gets up. Contract after contract after contract, I came home with a duffel bag and a stack of new code on my laptop.

The moment it clicked

There was a moment, somewhere along the way, when everything I had been doing on the side stopped feeling like a hobby and started feeling like a profession.

It was when Angular arrived with TypeScript. I had been working with AngularJS, which was already a serious step up from jQuery. But TypeScript was different. Suddenly the architecture I had been sketching in notebooks was something the language itself supported. Strict types. Real interfaces. Tooling that understood my intent. I remember opening a new project and feeling that the thing I had loved as a kid had grown up with me. It had become an actual engineering discipline.

I knew, that month, that I was going to leave the sea.

I just did not know yet that it would take me another two contracts to do it.

The open sea horizon seen from a ship deck
The horizon that never changed. I left it to build something that does.

The pivot

After my last contract, I came home and did not sign the next one.

I finished an intensive frontend engineering course focused on Angular, to fill the gaps and to have a piece of paper that explained, in a language recruiters could read, what I had already been doing for years. Somewhere in those university years I had also picked up a master's in project management, which turned out to matter more than I expected. Building software is not only writing code. It is deciding what to build, in what order, and why. I sent the first applications. I got the first interviews. I got the first offer.

I have been a frontend engineer since.

Today I build enterprise frontend systems in Germany. I design architecture for large Nx monorepos and microfrontends. I work with design systems at scale. I build my own products with AI tooling. I am, finally, where I should have been from the start.

The sea was not my calling. It was a long detour. More than a decade I will never get back, except I will, because it is the reason I know what I know. Judo and engineering were always the constants. Today they point in the same direction.

Why this blog

I am not writing because I have figured everything out. I am writing because I have spent two decades pattern-matching between two worlds that should not have anything to do with each other, judo and engineering, and I keep seeing the same patterns.

Discipline. Show up. Drill the basics. Get up when you are thrown.

Build the small, complete thing. Expand only when the idea earns it.

Most of all: do not wait for the right moment to start. There is no right moment. There is the work, and there is you, and the only question is whether you sit down and do it today.

I am writing this for the colleague I will explain something to next week, who will forget by Friday. I am writing this for the engineer years younger than me who is doing a job he does not love because the people who raised him asked him to. I am writing this because some part of me is still that kid in front of an old desktop, refreshing localhost, trying to make the page work.

A strong spirit gets up to win.

See you in the next one.

I grew up in Moldavanka. I trained judo as a kid. I taught myself to code as a teenager. Then I spent more than a decade at sea as a marine engineer, before I came back to what I should have been doing all along.

On story
#story
NEWSLETTER

Get new posts by email

Enterprise frontend architecture & AI engineering. No spam, unsubscribe anytime.

Vitalii KasapVitalii KasapEnterprise Frontend & AI Engineer