Hello! It me.

Hey there! My name is Klemen Slavič.

Get in touch:

Looking for a CV in PDF form? I've got you covered.

Table of Contents

I've been a software developer for over 16 years. I'm a strong proponent of Open Source, TDD and humane work environments. Lately I've been focusing more on front-end and web technologies, but I always keep an eye out for interesting projects I can sink my teeth into.

I was born in 1983 in Ljubljana, Slovenia. Most recently I've lived in San Francisco where I worked for Celtra as Lead Software Developer working primarily on the ad runtime that powers creative display on browsers of all shapes and sizes. I'm taking some time off to figure out what my next challenge will be while moving back to Europe.

I'm a avid autodidact. Over the course of my life I've accumulated a wealth of different experiences in the fields of computer science, public performance and teaching.

I finished high school with a high average (28) and went on to study Biochemistry at the Faculty of Chemistry at the University of Ljubljana. I dropped out during my 3rd undergraduate year to pursue a career in programming and theater.

You can read a detailed account of my professional experience on my LinkedIn profile. If you'd like a more prosaic overview of my life, then by all means, grab yourself a hot beverage, get comfortable and read on.

This site is designed with comfort in mind, so you should have no trouble reading this on any modern phone, tablet or your desktop computer. It should also load fairly quickly (the CSS and JS are only 5kB unminified!) on any type of network. Responsive web design rocks.


Overview

In a Nutshell

Through the years I've worked on a number of different projects, slowly working my way up from implementing static website content for clients to leading development on applications that run billions of impressions on web devices every month while making sure that the error rate is kept well below 1%.

My interests drew me heavily towards user interfaces and multimedia experiences, which led me to explore game development as a way of drawing on my interdisciplinary knowledge of physics, mathematics and other sciences. It's also a fun and engaging way to building skills.

I've been involved in several theatrical productions and performances over the years, most of them in the form of improv theater sports as a performer, sound & lights engineer and MC. I've also produced several long-form improv shows and captained three teams, one of which won the national improv championship in 2009.

I also held Microsoft and Adobe Certified Instructor status during my stint as an instructor at Kompas Xnet where I held regular classes on the topics of graphics, UI, web design and .NET software development. I was also the principal graphics designer within the company, having worked on designing and printing the company's quarterly booklets and redesigning their company website.


Specific Technologies

Professionally I've spent most of my time working on user-facing projects, the vast majority of which are implemented using web technologies. To keep ahead of the curve, I've invested a significant amount of time researching, testing and implementing new and upcoming technolgies.

I've spent a great deal of time working on legacy and long-lived projects. In this capacity I've planned, supervised and executed refactoring and migration to newer and better software. This experience has reinforced the importance of test-driven development for me when dealing with regressions during refactoring and analysis of any complex system.

Having been exposed to so many different computer languages and environments has also given me a broader insight into API and language design. It has instilled a sense of fitness for a given language to a particular problem set. It's not enough to know how to do it with the tools you have, you have to know which tool to pick up to finish the job.


Other Skills

I believe that no knowledge gained is worthless if you're able to apply it, however esoteric it may seem. I remain active in my free time to pursue interests outside of software development. Being a generalist, I try to dip my toes in as many different topics as possible to get a more holistic experience, which led me to try my hand at playing musical instruments and performing on stage.

In my youth, I've had formal piano lessons for about 9 years, and I decided to learn the guitar on my own afterwards. The latter did result in being technically capable of playing, but I haven't really achieved any significant skill beyond reading tablatures and a couple of specific solos.

In theater, I've been involved with many troupes and productions, filling various roles as performer, director, sound & lighting engineer and coach. It gave me the opportunity to explore all the auxiliary activities involved in the production, marketing and performance of such events.


Languages Spoken

Words matter; communication is key in effective project management, development, teamwork, business, and establishing relationships. Being a polyglot also enables you to practice empathy and being able to assume different viewpoints when considering your options. It gives you the freedom to express yourself much more richly and precisely than being bound by a single cultural and linguistic frame of mind.

Also, it's so much fun switching back and forth. You should try it some time! :)


Open Source Projects

