About Me

Hi! My name is Zander.

My primary interest

I have been passionate about computers since I was roughly six. I've remained intrigued by how a computer functions on its lowest level. In 2009, I remember watching videos about Super Mario 64 hacks. Fascinated, I came to my father for a solution. His words: "programming."

Eager to know more, I began searching. I quickly learned that the fundamental basis of "programming" included logically commanding a computer to perform instructions in very specific ways. I began my endeavours in learning to program through simple Batch scripts, like short text-based adventures with simple choices and results. I remember showing my friends. I remember the sheer surprise they exhibited, seeing what I thought was just an interesting experiment. Noticing this, I realized the potential I could have with computers, as well as the motivation brought about by simply pleasing others with my work.

After Batch script, I grew tired of the simple, linear label-based code. Seeking to utilize more of my computer, I set out to develop my very own web browser, an extremely ambitious endeavor. I discovered Visual Studio and the languages it offered, like Visual Basic, which was my next language. Using the handy Windows Forms tool, I was able to "create my web browser" by plopping in an engine-provided browser widget, a few buttons, and a text box. At last, a day after the conceiving of its idea, I created my web browser. I gave it to my parents, and really expected them to use it, unbeknownst of the fact I created almost none of it. They used it a few times.

Lua

On March 12, 2012, I created an account for the then-game Roblox. The game was stylized as a basic yet fully multiplayer LEGO-like world. However, there was one major catch that immediately interested me: the game supported the creation of other games. With this knowledge, it became more appropriate to refer to Roblox as a sort of "engine" or "platform," rather than a mere game. After about a year of simply playing the game, I became dedicated to learning how I could control the functionality of the game.

Roblox utilized Lua for its in-game scripting, likely because of its characteristics of being lightweight and easily embeddable. I was taught by another member of the community for about a year until I had a solid basis of understanding how the game worked.

Some users on Roblox hosted "games" known as "Script Builders," that is, games where anyone could join and run their own scripts with little restriction in realtime. This allowed users to demonstrate their programming abilities, or simply to share their creativity. From about 2014 to 2017, I was extremely active in these communities. Of saved files, I wrote over 60,000 lines of Lua for use in Script Builders, including server administration utilities, unique weapons, maze and terrain generators, and much more. However, I eventually stopped partaking in Script Builders after Roblox deprecated a few critical features required for them to run smoothly.

Discord

In 2016, I discovered the chat platform Discord. I found a number of chat bots or just "bots" for short, and wondered if I could create my own. I set out to create Discoid, a multipurpose bot for Discord servers that supported quick but extremely powerful moderation, fun features, and a variety of utilities. After about a year of working on this bot in C#, Discoid was in over 23,000 servers on Discord. It grew to over 10,000 lines of code.

Unfortunately, my finances were too shallow to continue to host Discoid. Additionally, Discoid had taught me so much about proper code practices that I felt a rewrite was necessary. In June of 2017, I began work on Qubit, a new bot with similar end goals but an extremely different design path. Qubit underwent three complete rewrites until I settled on an iteration I enjoyed working on.

Example Qubit Status
Qubit's response to a command that requested its current status, shortly before the development was permanently halted.

Qubit never left its beta stages (primarily because I wasn't sure people would discover all of its features in a meaningful manner). Instead, it stayed as an opt-in open beta provided to those who found the server for Discoid and wished to give it a try. Before I stopped working on Qubit, it supported custom commands (programmable using sandboxed Lua), command rulesets (a declarative syntax for enabling/disabling commands in certain contexts), image manipulation (superimposing existing images on top of others), gambling (with a custom currency), a social system (complete with profiles, reputation, a biography, clans, and more), and quite a few more major features to keep the Discord power user entertained.

Again, much like Discoid, development on Qubit was ultimately halted due to the lack of funds, and consequently, motivation. The lack of funds made it impossible to reasonably host the bot, and my lack of motivation stemmed from the fact it seemed as if nobody truly appreciated the capabilities of the bot, disregarding a select few people who used its features religiously.

What I ultimately took out of my Discord bot projects was how critical it is to be able to design something that not only you can enjoy as the creator, but that many others can enjoy. Two major factors that drove me to continue to work on Discoid and Qubit were its ease-of-use and appeal to users. Moreover, these projects taught me a lot about user interactability, design choices, and provided insight on users' approach to learning concepts.

Philosophy

Through almost a decade of programming, I have realized some of my philosophies when I create projects for others to use. I consistently seek to create a project that is polished, simple to use, and appealing to users. In essence, I seek to create what I would adore using.

TODO: probably more with this section