Profile photo

Darko Kukovec๐Ÿช

๐Ÿ‘จโ€๐Ÿ’ปAbout me

Zagreb, Croatia
Head of Frontend Department @ Infinum
I'm a Head of Frontend Department at Infinum, spending my time mostly making web, hybrid mobile, and sometimes desktop apps. In my free time, I experiment with Node.js, browser extensions and everything else JavaScript related. I am a firm believer in Atwood's law.

๐Ÿ“Blog posts

What is Motion Sense good forโ€ฆ

After two days of the Google Pixel 4 usage, here are my thoughts about the Motion Sense/Soli featureโ€ฆ

Squeezing Webpack into backend frameworks

If you ever made a website, it probably contained some assets like images, CSS and JavaScript. In order for a page to be fast, itโ€™s a good idea to concatenate all your JavaScript assets into one file and all your CSS assets into another. Caching might also be trickyโ€ฆ

Hide annoying cookie notifications with the help of The Cookie Monster

If you spend a lot of time surfing the Internet, you are probably annoyed by the strange cookie messages appearing on many web pages. These messages are the result of the EU cookie law, which states that the user of the website must be informed if their actions are tracked with Internet cookies.

Web Components - building blocks of the future web

Every now and then a technology comes out that changes the web landscape. In 2008, Google announced Google Chrome, a simple but fast and powerful browser. Around the same time, HTML5 started to emerge and gave us access to a lot of new features. Now it's time to embrace another new technology called Web Components.

Web technologies for desktop development

This Saturday, the second consecutive Webcamp Zagreb tech conference took place. This year, there were around 600 participants from Croatia and the region, and they could choose between 24 presentations.

๐Ÿ‘จโ€๐ŸซTalks

Taming JSON API with MobX

JSON API is a quite good specification - it gives you a structured way to communicate with the API without any major bikeshedding. However, JSON API is also a complex specification with a lot of small but important details. This is a story about how we went head to head with JSON API and won.

Keeping React on a tight leash with MobX

React is a great view layer, but if you want to create something more than a simple TODO app, youโ€™ll need some other parts. First of all, youโ€™ll need a data structure and a way to handle the changes in it. It is here that the state management libraries come into play. There are plenty of state management libraries out there, like Redux, Flux, and Relay. Iโ€™ll talk about why we at Infinum chose MobX, and what weโ€™re doing to make development with it even better.

Lightning talk: Using Webpack with ${backendTechnology}

Webpack is great, but what if you're working with backend technologies like Ruby on Rails? Fear not, because we'll show you how to configure Webpack so it can play nice with other backend technologies.

Making React part of something greater

React is a great view layer, but if you want to create something more than a simple TODO app, youโ€™ll need some other parts. First of, youโ€™ll need a data structure and a way to handle the changes in it. Although the most simple way to do it could be to take parts of a framework youโ€™re used to (e.g. Backbone Collections/Models), there is something better out there. First, there was the Flux architecture, made by Facebook itself - it forced us to change and consume our data in a certain way in order to prevent developers from shooting themselves in the foot. Then there was Redux - a state container that preaches immutability and time travel. While Redux is great, and enables us great things like hot module reloading, it is also very strict and introduces a lot of boilerplate code. MobX, on the other side, has almost no boilerplate code, can be strict when/if you want it to be, and gives you a nice performance boost for free.

Always look on the evergreen side of life

In the recent months and years, we got to play with a lot of new shiny features - provided either by a standards body like ES2015, or by preprocessors like SASS. During that time, we got used to the transpilation step where we would make our โ€œcode of the futureโ€ work in all the browsers we need to support. But now, new times are upon us: the web platform is becoming evergreen...

CSS Modules

Did you ever give the same name to two CSS classes by accident and the whole web page broke? CSS Modules are a new approach that tries to solve this issue. The idea of CSS Modules is that every class is local unless we define it otherwise.

Multiplatform app development

