Mark Kreynovich profile | River Platform