In addition to my professional, closed-source work, I've remained active in the open source community and I've released a number of projects over the years. I've listed a few notable examples.

Microdata Tool

Microdata Tool homepage

A drop-in script to help with implementing and debugging Microdata for use in content markup and SEO. It uses jQuery as a utility for traversing and manipulating the DOM, with a carefully curated list of schemas to validate against.

The project's code is self-documenting for easy access and customization. Several people have made contributions to the project because of the straightforward structure, which was one of the considerations I've had in mind when designing the code.

Squirts

Squirts game title screen

Play the game.

This fun little game was a collaborative project with Marko Novak during the onGameStart 2012 conference in Warsaw. It was coded and designed from scratch in between sessions. I continued working on the code and adding inline documentation after the event to make the code readable and understandable.

I've used this example in my optimization classes to teach methods that help identify performance bottlenecks and it has served as a base for development of several other independent games.

jQuery Adhoc Widgets

Adhoc Widgets presentation title screen

I released a jQuery tool to help authors build simple and lightweight components that feature template customization and semantic event handling without the need to modify code. It was extracted from production code I developed to solve a templating problem for a client's website.

The presentation (Slovene) was given at Spletne urice #6 in 2011. Fun fact: the Flickr API did not flag some images as adult content during the live demo, so I ended up showing a couple of large dongs on the big screen.

CSS Curved Path Animation Generator

GIF animation demonstrating the CSS bezier path animation tool in action

This was a tool I built in 2012 and released in 2014 to enable designers to generate CSS animations that translate objects along a given Bézier curve.

The underlying code is modular and comprehensively documented, enabling anyone to use the base code in order to generate CSS blocks dynamically for real-time animation. It has no external dependencies and has a 5kB footprint when minified without gzip.


Talks, Webcasts and Written Works

Responsive Web Applications

Responsive Web Applications title screen

Presented in December 2011 at Kiberpipa, the talk explores the vast range of dimensions and input devices available to the modern web platform.

You can watch the presentation (English) and get the slides.

The accompanying demo app is also open source and available on GitHub.

Crash Course in Git

git for n00bs title screen

This is a two-part presentation I gave at Celtra in 2011 to my fellow developers when we migrated the entire product code base from Subversion to Git. I helped drive the migration and directly supported the team during the transition.

The slide decks have since been used extensively when onboarding new developers, and I've shared them publicly to help others in their transition.

Bare Metal Coding

Bare Metal Coding title screen

Presented in April 2013, this short talk was meant to give the audience a sense of what specific steps they can take to optimize framerate and responsiveness in a very concise way.

You can see the video of the talk (English) and get the slides.

Fast and Furious: JavaScript

Fast and Furious: JavaScript title screen

I gave this talk in March 2014 in front of a packed auditorium at University of Ljubljana's Computer and Information Science Faculty as part of Do nosu v blatu. The talk was a deep dive session that dealt with real-world performance bottleneck investigation for real-time graphics in desktop and mobile web browsers.

There is no recorded video of the presentation, but you can see the slides and inspect the example code released under MIT.

H5C3 Meetup

My presentation title slide, Practical HTML5 and CSS3

I single-handedly organized a meetup called H5C3 as a free event with over 60 attendees and held at Microsoft Slovenia headquarters in October 2010. I also gave a talk on applying HTML5 and CSS3 in practice using existing technologies at the time.

It was a worthwhile experience which gave me crucial insight into organizing events, coordinating speakers and venues, effective communication and the value of not working yourself into a bloody pulp. Which I totally did.

Shit WebKit Does

Shit WebKit Does header image

Out of frustration with the current state of WebKit I decided to document some of the nastier bugs I came across working on different versions of the browser engine in various mobile devices. The sarcastic tone of the posts illustrates the level of frustration one experiences when being forced to deal with these kinds of problems.

I regret nothing. It is also defunct, as I gave up trying to keep up with the number of curiosities I unearthed.

Animalija Blog

Animalija blog page header

My now-defunct blog is the product of years of long-form blogging, back when blogging was The Thing. It was displaced in favor of more short-hand social networks, and is something I would like to get back to some day.