The concept of developing mobile applications in web technologies is great because it will work on multiple operating systems. But there is also the desktop platform, which still plays a significant part, in which you can also develop with web technologies. In this talk, I'll present you what lessons we learned by developing hybrid apps that work on multiple desktop and mobile operating systems. The talk will cover our choice of wrappers and why we're using them instead of the alternatives, what tools and practices were used to build maintainable apps, and automation tools that make our jobs much easier.

Web technologies in desktop development

BerlinJS Apps, February 2014 [Slides]
With web apps gaining popularity an idea was born to make an web app in an native web view and so the hybrid app was born. While talking about hybrid applications today, people tend to think only of the mobile apps. This talk will instead concentrate on hybrid desktop apps: what wrappers are available, which features they offer and my experience with node-webkit.

๐Ÿ’–Open source

DatX

DatX is an opinionated data store for use with the MobX state management library. It features support for simple observable property definition, references to other models and first-class TypeScript support.

webpack-canary

Canary tooling for checking webpack dependencies against specific webpack versions

๐Ÿฆ„Hobbies

๐ŸŒTravel

Countries (23):

Business (๐Ÿ’ผ) or pleasure (๐Ÿน)
  • Austria ๐Ÿน
  • Belgium ๐Ÿน
  • Bosnia and Herzegovina ๐Ÿน
  • Cayman Islands ๐Ÿ’ผ
  • Czech Republic ๐Ÿน
  • Denmark ๐Ÿน
  • Estonia ๐Ÿน
  • Finland ๐Ÿน
  • France ๐Ÿน
  • Germany ๐Ÿ’ผ๐Ÿน
  • Hungary ๐Ÿน
  • Iceland ๐Ÿน
  • Italy ๐Ÿน
  • Jamaica ๐Ÿ’ผ
  • Malta ๐Ÿน
  • Mexico ๐Ÿ’ผ
  • Netherlands ๐Ÿ’ผ๐Ÿน
  • Slovenia ๐Ÿ’ผ๐Ÿน
  • Spain ๐Ÿ’ผ
  • Sweden ๐Ÿน
  • United Kingdom ๐Ÿ’ผ๐Ÿน
  • United States ๐Ÿ’ผ
  • Vatican City ๐Ÿน

Airports (18):

  • Brussels, Belgium
  • Zagreb, Croatia
  • Copenhagen, Denmark
  • Helsinki, Finland
  • Berlin Tegel, Germany
  • Frankfurt, Germany
  • Munich, Germany
  • Bremen, Germany
  • Hamburg, Germany
  • Keflavik, Iceland
  • Malta International Airport, Luqa, Malta
  • Schiphol, Amsterdam, Netherlands
  • Oslo, Norway
  • Madrid Barajas, Spain
  • Jerez, Spain
  • Stockholm Arlanda, Sweden
  • Southampton, United Kingdom
  • George Bush International Airport, Houston, TX

Cruise ships (4):

๐Ÿ“บTV Shows

Favorite active shows:

  • 8 out of 10 Cats Does Countdown
  • Brooklyn Nine-Nine
  • Last week tonight with John Oliver
  • Saturday Night Live
  • Stranger Things
  • Ted Lasso
  • The Boys
  • The Daily Show with Trevor Noah

Favorite ended shows:

  • 30 Rock
  • Arrested Development
  • Ascension
  • Chuck
  • Community
  • Dollhouse
  • Firefly
  • Futurama
  • Gravity Falls
  • Marvel's Daredevil
  • Marvel's Jessica Jones
  • MythBusters
  • Orphan Black
  • Parks and Recreation
  • Schitt's Creek
  • Scrubs
  • Seinfeld
  • The Good Place
  • The IT Crowd
  • The Newsroom
  • The Office
  • Travelers

๐Ÿ› What I use

๐Ÿ–ฅHardware

  • Macbook Pro 13" (2019, 16GB RAM, Intel Core i5)
  • Dell XPS 13" 7390 2-in-1 (2020, 16GB RAM, Intel Core i7)
  • Google Pixel 4
  • Fossil Carlyle
  • Google Pixel Buds