Work
Most of what I build is private, for Entropy Labs or for clients, so these case studies cover the problems and decisions and leave the code out. Where I can't name a client, I don't. The first few are the ones I'd point to.
Selected work
The ones I’d point to first.
.lllllllllllllll''lllllllllllllllc . . ......... 'llcl::ccc:lcccl;;olcclcccccccccll .........'. ......... ..... 'llclccc::::ccco;,lc:::c:::c:::cll .;;;;;;;;;;;;;;;..;;;;;;;;;;;;;;;, .. . . . .... . ... .. ...... . . ..'...,'....'...'' ..';.. .......... ......... '''''',.'',... .,'''..,',.'..,','. '.''',' '',.. ,'';'''. .,;'''..,. ''.,,,,',,';. . ........... . ................. . ..... ..... ....... .......... ............. ... . ...... ... . ... ........,,......... '.. . ......... .. .... .. '... . .. ,.','. '. c,. ,.,;;,'.;,. .'. .. . . . . .. . . .. ... .. .'''.........'''.....''. ..'.... . .. ..... .. ... .. .......'' . .. ,'.., '. ,,, ..:,,,.'';. .'. .. . . . .. . . . . ... . .. . .'',''''....,,.....','..,. ''..''. .....' . . . .. .. ... .. ''',.. . .. ,'', '. :'. ',;'..',. .,. .. . .. .. .... .... . . . .. ... . . ..,;..,,'.....,...'.''..'' ,'.,,',..'' . . . .. . . .. '... . .. '''. '. .'' ..'; ',; .,. . . . .. . .. . ....... . . . . . ..,:'.,,'....',...'.''..'' ,'.,,,,..'' . . . . . '... . .. ''.' '. ;.. .',....'. .,. . . . . . . .. ..... ... ....... . .',,',.'',,'' .', . .. '.. . .. ,..'' .. '.. . ''.....'. .'. .. . ... ........ ........ ... ....... .,,,';',..',.'.',,;...,',,..';,':''.',,,'..''. . ......... . .. ''.., .. ... . ;........ .,. . . ... ......... ........ ... ....... . .',,',,,..',.'.',,;'..,',,..,,,,;'.'',;,' .'. ......... . . ...... .. '. ....'...... .,. .. . . . . ... .......... . .. ...... ........... :cccccccccccccccccccccccccc. ...... ...... .c'. .: ,,;'; ,,;. .......... . ............ .. '............ c', ;'';;, .lllllllllllllllll. ,,,,,,,,,,,,,,,,,..ooooolllooooooooo..lllllllll:c::c:c:clllllllll, ..... ...... .'........,.....'. .......... . ........ .. ... ....... '.'. '..'.. .lllllc;:;:;:lllll. ,,,,,''.....,,,,,..ooooocc;;;;:ooooo..ollllllll:l;c;;;:cllllllllo; .llllllcccc:clllll. ,,,,,'''''.',,,,,..ooooooclccclooooo..ollllllllcllllllccclllllllo; ............... .:.. .: '',', ',;. .lllllc:::::clllll. ,,,,,''.'..',,,,,..ooooolcc::coooooo..olllllll;c',';;c;:;lllllllo; ........ ..... .,.'..,...,.'...,. .;:::::::::::::::;. ................. .;::::::::::::::::..ollllllllcllllllllcllllllll, .''''''''''''''''''''''''''.Retail operations platform
Polaris
Retail operations software for shops that bill all day: invoices, refunds, batch stock, supplier orders and customer ledgers that have to agree with each other.
2024 to now.. .... 'WWK .KMMN. ,xXMMMMMk ... 'MMX dXXk. kMMKl;,,;. .MMN 'MMX cMM0 .dXl. .MMN 'MMX.kXNNX0o. ,KKKKK..dKNNXk; ;KKKKKKKx :xKNNNXOl. xMMl ,0MNl. dKKKKd :OXNNKd. ;x0XNNXOl. .KKx.o0NNN0x, ,d0XNNKkl. oKKKKx ;kXNNKd. k00KMMM000000O 'MMN0xc;:oNMWl .llOMMcXk:;cNMM: .llllkMM0 .XMWkl:cdNMN; ....OMMl...... ,0MNl ;llNMN:Xo::kMMK .KMWOl::oXMWc .MMN0Oc;:oNMMo kMMXoclkWMW: ;llNMN:Xo::xMMN. looxMMWdoooool 'MMM, .XMM, lMMN, :XXo :MMO 0MW, .0MW. dMMMMMMMMMMMMMO .XNNNNNNNNNNMMMK KMMO. OXX. 0MW, 0MW. .MMMl .XMM' dMMk ,WMW. KMMO. xXX, .MMN 'MMX xMMc lMMk :MMO .MMXlllllll0MM; .''''0MMd'''''. :cccccccccOMMNc KMM: .MMXlllllll0MM; .MMW. oMMl NMM, OMMc KMM: .MMN 'MMX 0MM; lMMd :MMO .MMWkkkkkkkkkk. kMMc ;0MXl. KMM, .MMWkkkkkkkkkk. .MMW. oMMl NMM, OMMc KMM, .MMN 'MMX .xMMk lMMo :MMO OMMo kMMc OMNl KMM' OMMl .MMMc .KMM, xMMx 'WMW. KMM' .WMM. 'MMN;;;cxNMNl cllOMM0lll. .lllllkMMXllll' .kMMXxl:::co. kMMc .:. .lllNMMxlll .xWMNxlc::co. .MMW0k:,;lXMMx .OMM0l:cdWMW: .lllNMMxllc lMMNdc::cl. .NWMMMWN0x:. 0KKKKKKKKK; .KKKKKKKKKKKKKc .ckKXNNNNX; dXX: ,KKKKKKKKK0 .ck0XNNNNX: .MMW.oXWMWXk; ;kXWMMN0o. ,KKKKKKKKK0 'xKNMMMWNc . .MMW. . . .MMW. .MMW. ',' ' ' .. . .x',, .',. .;,. ,.,,. .,,,x ,,,. .;,. .,,', .,,' '.,;. .,;,. '. ',,. .,,. .,;,. '.,. .,,. .,,,..,k,. .,;,. .',' .,,. .x. .x.:o .;.'x; O. .x.'d. 'x ;o.., ., .;.'x,'x. .k.co..co x: .d;.x. .; c; x;.'x'.x'.,. ; .d. ., dc ol..lc ''.:x x .d. .d.;x. .x'.,. .x .x.:; ;c..d: x o''o .x ...,d . :c..d;'d .k.lo..;; x. :c.d. ' c; k,..:..'.'o' . .d .. d' dl..;'.d,.;k x .d d.;l .'.'o' .:;;;. '. .;,,,. : ,. .;;,; .;;;' .;,,'. .;;,k. ';;;. ;. .' .;;;. '. .;;;. ,;;; .;;;. ;. ,;;, ,;,', ';. .;;;. .' ,;;; ,:;::Creator campaign platform
October
A campaign platform where brands, agencies and creators run influencer campaigns from brief to report, with numbers every side can trust.
2025 to now...................''::,,,,,,,,,,;;;;;;;;;;;,,,,:::::::::::::::::::::::,;;;,,:,::::::::::::::::,,,,,,;;;;;,,,,,,,,,:'''''''................. .....................''''::,,,,,,,,;;;;;;;;;;;,;;;;,,,::::::::::::::::::;::::::::::::::::,,;;;;;;;,,;;;;;,,,,,,,,:''''''''.................. ........................'''':,,,,,,,,,,;;;;;;;;,;;;;;;;,;;;,,,,::::::::,:,,,::::,::,,,,,,;;;;;;;;;;;;;;,,,,,,,,:'''''''................... ........................'.'':,,,,,,,;;;;;;;;;;;;,;;;,,,:,:::::::::::::::,::::::::::::::::,,;;;;;;;;;;;;;,,,,,,,,,:''''................... ........................'''''',,,,,,;;;;;;;;;;;;,,,;,,,:::::::::::::::::,:::,::::::::::::,,,,;;,,;;;;;;;;;,,,,,,:''......................... .................'.''.''''''''':,,;;;;;;;;;;,::::::;,::::::::::::::::::,,:::::::::::::::::::::::::,;;;;;;;;,,,,:'''''....................... ...........''''''''''''''''''':,,,,;;;;,,::::::::,,;;,;;;ccccccccccccccc:ccc;::::,:,;cc;;:,;:,:::::::,;;;;;;,,,:''''''...................... .........''''''''''''''''''''',,,,,,;;,:::::;;ccccccc;,clcclclccllllccclcc;c;;;;;;;c;cccc;ccccccc;,:::,;;;,,,,,,'''''''...............'''''. '...''.'''''''''''''''''''::':,,,,,;;;;,:;cccclclllllllclllllllllllllllllllllllllllllllllllllllllcc;::;;;,,,,,,,:''''''''..........:,,'''''. '..'''''''''''''''''',::'':::,,,,,;;;;,::,cclllllllxxoooxoooooooooooooookkkkkkkkkkkXooxooooooxxxxlc;,,,;;;;,,,,,,:''''''''........'::''''''' '''''''''''''''''''''ccc;c;:,,,,,;;;;:::;cclcclxooooooooooooooooooooooo0NNNM0MM0M0M0Kdddddddddkolllc;,::;;;;,,,,,,''''''''''......:,:,,,:::' '''''''''''''''''''''cc;;ccllc,,;;;,,:,;ccllxllcllllxxxxxxxxxxxxxooxooxXkoooooooookkkXooxxxxl;coXkkxl;:::,;;;;,;,,,:'''''''''.....:,:,,,,,:' ''''''''''''''''''''',c;;;,c;,,,;;;;;;;cclloooolc,,,,ccc;;;;;;;;;;;c;;cllll;;;;;;;;;;;cccc,,,cXXKkkXc,c;::,;;;;;,,,,,'''''''''....:,,,,,::'' '''''''''''''''''''''::::,::,,,;;;;cxxxllxxxKdXxl;;:':::,;;;;;;;::::::;::::::,,;;,:,;;,:,,;,;xkkKOXKoxl;::,;;;;;,,,,,:''''''''''..',::::'''' ''''''''''''''''''':';;;;,,:,,,;;;;coooXkkxldddox;,;,,,;,;;;llcllllxlxxooXXXxcxxxxxc,;,:,,;,lXX0OOXkXxlc,:,;;;;;,,,,,'''''''''''..',:''''''' ''''''''''''''''''',:;;;;,,:,,;;;;;coooxxoxlKxKXxc,;,,,,ll;;c;;;;;;;;cxlxxccl;;cccxoc,,,;;,;lkd0dOXXKox;::,;;;;;,,,,,:''''''''''..','''''''' '''''''''''''''''''::;;;,:::,,;;;;,cookxxxxcxxoKkl:;,;;cxo;,,;;;ccccclkkkkcccc;;,,oKx;llcc:;xkd00Odkkllc:::;;;;;,,,,,:''''''''''..','''''''' ''''''''''''''''::::',;;::::,:;;;;;;ooXxxxolxoxdkl;;;;,ckXl,;;,:;;c;;clccl;,,;;c;;kdoxoool;cxkdO0dkkkxl;,:,;;;;;,,,,,,''''''''''..','''''''' ''''''''''''''''::,,';;,,:::,,;;;;;;ookooxlcxokdkl;;;c;ckox;;;;;lxxxxoxooxlc;;;,ccOdXxoool;cxkd00dkkdox;;::;;;;;,,,,,,:'''''''''''',::'''''' '''''''''''''''::,,,:;;;;:::,,;;;;,;ooklc,:,:,xoXl;,;c;lkkx;c;,;xoXkoXKddooc;,;;;lOdXlookkclokdOk;ckKXo;;:,;;;;;;,,,,,,'''''''''''',,:'''':, '''''''''''''':::,,,:;;;;,::,,;;;;,cookx;:,:,,,XXx;,:c,ckkx;l,,,XoXo::kddkoc;,;,;lKdoxooKollokKXx,xkdoo;;:,;;;;;,,,,,,:'''''''''''',,,:::':, '''''''''''''''',::,';;;,:::,,;;;;,cookxo,xccXooKx;,;;,ckox;l::,o;,,':;dkkoc;;;,;lKXxxookollokXkdoXkKox;;:,;;;;;,,,,,,'''''''''''.',:'''''': '''''''''''''''::,,,:;;;;:::,,,;;;,;oooxo;xxxxoxkx;;:,,,Xxo,c;:;Xl;,,:lKdkol;,;,,lkXxxookxllokXXdoXkKox;;:,;;;;;,,,,,:'''''''''''.',::'''':: :'''''''''''':':,,,'';;;;;::,,,;;;;;oooxXcxlcXxXll;,.:,;oxx;c,:,Xox..'okdXoc;,,,;lXoxxooklcloXkkkooXkol;;:,;;;;;,,,,,'''''''''''''',:'''''': '''''''''''''::,,,::';;;;,::,,;;;;,coooxXxollXklcl;,',;:lxc;c,:;oox.';okdol;;;,,;lXkxcookxclokxXkxkXkol;::,;;;;,,,,,,'''''''''''..',:''''''' :''''''':':::::::::'';;;;;:;,,;;;;;cooooXllllkK;:x;,:;;:ldc;c;:;Xcl':;;XKlc;;;;,:ckdllookxclxkoxXxKxkol;,:,;;,;,,,,,::''''''''''..',:''''''' '''''''''':':''::::'';;;;;;;,,;;;;,;ooooXclcxKK;:x;:ccccldl,;,:;c,,'',:loxlc;,:,,;kKlxookXllxkxxxlXxoxl;::;;;;;,,,,,,'''''''''''..',:''''''' '''''''''''''''''':'';;;;;;;;,;;;;,,ooxoXcllcok,:x;:cccc;dl;llc;clc:,ccXkXxl;;;cc;xklxookXclxkoxxldxoxl,::;;;;;,,,,,:''''''''''...',:''''''' ''''''''''':'':''':'';;;;;;;;,,;;;;,oxxKXcc,clk,:l;:cccccxollxxxooXlxokKKddklllllxxxcxlxkXcclokdoldxoxl,::;;;;;,,,,,:'''''''''....'::''''''' :'''''''''''''''''''';;;;;;;;,,;;;;,xxxdKcc,cKK:,l,:,,cc:xc,;;;,ll;,:clXkoxl;;;;;clx;xllko;cloKddlkxoll,::;;;;;,,,,,''''''''''....':'''''''' ''''''''''''':''''''',,;;;;;;;,;;;;,xlxdKclccdd:,l,;;;;,,l;;,;;;;,:;;;cxxll;,;;;,:cc,lllkx;clxdddlkxxlc::,;;;;;,,,:''''''''''.....':''''''.' ''''''''''''''''''''',,;;;;;;;,;;;;,llxkkclc;dk::l;,,cc,,,;,;,;;,;;;;,;lllc;,;;;;,;;,clllc:clxkXKloxxlc::,;;;,;,,,'''''''''.......':'''''''' ''''''''''''''''''''',,;;;;;;;,;;;;,llxkkclc;dk,;c':,;:,''',;,;;,:::,cllxll;::,,,;lllllcll,;lxXoXcoxxlc::,;;;,;,,,''''''''''......':'''''''' ''''''''''''''''''''',:;;;;;;;,,;;;,lllkkclc;dkxl:::,,,,,xc,,,;;cclllxKXkkxlcc;;;;llc;;;ll,;;looocoxlll,:;;;;,;,,,''''''''........':'''''''' '':'''''''''''''''''',;;;;;;;;,,;;;;lllkkclc;dXc;;,;cc;;lKx;llllxlxxxXdOdkXoxxllllxoxxoXkocc;,XoXcolxxl,:;;;,,;,,,'''''''.........':'''''''' ''''''''''''''''''''',;;;;;:,;,,,;;;lllok;lc;x;;llllllllxdxloxxxooooXKOdkXddKkooookKoXkokkkKdXxodcxlool,,;;;,,;,,,'''''''.........':'''''... ''''''''''''''''''''',;;;;;,,;,,,,;;lclok;lc,;lllllllllxodoooooooookdddkxodddddkkkddoddddXooooXxl;lloxl,,;;;,,;,,:'''''''.........':'''''... ''''''''''''''''''''',;;;;;;;;,,,,;;cccoX;l;,lllllllllxxokxoooooooooXKdkdddddKkooXKdXooXkoooooooo,;cxll,,;;;,,;,::'''''...........':''''.... ''''''''''''''''''''',;;;;;;;;,,,,;;cccxo;c,:lllclllllllxlxlxxxooooooXKkkdddooooookKooxoooxxxoooo,c;lll,;;;,,,;,''''''............':'''..... ''''''''''''''''''''',,;;;;;;;,,,,,,;;;xocc,:llcccccccccclllllllllllooXkXddkoollllXollllxlllllxxl:ll;;c,;;;,,,;:''''''.............'........ ''''''''''''''''''''',,,,;;;;;,,,,,,,,'cocc,:lcc,c;;:;c;;ccccllllllllxkkxKOdklllllllllllclcclllll:ccl;,,;;,,,,;:'''''..............'........ ''''''''''''''''''''':,,,,;;;;,,,,,,,,,;c;c,:cc,:c:::::;,cccccccccclllXooXoXXlllllcccccc;;;;;;,;c,c,,;;'.:,,,,;:'''''..............'........ ''''''''''''''''''''':,,,,,;,,,,,,,:,,;c;;c,,cc,,::,,::,::::,;;;;ccccclllooxlccccc;;;;;;c,;,,,,,:'::,,;,:.',,,;:''''''.............'........
Clinical callback workflow
Anatomia
A nurse callback and case review product where transcripts, AI triage and follow-up calls all have to stay attached to the right patient.
2025'cdxkkxd: ;::, .dNMMMMMMMMd 'lxOKXXKOxc. .WMM0 .XMMWd,..... .dNMMMMXKKNMMMWc .WMM0 kMMM; .xWNd,. 'XMMW' ;llloWMMXllllllll' .llllll. ,oxkxd:. ;oooool:,. .lll. ,oxkkdc. .,clddxxxxxd. NMM0 .,coddol,. llllll, .lxkkdc. .. kMMM, kMMMMMMMMMMMMMMMMo :MMMMMMo.OMWNNMMMN; OMMMMMMMMMKl. :MMM;0MMWMMMMMO. lKMMMMMMMMMMMM' .WMMO 'kWMMMMMMMMWk' .WMMMMM0 xMMNNMMMWo .oMMMk ....'WMM0......... ...KMMOd0, ,NMMN. ......';dNMMK. :MMMNO;. .dMMMO dMMM0:'........ ccccclMMMKccccccc. ;WMM0:....;0MMW, ...xMMWlK;. .0MMM' ,kWMMNl .WMM0 0MMMO oXXK' .WMMl :MMMk OMMW. OMMMl. .MMMMMMMMMMMMMMMMMl .NMMx kMM0 oMMMX. ;XXX; xMMMk:. .WMM0 0MMM' ,coxkkkxdWMMx :MMMc kMMW. ,XMMMWXOxl:'. ''''';MMM0'''''''. cMMWc;;;;;;;;xMMM. oMMMl ;MMMc .WMM0 0MMN .xWMMWNXKKKXMMMx :MMMc kMMW. 'cdOKWMMMMW0l. .WMMO lMMMMMMMMMMMMMMMM. oMMM; ;XXX. NMM0 0MMX .XMMK; .WMMx :MMMc kMMW. .':OMMMk .WMMO ,MMMl............ oMMM, 0MMW: 0MMX ,MMMl oWMMx :MMMc kMMW. 'WMMK .WMMO xMMWo. oMMM, .cl:. 'NMMMXkdoddxd kkkkNMMWkkkkl KMMWxc::lkNXoMMNkxl :MMMc kMMW. dOkxddoddkKMMMWc .WMMO oWMMW0xollloxo okkkXMMM0kkkd .NMMMX .l0WMMMMMMMW. .WMMMMMMMMMMMk lKMMMMMMXd.;MMMMMK :MMMc kMMW. XMMMMMMMMMMN0o. .WMMO .lONMMMMMMMMW. KMMMMMMMMMMMK OMMMx ..''.... ..''.. ...... ....'''... ...''''.. ... .. . .. .;;' '., .',. .,,' , , ,. .,,,. '. ., ' .,;, .',. .,,', .. ' ';,. .'', .,,, '.,;. .cd,..; .',;' ',,. c: ;l x; ;x. 'x'.;x ,c ,l l,.x,.'k.'l lo'.o 'o. .x.:o .x. .k.;: .d .,.'k..k. ,..co lc o; 'l .o :o cc dc..d, l; ,o x. ;l ,x..,: l:d l,.k'.'c. ol:.dd. 'o .x.:; .d .k.,o ,d c:..x'.d .o'.:d l' ;c 'l .o :; .o d:..:. ,;;, ; .' .;;;. .c. ,. .;;;. .c .; :; .;;;. .. .;;,k. ':;,; .;,,,..; ,,,', ,. .' ;;.., '. ., ,;;, . l.Legal intake fraud scoring
RISQ
Scoring intake calls for mass tort firms: separating real claimants from coached callers, with evidence a reviewer can follow.
2025 to nowMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM;NMMMMMMMMMMMMMMMMMMMNMMNKk,.. ... .... ........''':''..... MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMlOMMMMMMMMMMMMMMMMMMMMNMMMN0X,... .. .... ..............'...... MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMkkMMMMMMMMMMMMMMMMMMMMMNMMMMMOoc'..... ... .... .............. MMMMMMMMMMMMMMMMMMMMMMMMMMMMMKxMMMMMMMMMMMMMMMMMMMMMMNMMMMMM0Kc'', . . ..... ........... MMMMMMMMMMMMMMMMMMMMMMMMMMMMMlMMMMMMMMMMMMMMMMMMMMMMMNMMMMMMMNdo,:' .. ...... .. MMMMMMMMMMMMMMMMMMMMMMMMMMMNlOMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM0Xl;' .. ....... .... MMMMMMMMMMMMMMMMMNNNMMMMMMMoKMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM0Ko;,.. ....... . MMMMMMMMMMMMMMMMNWWNMMMMMMKXMMMMMMMMMMMMMMMMMMMMMMMMMMNMNNNWWWWWWWdX;;,'. ...... .. MMMMMMMMMMMMMMMNNWWMMMMMM0;NMMMMMMMMMMMMMMMMMMMMMMMMMMWMWWWWWWWWNNNNkx,clc. . ... ... .. MMMMMMMMMMMMNNNNNNNWWNMM0cMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWNWWWNNNWW0k;:xX,.... . .. MMMMMMMMMMMN0ONNNNNNNWMMxOMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNWWWWWWWWWWWWNN0dc,;l;..... . .. MMMMMMMMMMNNXXXXXONNNNMXXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNWWWWWWWWWWWWWWWMKXl;;;'..':'..'''':'. MMMMMMMMMM0XXXXXMNNNNWOlMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNWWWWWWWWWWWWWWWWWNN0dXc;:,:,:cloookXKkxcc,,::''''......... MMMMMMMMMMNMXXXXKOXXN0:NNWWNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNMMMMokkXxcllxXoxkKoXXxoXXxxcoococ;;,cc,,,:''. ..':': WWWWWWWWWNNNXXXXXXXXO:dWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNMMMMM0KlKkkoxxloxxl;'':;;,,::''. . . . WWWWWWWWWNNKkKkkKXXX,kWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNMMMMMMMd; ;XXXooool,;:..'::'............................. ...... WWWWWWWNNN0XKKKKKKKx;0WWWWWWWWWWWWWWWWWWWWWWWWWWWNNNNNNWWWWWWWWWWWWWWWNNNNMMM0k,:xooxl;:'........:::,,,::'.....':',lxxlllccllllxc;;l;,:'':'. NNNOWdddOOddOOOKKKk,dkNNNNNNNNNNNNNNNNN0ONNNNNNNNNNNNNNNNWWWWWWWWWWWWWWWWWWWWWWOx.,:'::,,,''''::,:''.'llXK00dOOkKdONMMMMMMMMMMMMNNNM0MM0dkKK dddOOOOOO0000O0KO0'dOOK0NNNNNNNNNNNNNNNOXNNNN00NN0OON0NO0NWWWWWWWWWNWWWWWWWWWWWWdx'cc;::'...'..'lxc'XNWWNWMKOddXlKMMMMMNNNNNWM0KkXxXXldo:Xx; kkkkkddKkOO00OO0O:XOO0KXXOOKOKKKOOKNNNNOkOKXXXXXXXXXXXXXKNNNNNNWNNN0NWWWWWWWWWWWW0,;'. .. 'lO00kxdcxdxXKKdkdo;okOOKKOO0O0OdKXKKKkXlkl.xo:' xxxxxxXXkdOOOXXXc;OdkKOKkXXXXXXXXXXXKOKkOKKKKKKKKKKKkKKKKKNNNNNNNWNOOWWWWWWWWWWWWWN;:;, . 'XMW0lXxXKolxlodXloollxxdOkdOKXkKd0XKdkK00M00d0xxx kokkxxxokXXkkoko:XdXkkKOddddKKKKddKKKkkKOOOOOOOOOOOOOOOOOdONNWWNMOOKKWWWWWWNOOOOOOOd, '. :;,x;ONNMMNMKKccloKKKdx, cxoo'. ..':':c. dkddkkxxxxxxxKx.xkXxxxkd0O0O000000000OkddkKkdOOKXXxXXdXO0OKkkkkkkkkOdkkkXXXKdkolXXkKX'ck;:':kNMMMMNM0XX,lo..'oxx:. .;,::'' . . ooooXkKdKkkkko',ll;,;;lokXXkoxxoooKKO0000dKkXXkddddddOO00KdKdO000OOOK0Oklkl::,:,::,ocl0OO0NNWWW0MNOOXo::l'.. '' '':,'::' ......'' '.. . xxllxlxxxxlll,:;;;lloXXkXXddOOOOOOOO00OOdddKKddKKdkkkkkKOOONN0Odxoc;;,,;,'. .::,,,'..',,cxXkOKXOOOdOOk:o,:.... .'''' ;;;;c;,,,;;;:.lllK0NNOKkddKdddOdKkkkkkOOOOOOOOOMWWWWWW0Odxoc,,,,;;;,;;;;,:' .':;clol,:'.''':'' ::',,:::'..... . ::''''':,:,l.cddKkdKdkXkkdOOOOOMWWWWWWWWWNNNWWW00dooc,,,,,;;;;,,,,,,;,,':.... . ..',cclllc:'. . ............. ... xxookOKdddOX,KkkdOOOONWWWWWWWWWWWWd0KkloOkXokx;;,;;;;,,;,,;;,,c;,,,::'.',o. ....' . ;. .',;'':':'... ... dOdddk0OOOd'MWWWWWWW0M0MMooXlolcccxlXXKkxlcc,,,;;;;;,,;,:xl;;cc,l'''. .'.::. ..' . ;x' ........... .. MWWWWWWWWWloWWWW00dxccc;;,ccxcXKKkkXocxxxxxxxlcc;;,'':...,lo.'cl' ...:'.. .. . ... . WWWWWWNNNd,NNNWWWWM00KKXdOkkxkolxokXoKdKoKoll,:'.. .. .....,,:,xl;'..... .'. .. ....'''... ..... NNMMMMMNN:MMNWW00OOOkkXoxokooKdkKodXc;;:.'.......'.':c,:. ::. . .. ..'''.'..... . ........... NNMMNMMMxx0dKdXXXoXXXkKKkxkKlc;,'...'':,,;::'''''. .:.. .... ...'l' .':;x;c''. ...'''''''.......... ............ NNNN00kX.lXolllooKkXol;c:.'.'::,:,:,,'''':'':,cxlXdKc... . .. .ccl.cxllc:..,c:lk;::'.:'.. ...... ....''..... ......... OkdKkXl.,xXoccl,:'.'';x;;,;:::.. ..',c'.''''. . :,',c'' :kKOOdOdKx;'...,ll',.. ;;c;,':'. . ....'::':'''...... lxlxXx, :'.'':,,:;lll;,:.. :c;cc. .''::;:. . ...,:.. ',;l' ';;kdddO0Odkkxl;.. ''.'::'::,,:c;:''. ...'.''........... ,xx,. .'':;XOOdKKdOMOkKOOkc;;xXkl'oKKoolxlc;;... ..,xxXx;,;:. ',..'xXK00dKddKXoXoc,''. ..'',;::;:,:,;::'.. ...'.'. . do' . ..:oOdddMKXxxoxlc,;;cl;':: 'c:... . . . ... ''...' .' .:cXdkkkXXxKdkkKoxl,::. ..:,,:'.:':'.'.. . k'.. :lOddKx;,k;:,,,:''''....:. . . . ' .':,cccXdddkkXxcc,'..... .. c.',;xooxc:':'.'' .........;;lc .' ..'':,;,:. . . 'xK00KKc:cllc,,;. '.''''':''':':lcl: ',lolxl, .. '.:,c,::' .... dlooXc. .'' .',:'... ... :,loxlc;llccx:,;ckl;'...'.,l,'c,.'' ....... lc .: . .':cxkKXkx;kKool.. . .'.;,lxx;. .xo; .,l. . ....''.,xc' .. . XK: .;; . ,kkKX xOxxc.'. ',;;:. ..;x, .o,' . ..'.:..
AI brand workflow
Bonnet
An AI brand-development tool that turns a creative brief into research, strategy, creative direction, moodboards and a document a team can use.
2025
Side projects
Built to understand something, then kept.
Earlier work
University years. Rough edges included.
- Building a C++ Image Editor2025My university project, a grayscale image editor in C++ that loads, filters and transforms PGM images.
- mhassan.dev — This Portfolio2025TanStack Start, React, typed MDX content, accessible controls, and static GitHub Pages output. How the site is built.
- PixelCryptor: Hiding Executables Inside Images2025A Django project that embeds executable files within images using delimiter-based concatenation, and why real steganography is harder than this.
- Smart Dustbin: IoT with Arduino, Python, Kotlin & Azure2025An IoT garbage monitoring system built with Arduino sensors, ESP8266 WiFi, a Python desktop dashboard, and a Kotlin Android app, plus what it taught me about hardware constraints.