michael ciccarelli is a software engineer and independent technology consultant.