# Welcome!
It’s nice to have you here. My name is Ben and I’ve been building full stack applications for most of my life. I currently mostly focus on Ruby on Rails, though I’ve loved working with various platforms and languages throughout my career.
TL:DR: I learned to write Minecraft server mods, worked at a few unique and interesting companies, fell in love with Ruby on Rails, and ended up building web applications for a living.
# Minecraft Mods & Server Management
I had started my development journey with Java and Minecraft, creating server-side Bukkit mods to enhance my player’s experience and had my first small adventure into the world of running a Minecraft server business when I was 13. With some of my more popular servers averaging around 300 players, with peaks from 1k-2k. I had created multiple server networks offering some of the more traditional server experiences in addition to custom gamemodes developed by me. One of these custom minigames was a FPS class-based shooter within Minecraft, utilizing custom code and Resource Packs to create a multiplayer shooter.
My cousin and I would run this server from my grandmother’s dining room on a fold-out table, with our monitors opposite each other, with him responsible for moderation, player experience, and marketing, while I focused on the technical aspects, networking, server management, development, e-commerce and optimization.
We used a variety of server hosts based on whatever was the cheapest at the time, and I had a hyperfixation on optimization due to our limited ability to afford the servers at the time, and making 1GB go a long way would mean that would be more time we can spend making the player experience better.
Side tangent: Through a variety of optimization mods and techniques, I was able to get 150 concurrent players running at a full uninterrupted 20TPS on a shared instance with only 1GB of RAM. It took a while to get it that optimized, but I’m still riding that high. I ended up using this set of configurations as the foundation for the server network as it was cheaper and a better experience to link together multiple small 1GB instances via BungeeCord than to split a larger resource
Through this, I also started to get involved in web development and integrating e-commerce into the server and offering purchasable ranks and items through my web shop, which was eventually enough to allow me to purchase my first computer with my own money. This continued until my interest in Minecraft waned and the server competition had grown outside of the scope of individual developers and into the “teams of people” territory.
# My high school’s tech closet.
I decided to go to high school at FlexTech in my hometown of Brighton, Michigan as they had a (for the time) technology-friendly and project-based approach to education, and I thought it would be an opportunity to use my existing interests and skills to help me end up where I wanted to be – writing code for a living.
During high school, I tried my best to use programming as my means to complete as many of my classes as possible, as the teachers were willing to allow me to use this unorthadox approach to demonstrate my knowledge so long as it remained relevant to the task at hand. As such, I used programming for most of my math classes and wrote small Processing scripts to demonstrate whatever topic we were studying at the time.
I also used programming as the foundation of a few other of my classes, using application ideas to be the foundation of business plans for civics, writing Processing demos in my programming classes, and I began working with the administration to propose a learning management platform specialized in the unique challenge project based education systems have. I started writing this in pure PHP with no framework, and thankfully it never started getting used because it probably would have been a disaster due to how poorly written it was.
Around this time, I also started to hang around the IT room and help the IT guy at the time repair broken computers, iPads, or whatever other school property was around and not functioning. I learned a lot about physical device repair, networking and network security.
# Entering the workforce.
During my junior year, my friend had introduced to me to a friend of his that was looking for someone with web development experience, and this is when I got my first web based development opportunity. I was offered a contractor position for $10/hr at the Orange Cube Group helping with web development as well as helping the owner manage client communication. During this time, I mostly worked with small business to get basic SquareSpace and WordPress websites built, and this is when I started to become more familiar with manipulating the DOM through JS, as there were several projects I’ve worked on adding additional functionality to SquareSpace through scripts to meet the clients needs. I had also built a few very small WordPress plugins to augment functionality.
After graduating, I had become an employee of the Orange Cube Group, and was also working with the same IT guy from my high school doing web development since a company he had helped create had enough clients asking them for web help to hire someone. I worked with them for a few months and made a few websites, though I had gotten an amazing opportunity from the University of Michigan to work as a Desktop Support Specialist II.
# University of Michigan
It wasn’t long after I started working at the University of Michigan that I was placed as one the primary supports for the medical research building as I was more familiar with Linux than the other technicians and had an aptitude to quickly resolve the more complex needs of the research division. Compared to their hospital counterpart, the research division tickets were more involved due to data loss concerns, specialized equipment, and heavy use of a slightly modified RHEL built for research use.
I really had a lot of fun in this position, as I loved sitting in the labs and chatting with the research folks about what kind of work they were doing and asking questions. They obviously loved talking about it and I loved to learn about it. The fun of learning certainly overshadowed the occasional cadaver encounter, smell of the animal research areas, and the elevator doors that never minded closing on your body parts.
After a few months I recieved another opportunity working with a marketing automation company as their primary web developer, which I accepted as I wanted to primarily focus on programming and development, and there weren’t many opportunities for me to build those skills within the hospital setting.
# The Fun World of Marketing Automation
After I had started for Spry Ideas, a publishing house now pivoted to digital marketing, automation, and web design, I started interacting once again with client websites. I was responsible for building new sites, which we often chose WordPress for when there was needed functionality that I would implement via plugins, and I had developed an efficient workflow for our designers and I to be able to iterate very quickly when building client websites. This was also my first introduction to Rails and MVC as well, as we had a few clients with Rails applications that I had needed to make modifications to. I had a lot of fun when working on these Ruby projects that I decided that this was the direction that I wanted to take. Ruby was such a fun language and Rails was a pattern unlike anything I had seen before, and I loved it.
The team at Spry was amazing, though unfortunately the company closed and split into separate entities, and I was hyper-focused on getting more into the Ruby on Rails space as I could.
# Getting on the Rails
I had applied for a few Ruby on Rails positions locally, and I eventually got an offer from the Cultural Intelligence Center to train with their learning management platform’s development contractor Atomic Object, a leading development studio based in Grand Rapids. I spent a week training alongside the developer currently assigned to our project, and during that time I learned as much as I could about the data model as I could, as well as honed a couple of Rails specific understanding so that I could have as seamless a product handoff as possible.
Unfortunately, this was the very beginning of Covid, so while I was initially planning on being in Grand Rapids for a month training alongside the Atomic Object team, it was decided that everyone would be working from home for indefinite duration. I spent the remainder of the training duration in virtual space with my mentor, while honing my skills and practicing with other features in the roadmap in my free time.
Afterwards, the contract with Atomic had expired, and I began my journey of maintaining and adding new features to the Cultural Intelligence Center’s learning management platform, where I’ve been so far (2024). I’ve since worked primarily within the Ruby on Rails environment professionally for the last 4 years, with various other side projects either built using Rails or JS.
I’m excited to see how the journey will continue, and will continue to update this little blog thing as I learn new stuff! Computers Rule!