Marin Balabanov

Concept. Implementation. Documentation.

Hello there, I am a web developer and a firm believer in the principle of "learning in public" (which includes "failing in public" too). I work with JavaScript, Typescript and PHP on the frontend and backend. I have experience with the following technologies:

  • NodeJS and Express
  • HTML5 Animations
  • PHP Laravel and Symfony
  • MySQL and PostgreSQL
  • Nest JS and Prisma
  • Bootstrap and Material UI

(And also an unusual amount of vanilla JavaScript for reasons that are too complicated to get into.)

I actively explore and apply AI-powered tools to accelerate development and enhance creative output:

  • Web Development and Automation: Hands-on with GitHub Copilot, Cursor, Bolt, Lovable AI, n8n, and Supabase, using them to improve code quality, streamline workflows, and prototype quickly.
  • Creative Work: Apply AI tools for video production, editing, and design, combining them with traditional software and stock footage libraries to create engaging presentations, demos, and concept visuals.
  • Hybrid Workflows: Skilled at integrating AI outputs with human refinement, leveraging each tool's strengths to deliver polished, usable results.

Years ago, I learned coding in programming bootcamps at Code Factory Vienna and Boolean UK, as well as courses at WIFI Wien, BFI Wien and Smart Ninja. Since then I've honed my skills as a web developer on projects in sports data processing, real-time chat communications, and identity management.

In 2007, I completed my bachelor's degree in Communication Science at the University of Vienna, in 2009 I successfully graduated as Master of Science in Interactive Media at the Danube University Krems, and in 2021 I completed my Master of Arts in Media Art Histories at the same university.

In my spare time, I read a lot and draw illustrations for fun. I am a big science fiction and comic book fan, closely following everything related to Doctor Who, Star Wars and the Marvel universe.

Apart from that, I am a massive retro computer hardware enthusiast and have a collection of a dozen PalmOS devices, original Macintosh computers from the 1980s and 90s as well as obscure portables like the Epson HX-20, Cambridge Z88, and the Tandy TRS-80 Model 102.

In the past few years, I have become a passionate follower and participant in the demoscene, a community of programmers, artists and musicians who create audiovisual demos on modern and retro hardware (as well as fantasy consoles that do not exist as hardware).

Despite my funky-sounding name, I am an Austrian national, living and working in the amazing city of Thessaloniki in northern Greece.

It is probably a good idea to state here that nothing on this website is related to my work activities, to organizations that I might be associated with, and that I am doing this of my own accord.

At a Glance

Click on a card to find out more.

Source of Vector Images: Vectorjuice / freepik.com

Some Details About This Website

Here are some details about this website in no particular order:

  • Everything on this website is handcrafted.
  • This website is served from a web server in Bavaria using Apache.
  • This website is designed using Bootstrap 5, completely vanilla without any design modifications so that I can update it to future versions of Bootstap. The only custom CSS used here makes Youtube videos occupy the full available column width.
  • I used to generate the article pages using my own little static site generator written in JavaScript/Node.js that takes my Markdown text and inserts it into one of two page template of my own making (together with the appropriate images). For a while I was thinking of rewriting it in Python, more to learn to use the language better for my day job than a specific preference for it.

    Eventually, I realized that I could just use GitHub Copilot to generate the static pages for me. (More about this in my article with the unwieldy title How I Stopped Worrying About My Static Site Generator (and Let Copilot Do the Work).)
  • All pages on this website are validated using HTML Tidy.
  • The pages on this website mostly validate according to the W3 Nu HTML Checker, though not fully in some cases. The checker warns about trailing slashes on void elements (e.g. W3 Nu does not like <br /> but prefers <br>) and the type declaration in script tags. I think that trailing slashes are perfectly fine. I also think that the type declaration in the script tag has a cool retro chic. I decided not to appease the W3 Nu HTML Checker.
  • This website has nearly no dynamic page elements except for the Youtube videos and the random article teasers in the section titled "From the Archive" on the home page. Everything else you see is loaded in one go.
  • The animated sections of this website (e.g. the banner at the top of the home page and the end section on the about page) are responsive. I animated them with the excellent Tumult Hype 4, a wonderful tool to create interactive web content and animations.
  • The site-wide search on this website is fully client-side. For the lowest possible overhead, it only loads the search index when the search is triggered. I wrote this search myself. I call it "LazerBack", inspired by the obscure character from the 1980s Transformers cartoon called LazerBeak. You can find the repo here on GitHub: LazerBack (GitHub).
  • This website does not load any analytics scripts. Not even to count the traffic.
  • This website does not use cookies or tracking. I value your privacy and do not want to be burdened with safeguarding it.

    Loki of Asgard saying that he is burdened with glorious purpose


    Pictured here: not me. Reason: I don't want to be burdened with the glorious purpose of tracking you.

Why I Think Being A Rookie Is Good

Keeping a beginner's or rookie's mindset is powerful.

It grounds me in humility. When I approach situations as if I don't already know everything, I remain open to new perspectives, insights, and corrections. (And to be fair, I can't think of any situation where I could honestly say that I know everything.) This prevents arrogance from clouding my judgment and allows me to connect more genuinely with others, whether they're mentors, peers, or newcomers themselves. By trying to stay humble, I not only avoid the trap of overconfidence but also create space for curiosity, which I believe fuels my growth and it allows for innovation.

I also believe that a rookie's mindset also keeps me nimble. I try to be always ready to adapt, to learn, and to improve. Instead of being weighed down by rigid assumptions or the comfort of routine, I hope to remain flexible enough to embrace change and see possibilities where others might only see limitations. I believe this mindset ensures that I continuously sharpen my skills, uncovering new approaches, and developing resilience in the face of challenges. In essence, by never "arriving" and always being in motion, I think this keeps me on a path of lifelong learning and steady improvement.

At the same time, adopting a rookie's mindset doesn't mean being careless or unsteady. I still strive to be reliable, thorough, and exact in my work while still approaching each task with fresh eyes and an eagerness to learn.

I'm proud to be a rookie!


PS: there is, of course, the TV show The Rookie starring Nathan Fillion, a man in his 40s who becomes the oldest rookie in the LA Police Department. He has to face the challenges of starting over in a demanding new career while proving he belongs among much younger recruits. This show is good and Nathan Fillion is awesome!