Home

Software engineer working in predictive maintenance of roads. Can help set up smooth software development processes in companies outside of software industry. I’m the right address of you want to optimize maintenance of infrastructure to save money on maintenance cost, downtime or contract penalties.

Also a powerlifter (-75kg. 145kg squat, 100kg bench-press, 155kg deadlift).


,,,~,=Z,Z:::7=ZI7:~+~~~::,:::::::~:::::,,,,:::~+++II7777777777777777777777777777
?7:O,,:+??::=~OIZZZ7::=I+,:::::=+=,+,78+N:::7+=+++II7777777777777777777777777777
7+?O~7$?+7+=77Z?I+++=I?$+O=+++7ZI+ZOZO$$7DDD8===++?III77I77777777777777777777777
$I$?$+:=~Z++7=~=~~?~+?II+$N7O888DDNDODDZODMM8MN$M?IIII7IIII777777777777777777777
+$7$++:7::~+==+$+~=?=I7Z$ZOOO8DDDNN8DDD8O$$8DMDN?7IIIIIIIIII7IIII777777777777777
IZOZ=I==+=7===+:~+I:==$I88DO8D8DMNDMN8?O8ZDZ8ON87NIIIIIIIIIIIIII7IIIII7777777777
?:=+$ZIII~7~~+~,~~:+=7$Z~ND88ZONDNDNNODNO8OIZOIN8MOIIIIIIIIIIIIIIII7IIII77777III
ZOOOO$+++=I~+O??=?=II787DD8DNMNNDD8DDNZ7MOZO$ZMON8MM87IIIIIIIIIIIIIIIIIII7III7II
ZOZOZZZZ$IZ7?=+?~I~=O$DOD8NDDDNDD88D88Z8$$8Z?+7$NDNMN?OIIIIIIIIIIIIIIIIIIIIIIIII
Z7+ZOZ$$OI+7+?I?$I:=+D8DND888888OOZ??I7+ZZZZZ8OD77ODND8IIIIIIIIIIIIIIIIIIIIIIIII
$:~::~ZZOZZZZZZ$Z7$I7$MNND8OOOOI$7$7?I?II+IZ$$DZDZ:$:M$OIIII??IIIIIIIIIIIIIIIIII
~?++:=Z=Z7OZZZOZO?I~?ZMD8ZZ$Z$$?7I77?=~,:~:~:~~?7$O77ON8O?I?+IIIIIIIIIIIIIIIIIII
===+~=:II:$=7?ZZZI,,~~88ZZ$77$7II7II+~,~::::~:~~~~?$ZOONOO=7IIIIIIIIIIIIIIIIIIII
ZI=$:Z+=$7?O+O7=?I7,?IDZZZ777?I?++==:~,,::,:~~~~~~~IZIDD8+777IIIIIIIIIIIIIIIIIII
O8OOZ7Z$IZ:~~$=~I,+=Z$OZZ$7I?=~~~=~~::,,,::::~===:==?$8NMNZI?III?8NNIIIIIIIIIIII
ZOZIOOO8ZO$=:~~~$++7=DZZ$77I+=~~====~::::,,,:~=~=~+IZOD8DO87IIII88DOO$IIIIIIIIII
Z$I+Z?$Z~Z$O:=$I+I7~=8OZ$$$$II+==+++=~==~~,,~:~~~=I7O8DON8OIIII$M87?O?II?IIIIIII
7Z$=:~$I:~$$:.+7=7+I.OZII$Z$7$II???IIZOO$$I??===~=+I8D8DMD$?????IOMN77?$~:~II??I
$Z$7$I:~O?77ZO=~Z=~==O$ODD8DOOZZ$IZZOOOOOO$$II7I==+7$Z88Z8?????????78DOO8I?::???
8D87$$??:==+ZZ+?$ZZZZ$OOOOO8888O=,+O8DNNNMND8$+?=~~?7OO88???????????IOOO88Z:~~~?
ZDD8$$Z$Z8OZ+ZZZO8+:??$Z8DMMDNDI~,:7O8OOZ7???=~:~~~?7OOOZ$+?????????IZO8DD8O,M7+
$DDDDDO8$Z$?~~I7I~~?:~$8ZZO88OO+,::::::~:~::,:,:~~~=IIO?=Z???????????Z88888D=?OI
O$DDDD88$8O$??$$ZO~===OZOOOOZZ7=,::::,::::::,:::~===7,$Z+???+????????O888OOO~8ZI
=?Z$OZ8DD8$8$I7IZ$=~~=$ZZ$$I$?+~:::~~=$+~~~:::~~===+=:~~~:+?++??????+O8OO$=8=OZI
IZ+:ZZZZ$$DO887$Z77ZOZZ7?+?ZZ$7I+++=~=$ZZI=~~~~=+++===:::=++++++++++?$OO$+=OZO??
7,ZZ+?O7ZZZOO$N8I$$$7I$ZII$OZDZOZDDD$~:~IOZI++=++===~~:,:++++++++++++ID8Z+~?$+++
~.$7$OZ$ZZZ$7$IZ?+?+7ZZ$ZZOZO88888OO+~===+OZ?=?====~=Z7IZ++++++++++++ZO8ZDN??+++
:~?O$ZZZ7IZOZ=I??7I??$D$Z8OOOOOOO$=:~:~~+7$+7+$======O$OD++++++++++++ZO88DZ?=+++
$++7Z=ZOZ$ZOOZZ$?7Z77$Z+ZZOZZ888OZZ$ZOOZDDZ?++?===+=$$:7I++++++++++++OD87Z7I~+++
$$$OOOO$O$ZZZO8Z?O?IZO7Z$Z888OOI7???++~~~~??++++++++::~:++++++++++++8ZI:+~:I?+++
?O$$$7ZZZOOOZ$8D8Z??8O=ZIZOOZZZ$77$7??~~~~=+?????+?+,::~++++++++++=+OOO=$D==++++
O,ZI..7$OOOOZO$+ZOO888OZI$ZZZZZO8Z7I+=~=~==++???+II,,::~:O?++==~===?ODOOND?+?+++
ZZ$ZZ$ZOO$:ZZO88888$8888O8$ZZOOO?I?~~::~~==++?I$$?::,:,,888D=++====OODD8I?+7II7$
$Z$IO$??++==~:8DDDD8DO8D888~ZZ777??+=:~=+=?+I$Z$~~::,:IDDNMD8D$??++O8DDD7?+$7?$I
+???+++?++?++=+8NMMNDDODD88NZ$O$7$7???IIIZ$OOO7+=~~:::DNN,..8DDD8+?888?OZNN8OD88
7777IZIZZZZZZZ$ZZOMMD8O88888$OOO?OO$7OOOD888OI+==~~::8NND8..IDDDDDDD8$~DDMDN88ND
$Z77=~~OZ=:~O777$~NMMDOD888D7:M888O88D8OOOOOI?+===~~~NN:8DM...DDDDNNDNDDDN8NMNN8
77III?=~::~=~...,:.NMNND888D$$O$8Z7ZOOOOOOOII??++==~MN,..8DD...DNDDNNNDNNNN8DMNM
8O7??IZ?~:,, .....7NNMMMD887.:$ZO:.?ZOOOOO$$II??+==+DMD,..8D:...NDDDNNNNNNDDD8DM
OI7I?$$8I=~Z,......DNNNDN8D,?~?+?Z~,=ZOOOOZ$7II????8M.NN.,~DD...NDDNDDNNNNNDNND8
7$77?I$88$IO.......7D8D888D,?IOOZ$Z,+$ZOOOOZ$7IIIINMI,DND,~.D8...MDDDNNDDDNNDDDD
7$$$778ZNO$7::,,,,,I$O7NN8ZI$$8O8$8+=$$ZOOOOZ$77$NMM.,,MNO::DDN.. 8DDNDDDNNDDDDD
+ZZ$ZDONODD$+NZ~+8+IION$$~7ODO88?I?+NMMZZZZZOOZNMMMMN.,~DD,..DDN...DDDDDDDNDDDDD
NZ$$$OMO8OZN$I++~=DNDZ777II7$$O77$+$MMMMOOZOONNMMMMMND,~DN,..MDD....DDNDDDDNDDDD
M+Z777$$$77778MD$OZ7777D8ZI7777II=MMNMMMDNDMMMMM$MMMDD$~DD8..,DDD. .ODDDDNDDDDDD
888D887$7777DZO$Z877$7D8Z87$O$$+:~MMMMMMMMMMMMMMM$MNNN:,7DD...,D8M...8DDDDDDDDDD
DDDD:8777$$88D$DN7$$D8DD8$7ZZ77,=MM$MMMMMMMMMMMMM8MNMN.,=DDD...8DD....DDDDDDDDDD
DDDN87II7$8DNNZ$8$$NZZN8D87$$$D$:MMNMMMMMMMNMMMMMMNMNNN::DDD....DDD.  ODDNDDDDDD
DNN=D7II$88N7OOZZ$ZZ$Z$NDOZZ$$Z,,MOMMMMMMMMMMMMMMMMMNNN,::DDN  .8887  .888DDDD8D
NMMN7$ND8D88MN$NNOO8DNDDND78ON=~.MZMMMMMMMMMMMMMMNMNMNN.,,8DO. ..DDD   .888DDD8D
ND8$78ZZD$DD8NNNZ$ZZODDOZO8:::==,MNMMMMMMMMMMMMMMNMNNNN...88DD ..O88~. .8O88O8D8

Uncomfortable, but great decision

2 minute read Published:

You are reading a success story of avoiding premature optimization. I had to design an API for a service that receives some geographical data and returns the same data with additional information for each point of interest.

Creating JavaScript objects in 2018

7 minute read Published:

If you want to learn how some popular design patterns look in JavaScript I recommend you to read The Comprehensive Guide to JavaScript Design Patterns by Marko Mišura. It argues why learning design patterns is important and shows some examples. However, the post was written in 2015. Since then JavaScript has evolved and obsoleted some common patterns that we were used to in the past. Making a “class” in JavaScript was a Wild West before ES6.

How to easily speed up your prime number generator with factorization wheels

2 minute read Published:

Prime numbers. Somehow boring and yet fascinating topic in mathematics. A number is a prime number if it’s divisible by one and by itself. In contrast composite numbers are divisible by one, itself and one or more other numbers. Primes: 2, 3, 5, 7, 11, 13... Composites: 4 = 2 * 2, 6 = 2 * 3, 8 = 2 * 2 * 2, 10 = 2 * 5... It’s all so simple and obvious when numbers are small.