Home

Freelance full-stack software engineer

Hire Me!

I’ve been contributing to projects either as the solo coder or a technical lead on a small team. I bring value to my clients by helping them chose and implement software that serves their business.

Past projects include:

Across most projects we used:

Also a powerlifter (-75kg. 145kg squat, 100kg bench-press, 180kg 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

Three tips for faster bulk inserts into a PostgreSQL database

2 minute read Published:

Disabling fsync, removing indices and using pgcopy will significantly speed up the import of data

Tens of gigabytes of data. An amount that doesn’t quite fit into an Excel spreadsheet but doesn’t warrant the use of big data tools like Hadoop either. PostgreSQL can easily handle this volume. This post is about speeding up the initial import of a large number of rows.

Seriously bad advice about SSL errors in Python and a better fix

3 minute read Published:

This is a post about fixing certificate verify failed error in Python without compromising security of your code. Don’t blindly follow suggestions on the internet because some suggested solutions can have serious unintended consequences.

Why the shattered dream of the free internet is good?

4 minute read Published:

When I was in my teens, the internet was a symbol of opportunity for me. In the physical world, we always lacked money. Parents sacrificed a lot to build a house. The jobs available to them were not great because of their education. We lived in a village, where everything seemed so backward to me. I was battling this internal fight with the environment around me. My father appreciated physical work and couldn’t see the point of computers.