Who's Brianna Rainey?

photo of Brianna I'm a software developer from Ontario, Canada. I mostly enjoy making websites and video games, but I've made some libraries and desktop apps as well. My favourite languages are Python and TypeScript.

This site uses Python (Flask) for server-side rendering and for the backend API, plain JavaScript for all the arcade games, TypeScript for the games' shared engine, and a bit of React for the shopping cart system. It's hosted on a VPS running Ubuntu; I've used Linux since 2011 so I manage everything myself.

Python language logo TypeScript language logo Linux kernel logo

Brianna's history with coding

I started learning to code when I was 13, by reading a PDF written by Mark Overmars. It came with his educational program Game Maker 5, which I used for years to make simple arcadey video games like platformers, Snake, and Space Invaders. I had always wanted to make video games ever since playing Super Mario 64, and I was curious about how "real" code worked for games like that one. I felt like Game Maker was hiding too much magic from me, but I didn't have any programming education available.

screenshot of FuntimesIn high school I tried to learn C but nesting functions inside other functions confused me. I ended up writing batch files instead, and I stuck to rudimentary text-only programs for a while after this. At 16 I created the batch file adventure game Funtimes and many others. I also ran a bunch of websites for my friends, mainly web forums. For years I learned programming through reading other people's code as I tried to modify forum software written in PHP based on reading comments and guesswork.

In retrospect I should've focused on real educational sources more, but it took me a long time to learn how to learn. To be a self-taught developer you have to first learn how to be a teacher, at least for your own learning style. Nowadays if I can't find my answers using test output or a debugger, then I'll look straight to the documentation or the code itself before I waste time on trial and error.

I found Python in 2013 thanks to my friend Dan, and the wonderful language design of Python (and its great community) finally gave me freedom to code whatever I wanted. I still wrote terminal programs, but now I could also write web scrapers, graphical desktop apps, and webapps. After learning so much with Python, I started to research the theory behind it and apply that to other languages.

Now that I know how to think like a developer, I've been able to learn JavaScript much quicker than I learned Python. I made a Java program recently with little knowledge of the Java language, using my transferable knowledge and a few web searches to confirm syntax.

I love learning how technology works and learning how to create it myself despite the challenge. Believing that users will be happy that my software exists is what motivates me to keep working on it, so I have to understand who the user is. Although I started out wanting to make video games, I now enjoy many fields of software development.