ABOUT

Kelly Norton is a software engineer living in Surf City, North Carolina. He holds degrees from Georgia Tech's School of Electrical and Computer Engineering and from the MIT Media Lab where he studied under John Maeda. He has co-founded a couple of companies. Most recently, Fullstory, where he works as a Software Engineer. He also co-founded Connexxia LLC in the early 2000's to help universities effectively recruit high school seniors through online social engagement. He spent six years at Google, working on Google Web Toolkit, Speed Tracer, Google Chrome and other cool stuff. He worked on Etsy's product search and he also spent nine years building MailChimp where he was a Distinguished Software Engineer. He was a key member of the team that grew Mailchimp to over $1B in revenue before it was acquired by Intuit in 2021 for an astounding $12B. Honestly, he really just likes to build things.

JOURNAL

Like any everyone else with a keyboard, I spend a lot of my time these days using Large Language Models. This post shares an exploration of how LLMs might be used to "read" more books for a sufficiently loose definition of read.
Back in 2006, I posted a bouncing ball simulation I wrote for a course. As it was 2006, the post used a Java Applet. Almost two decades after I published it, people continue to find their way to that page even though the Java Applet no longer works. Tired of seeing the errors show up in my analytics, I did the trendy thing and asked AI to update the code.
I recently re-learned a thing about PostgreSQL that I had learned at least one time previously. If you create a table with a foreign key constraint that includes cascading deletes and/or updates, PostgreSQL and MySQL have differeing views on whether the indexes to support those cascading operations should be created automatically.
Recently someone shared a link to a Javascript quiz that asks various questions about Javascript's infamous quirks. One of the questions required that the reader have basic understanding of floating point rounding. This is not a problem unique to Javascript and I attempt to explain why.

PHOTOS

Mastodon