Welcome to my Portfolio!
Hi, I'm Ralph! I consider myself a tech all-rounder. From systems administration to test automation, I've dabbled in every corner of tech. I excel in IT engineering, full-stack web development, and process automation. During my career, I've honed my skills in many areas and with many technologies, including containerized deployments with Docker, software development with Python, optimizing WordPress CMS instances, data ingestion and automation at scale, project management, and client/end-user communication.
I find myself particularly driven in scenarios where I can find creative solutions to complex problems. My penchant for automation developed in high school, when I first began writing scripts to optimize side projects and free up time for feature implementation. Since then, I have sought to automate and streamline processes in every project I work on in both my professional and personal lives. This experience has allowed me to easily keep up with moderation of communities consisting of 3,000+ users and endpoint management projects for 6,000+ end-user devices.
With every project I work on, I strive to keep optimization and security in mind. In several positions, I have implemented data governance policies to keep the privacy of end-user data secure at both the server and software level. Self-hosting my personal projects has allowed me to gain insight into application hardening, while working with clients in a freelance consultation setting granted me the opportunity to develop my ability to communicate the necessity of these security practices to individuals with limited technological literacy. I have studied and implemented best practices for securing many different systems, including SQL servers, WordPress installations, and Python applications.
My communication skills are an additional ability I pride myself on. Holding freelance and Information Technology positions throughout my career have allowed me to develop the ability to communicate complex issues and topics to the layperson who may not understand minutia, but requires a "big picture" understanding in order to make informed decisions. During my career, any technical writing and documentation I've performed has been lauded as informative, concise, and easy to follow. When managing teams of developers and techs, this comes in especially handy, as I find it very easy to communicate goals, expectations, and requirements of any given project.
Overall, I feel I am incredibly capable of tackling any challenge given to me in professional and personal contexts. I relish the opportunity to learn about new technologies and procedures in order to expand my personal knowledge and hone my skill set. Given time, and flexibility, there is no problem I am unable to surmount.
Work Experience
Intra Technology Support Engineer
I was given the opportunity to streamline ITSM workflows used by my team. I automated the generation of reports, tickets, and end-user communications, freeing up 10 hours per week which was then used to remediating issues with endpoint devices.
- Orchestrated data ingestion from ServiceNow, Jira, MySQL, SharePoint, Azure Active Directory, and Microsoft InTune to coordinate metadata for 3,000 end user devices.
- Automated generation of metadata and device reports, freeing 5 hours of time per week.
- Developed PowerShell scripts to send communications in bulk for vulnerability remediation projects that required contacting 10-200 end users.
- Managed team projects and workloads using ServiceNow and Jira.
Key skills: Excel, Power Queries, ServiceNow, Jira, project management, PowerShell, Microsoft Office 365 Suite (Word, Outlook), process automation, process documentation, interpersonal communication.
Community Manager
As a community manager for my friends' podcast, Podcast About List, I was given the opportunity to help grow their community forum on Discord from 200 users to over 3,000. Additionally, I managed the development and deployment of many community projects, from chatbots for the Discord server to self-hosted game servers and events.
- Volunteered time managing community forum and project for friends' podcast.
- Managed infrastructure for hosting of dedicated game servers and applications.
- Orchestrated deployments of NGINX, MariaDB, Redis, and PHP software.
- Recruited volunteer developers for creation and maintenance of community projects.
- Secured servers and applications using industry standard best practices.
Key skills: Ubuntu Linux Servers, Docker, NGINX, MariaDB, PostgreSQL, Redis, PHP, Python, project management, team management, interpersonal communication, process automation.
WordPress Consultant
During my contracts, I advised my clients on the best ways to decrease hosting costs, optimize site performance/security, and define their brands by creating custom WordPress themes. I additionally complicated concepts in simple terms in order to help my clients make informed decisions that would benefit their businesses' online presence.
- Customized WordPress using PHP, JavaScript, and CSS to accentuate client brands.
- Decreased load times up to 50% with WordPress optimizations and CloudFlare caching.
- Configured automated updates, security scans, and backups at CMS and host levels.
- Educated clients with limited digital literacy about web hosting and CMS solutions.
Key skills: WordPress CMS, CloudFlare, web optimization, HTML, CSS, JavaScript, interpersonal communication, end-user communication, service hardening.
Podcast Producer/Engineer
For every weekly episode, I pre-screened 200+ voicemails, wrote show notes, and filled the roles of live engineer and community manager as the podcast broadcasted on the popular streaming site Twitch. I automated the repetitive processes such as audio normalization for voicemail files, chat moderation, and show note management.
- Produced weekly episodes for the call-in advice podcast broadcast live on Twitch.tv.
- Used Python 3, ffmpeg, and Google Voice API to automate processing 200+ calls/week.
- Managed show notes and tracked played calls using Google Sheets.
- Scheduled guests for live appearances via Zoom and phone calls.
Key skills: Process automation, Python 3, Google Sheets, community management, interpersonal communication, audio engineering.
Student Developer
Working at the Engagement Lab allowed me to explore numerous new and cutting-edge technologies and paradigms including serverless infrastructure and containerized deployment of applications while also utilizing established software such as MongoDB, NodeJS, and Selenium WebDriver. The Engagement Lab operated like a startup, encouraging experimentation and exploration in a fast-paced, self-driven environment.
- Developed MEAN stack applications with per-project REST API architecture.
- Reduced time spent testing by 20% using Selenium WebDriver and Python automation.
- Leveraged serverless technologies to eliminate in-house hosting overhead.
- Created, managed, and deployed Docker images with Azure Container Registry.
Key skills: NodeJS, MongoDB, Express, AngularJS, serverless architecture, Docker, Azure Container Registry, test automation, Selenium WebDriver, MongoDB Atlas, CloudFlare.
Information Technology Intern
During college, I took a summer internship at the National Association of Home Builders, where I was tasked with manually transcribing 15,000 entries from their internal library to a SharePoint site. I requested access to Python and, within three days, had automated and completed the transcription process they anticipated would take two months. I spent the rest of my internship assisting with similar process automations.
- Automated ingestion of 15,000 records from internal database to SharePoint site.
- Wrote documentation for automation procedures to reference after the end of my internship.
Key skills: Python, process automation, SharePoint, documentation writing.
Junior Developer
During my senior year of high school, I worked as an intern at MajorMega, a local video game development startup. After I graduated, I was hired full-time for the summer before I went to college. This position was my first professional experience and sparked my interest in finding novel solutions for complex problems.
- Assisted with development of games in the Unity engine using C#.
- Engineered streaming setup for community retro game nights using Raspberry Pis and ffmpeg.
- Helped create social media posts promoting the company.
Key skills: Unity, C#, Python, networking, ffmpeg.
Projects
LinkFix
I created LinkFix in order to provide rich media embeds in Discord chats. Most popular sites do not provide video/image embeds; LinkFix responds to supported links with rich media embed links, such as FxTwitter.
- Rapidly prototyped application with TypeScript and PostgreSQL.
- Used GitHub Actions CI/CD pipelines to automate Docker builds and deployment.
- Currently present in 500 Discord communities, reaching 50,000 end users.
Technologies used: TypeScript, PostgreSQL, Docker, Docker Compose, Discord API, GitHub Actions.
rss2jext
What was initially workflow automation turned into its own project: Using Python, ffmpeg, and Jukebox Extended Reborn, I automated the ingestion of the latest episodes of Podcast About List into the Podcast About List community Minecraft server, so players could listen in-game using a custom music disc item.
- Used Docker and dotenv to abstract operational logic for easy configuration in production.
- Processed RSS feeds to extract the latest episode of a podcast for processing.
- Used ffmpeg and the Pterodactyl API to automate creation and updating of CDN assets.
Technologies used: Python, ffmpeg, Docker, RSS, black, ruff, mypy.
QuoteBot
I created QuoteBot as a solution for Discord's limit of 50 pinned messages per channel. My high school friend group has a Discord server with one channel consisting of 8+ years of chat history. QuoteBot created rich embeds featuring "quoted" messages in a separate channel, providing an easy "best of" for the server.
- Self-taught Discord API usage in order to achieve project goals.
- Implemented SQL functionality in a project for the first time using SQLite.
- When made public, QuoteBot was added to over 700 Discord servers before I shut it down in 2020.
Technologies used: Python, SQLite, Discord API.
ViralTweetFilter
In 2020, Twitter's algorithm began sprinkling "popular" tweets into one's home timeline with no way to disable this functionality. As a remediation technique, I created this browser addon which would hide Tweets from the home timeline that had more than 10,000 likes.
- Self-taught methods for creating and packaging browser extensions with Yarn.
- Automated publication pipeline to FireFox Add-ons registry.
- Developed with multi-browser support in mind, working with both Mozilla and Chrome manifests.
Technologies used: Yarn, JavaScript, HTML, CSS, Extension API, Travis CI.
MoreMeat
MoreMeat was created for the Podcast About List Minecraft server to extend gameplay interaction loops, providing food item drops from animals which do not have such drops in the base game. Meat drops from other players were found to be particularly engaging for players.
- Self-taught process for creating a Bukkit/Spigot server plugin.
- Published plugin on the Spigot plugin registry for other servers to use.
Technologies used: Java, Gradle, Bukkit API, Travis CI.