Skip to content

Instantly share code, notes, and snippets.

@Kevinpgalligan
Created December 28, 2023 23:22
Show Gist options
  • Save Kevinpgalligan/e03091ff2536f436c2fb56c16b6cdea1 to your computer and use it in GitHub Desktop.
Save Kevinpgalligan/e03091ff2536f436c2fb56c16b6cdea1 to your computer and use it in GitHub Desktop.
My Recurse Center application!
### Links
Personal site: https://kevingal.com/
GitHub: https://github.com/Kevinpgalligan
### CracklePop
Common Lisp:
https://gist.github.com/Kevinpgalligan/c75b8d48fd616fb9fa8c2f0fc18dd802
### Something I've written myself
A calculator language with a CLI, GUI, unit conversion, functions and other conveniences. It's about 1400 lines of Python code. I now use it for all my day-to-day calculations!
https://github.com/Kevinpgalligan/ka
### The most fascinating thing you've learned in the past month
When you add together two sine waves of the same frequency, you get back a sine wave of the same frequency. Sine waves are the only periodic waves with this property! I learned this from "The Theory and Technique of Electronic Music".
### What do you want to be doing in two years?
Working on something that has a meaningful impact on society, like climate change research or the development of new medicine. It should involve all my skills - programming, math and writing. I want to work with nice people, and to have a kind boss!
### Why do you want to attend RC? How would attending RC be different than working on your own?
In one word: community. I've already committed to myself that I will take 3 months off to learn new things and work on programming projects. The desire to do this comes from my endless curiosity about computers and their applications. I know after completing a 4-year PhD that working independently is not a problem for me, but I'm applying to RC because I love meeting and working with people, and it would provide me with a supportive community to learn from and collaborate with. I imagine myself at RC excitedly talking with other programmers about the projects we're working on.
### What would you like to work on at RC?
I'd like to grow as a programmer by deepening my knowledge of various programming domains, including:
- Low-level stuff. I want to learn in greater depth how my code gets compiled, what binary format it gets saved in, how it interacts with the operating system when running, and so on. Project ideas: finish a computer emulator I was working on, write a parser for the ELF format, write a debugger, write a device driver, write a BASIC interpreter in assembly.
- Programming languages. I've dabbled with niche languages like J, Smalltalk and Forth, but I would like to explore them further in order to stretch my understanding of how to compute things. Project ideas: write a Forth interpreter, implement mathematical models in J, GUI application in Smalltalk.
- Signal processing and music programming. Interesting math, and combines my hobbies of programming and playing music. Project ideas: follow music programming book, write a device driver for my electric piano, create my own computer-based instruments, implement Fourier transform algorithm.
- Graphics. I would like to explore my creativity, and challenge myself with the applied math of computer graphics, by making videogames and generative art. Project ideas: make generative art based on The Coding Train's videos, add features to the 'sketch' generative art framework, take part in a game jam, create Common Lisp bindings for the Godot game engine.
### Describe your programming background in a few sentences.
I started programming about 10 years ago, during my science degree. I quickly realised that it was my favourite thing and I ended up majoring in computer science. After college I decided to get paid for my new hobby and found a job as a software engineer, working for about 3 years at a big tech company where I programmed distributed systems in Java. During my PhD, I did a lot of algorithms programming in the domain of channel coding. I also had to teach myself C++ and implement an optimised C++ library for binary linear algebra. In my spare time I program for fun - as a result, I've picked up languages like Python and Common Lisp, which I've used for dozens of personal projects, from a Reddit bot to a HATETRIS AI to CLI tools to a poetry generator.
### Have you worked professionally as a programmer?
Yes, I worked as a software developer for 3 years.
### Do you have a Computer Science degree or are you seeking one?
Yes, I majored in computer science.
### What other commitments (work, life, family) would you have during your batch?
None.
### How did you first hear about RC?
Julia Evans's blog.
### How long ago did you first hear about RC?
At least 4 years ago.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment