Max Williams

Hi! I'm Max Williams. I program computers, sometimes they even do things of value. I think the most beneficial thing to do with my life is contribute to AI safety/AI alignment research. The most interesting (and most harmful) thing I could do is to research AI technology with no regard to safety. It sure is fun, though, and everyone is paying for it.

Current Stuff

Indefinitely Scalable Computing

Pioneered by David Ackley, indefinitely scalable computing is a drastically different approach to software which makes it possible to design programs that can run on actual unbounded amounts of hardware. When doing ISC, you design programs that run on thousands of tiny interlinked computers (in a simulator or with actual ISC hardware). The style of programming most beneficial to this is very organic and borrows ideas frequently from biology. It's a long way from being of practical value, but putting in the work to understand it has greatly opened my mind to the boundary between software and living things.

Making better simulators and languages is a goal for me this next three months, as well as using those tools to design interesting programs.

Analog Synth

I have had a dream of building a hardware music synth, with like op-amps and feedback loops. This project is just a vague dream right now, I'll be buying stuff to build the first iteration this month

Job Search

While this summer has been fun, I am more than ready to start working. My resume is polished but my interview skills are probably sub-par. I also need to make an optimized video chat setup, since I want to be fully remote. The interview now is not only about normal interview stuff, but how good your video chat tech is, since the video chat replaces all face-to-face interaction.

Past Stuff

Master's degree in Computer Science & Engineering at UofL

I just finished my graduate degree in Computer Science and Engineering. The last semester was spent mostly on my thesis, with a few project-based classes to break up the days. I was able to maintain a high quality work from home schedule and got an incredible amount of work done in a self-directed way, encouraging me to undertake projects in the future with the same amount of dedication.

The more I study AI safety, the more I vary between feeling hopeless as the open and unknowable maw of the future waiting to consume everything of value that could ever exist, and feeling like maybe there's a winning situation and humans are capable of getting there as long as we do some good thinking. Universal rejection of modern living and most of our technology would also be a solution to existential risk, but then other dangers loom farther in the future, like the end of the sun's lifespan and natural extinction events.

SpashCall

My friend Luke and his brother, Charlie, all got together one month and built splashcall.com. It is a website where you can talk with one other person and play idle games together while you chat. It works great and a few of our friends and family use it. However, we couldn't get investor funding so it remains a trinket.

Undeletable

I built a website called "Undeletable" (undeletable.net) a while ago. It's a proof of concept for a twitter-like website where you can't hit backspace and you can't delete posts, and you can't lose your account. I have plans for making it even less deletable, but those will wait on my other projects.

PNNL Summer internship

Summer of 2019, I worked on few-shot image classification for Pacific Northwest National Lab. I enjoyed the work, and I worked with people skilled in all aspects of deep learning. There were other groups there that did statistical and principled computing, such as Bayes inverse problem solving and other scary stuff like that. It seems very practical, and solved problems in ways that seem impossible with deep learning. Maybe the whole "throw your principles out the window and compute" paradigm isn't always the best. Overall, I'm fluent in PyTorch now, which is so much better than TensorFlow for writing research code. I can make whatever deep learning model I want from scratch.

MAST-ML

Summer of 2018, Luke Miles and I worked for Dr. Finkel at the University of Kentucky, on the MAST-ML project with the University of Wisconsin. We worked full time for 10 weeks and worked with the main developer, Ryan Jacobs, to understand how the software did and didn't work, and made a rewrite which is now the main branch. We learned many lessons about software development; it was the first time either of us has worked on a project of that scale. Most of our time was spent considering how to approach a problem, and when to break a model to allow for some functionality. For instance, we originally had a pattern of "no magic keywords in csv column names" pattern, which we later broke to allow for the user to specify a train/test column by name. It was tricky to integrate this change in data flow into our model of how the program should work, but it was a necessary feature.

Informatics Lab Internship

During my Sophomore year, I assisted the bioinformatics lab with some data tasks, neural network programming in Keras, and typesetting their paper in Latex, word, and then Latex again. I made several figures programmatically using Latex's Tikz package, which was fun. I also got very good at typesetting formulas. The final version of the paper is here.

Vex Robotics

In high school I was on one of my high school robots teams, 5454J. We only had 4 people on our team so all of us did a little bit of everything. We spent most of our time taking the robot apart and trying to fix things being weak and slow and wobbly. Here is a snippet of the arm robot we took to Worlds in 2015. We tended to go for the long shot and make unusual designs with the hope that we would get an edge that no one else had. This didn't really work that well, but we had a lot of fun.

Exchange Year in Thailand

I spent my senior year on a rotary exchange in Thailand. I stayed with three wonderful families for a total of nine months, and went on a few rotary organized trips with the other exchange students. Here is my blog from the trips and other side adventures. I can also read/write/converse in Thai on a pretty good level, but since I've been away for so long I would need to re-acclimate to have a non-ridiculous accent and ease of speaking.

My Thoughts on Programming Languages and Text Editors

Python

Python is pretty great, but the community and standard library and package manager make it by far the best language for basically anything these days

C/C++

C is great, C++ has a bunch of confusing object oriented stuff I haven't really learned yet. But I love writing C programs, my operating systems class projects and digital music creations are some of my favorite programs I've written. Universally useful and a bare-metal feel without actually worrying about the annoying stuff that comes with the actual metal.

Lisp

Common Lisp is my go-to language for personal projects, alongside python. To me, it's Python but 100 time as fast and with an awesome macro system, albeit with a much worse standard library. Also it looks awesome and feels good on my brain to write.

I made this website using Common Lisp. You can find the code here. It ended up surprisingly complex, but I did a major refactor recently and the complexity was manageable. This website is definitely one of the most complex projects I've done by myself.

I made some digital music, here is a sample of my first attempt. Maybe I'll make more, with some percussion and more interesting virtual instruments.

JavaScript

I actual don't mind writing plain JavaScript, and frameworks aren't bad once you've been indoctrinated into them, but the whole web ecosystem these days has something really fishy about it. For my own projects I don't do a lot of web front-end dev, even this website only has a few scraps of JS and those are encoded as parenscript (mini-language that more or less directly transpiles to JavaScript)

Vim

Vim is my mainstay. I basically refuse to use IDEs, and very much prefer to keep all of the functionality of my computer in the shell.

Emacs

Learning Emacs is hard, especially when I know my text editing commands so well already. But it has the only good interactive lisp mode, and Evil mode (vim mode) isn't really optimized for using with lisp. Also there are apparently some really good lisp editing modes. Should I learn it? Yes. Have I? No. Will I? Maybe.