The blog documents all of my projects, covering a wide range of topics and interests. It also represents a vertical slice through my life, going back to summer 2006.

A few interesting highlights from the blog:

ScriptJunkie

I've written a pair of articles on the emerging topic of HTML5 adoption in browsers for the Microsoft ScriptJunkie project:

Symfony blog

While I was still an active participant in Symfony development I kept a blog documenting some of the interesting parts of applying Symfony in practice. The blog was short lived and soon out of date as I couldn't keep up with the rapid pace of changes in the Symfony code base at the time.


Multimedia Projects and Performances

Kuli Muli 2009/10 Season Opening

Kuli Muli season intro video 2009/10

For the opening of the 2009/10 improv season we decided to do a video recap of last year's events within our troupe and create a parody video based on a popular 90s TV series. You'll recognize it when you see it.

The entire production was an improvised team effort, filmed in a day on location near Kranj. I was responsible for video editing; I used Adobe Premiere Pro to do the job. It was my first project involving non-trivial video editing, which ended up taking about 2 days of severe crunching.

You can watch the video on Vimeo.

5 na dan

5 na dan video title screen

A follow up to our previous intro video, we decided to up the ante and make a video based on the Annoying Orange series that went viral at the time.

Everything was brainstormed and filmed in a day. I got to work on the individual scenes in Adobe AfterEffects and spliced together using Premiere Pro. As with the previous project, this was my first time working with special effects tools and compositing to achieve the superposition of faces onto fruit. While the effect may not be perfect, it was acceptable within the short production time of 2 days.

You can watch the video on Vimeo.

Kuli Muli – Daft Improv

A frame from the video showing the helmeted protagonist and backup dancers

As part of our warmup introduction performances, we decided to enact a Daft Punk inspired music video comprised of a number of different music tracks. In order to do that, we designed and fabricated the helmet I am wearing in the video, along with a microcontroller that was fed a stream of animation frames from a netbook I was wearing underneath the leather coat via USB.

We won the match and went on to win the finals that year.

You can watch the video on YouTube.

Kivi Koktejl improv group

A poster for our Roadtrip production

During my time performing in improv, we decided to form a spin-off group called Kivi Koktejl to explore long-form improv performances in a more open setting.

Our proudest achievement was the premiere production of Roadtrip in March 2007. We made up the entire story based on audience cues with no premade story arcs. We did all the production work ourselves with the administrative help from Društvo MIK. I was tasked with designing our visual brand and posters. We all performed on stage to make the magic happen. And thankfully, it did.

An impromptu performance

A frame from the video of the improv session

While performing as part of the Artizani group at a festival in the Czech Republic in April 2007 we were asked to entertain the other groups at a social gathering. We came up with the idea of using scenes from all of the participating shows in a mock lecture given by a nutty professor (me) and accepting topic suggestions from the public.

It was a fun experience performing a combination of physical and character comedy in front of an audience not very used to the English language (hence the impromptu translator). The beer is nice there, too.

You can watch the video on Vimeo.

The Wizard of Oz Stage Production

A frame from a video showing the Wizard of Oz performance

In my time performing with the Artizani group I also helped produce and perform in a reimagining of the Wizard of Oz. A heavily visual and silent performance was set against a backdrop of drape fixtures and lighting used by the performers to produce scene transitions and provide context to the environment. An evocative soundtrack was complementary to the stark and minimalistic setup.

We took this play to multiple different places, including the Ostrovske Soukani 2007 festival in Ostrov, Czech Republic and the Cirkooh Cirkaah! 2007 festival in Leuwen, Belgium.

The group still actively produces and peforms original stage plays.

Competitive & Parliamentary Debate

Me on the podium at the European Debate Championship in 2001

During high school, I spent a significant amount of time participating in competitive and parliamentary debate in my high school, eventually being selected to represent Slovenia in the 2001 European Debate Championship held in Stuttgart and the 2002 World Schools Debate Championship held in Singapore.

We ended up winning the European Championship and we placed 17th on the World Championship.

After high school, I continued coaching the newcomer debate teams.

Back to top