Brandon Rodriguez
Full Stack Software Engineer
As of late 2022, I have roughly 8 years of Full-Stack Web Development experience, with the first three in Php/Laravel, and then about five in Python/Django.
I also have various levels of production experience with desktop GUI's (both C# and Python), Bash scripts (very proficient), server setup & maintenance (aka production hosting, recently including AWS), as well as both MySQL and PostgreSQL.
At this point I'm by far the most comfortable and fluent with Python.
Experience & Specialties
Job Experience
Bert R. Hybels Inc.
Bert R. Hybels Inc. is a Kalamazoo MI based bedding plant distributor.
Hybels services several dozen Kalamazoo area plant growers, and thousands of independent garden centers
throughout half of the United States. Every spring season, Hybels ships over 1000 loads, consisting of
approximately 28000 carts of product.
Job Description
Part of a small team responsible for development and maintenance of various systems at Hybels Inc. Tasks include full range of Technology Development + IT Support, but generally revolve around expanding full-stack software for product ordering and accounting use.
Highlights
-
Refactored and upgraded significant chunks of the company's accounting software, to have more functionality and be more reliable both long term and on a day-to-day basis.
-
Includes a significant focus on UnitTesting, taking test coverage from sub-50% to greater than 90%.
-
-
Played a significant role in redesigning and implementing large-scale database schema changes, so that the company could move forward with long-term operations goals, and would not be blocked by software limitations.
-
Built a full-sized physical server rack to host internal company servers and networking hardware.
-
As part of this, also rewired large chunks of the office networking infrastructure.
-
Western Michigan University, CAE Center
The CAE Center is a department within Western Michigan University's Engineering Campus which effectively oversees a majority of various systems, servers, and software within said campus.
Job Description
Leader of a small team responsible for creation and maintenance of systems at Western Michigan University's College of Engineering & Applied Sciences (within the CAE Center). Includes database design and implementation, full stack web development, GUI desktop solutions, training and supervision of other student employees, expansion of documentation of all maintained projects, and heavy focus to make maintained systems more uniform/maintainable long term.
Highlights
-
Refactored and reworked multiple major projects to Python/Django, with future-maintainability in mind.
-
Previously, projects were in a variety of scattered languages, including but not limited to Python, Php, C#, Objective-C, Bash, Powershell, and more.
-
Even within a single language, projects would be written in multiple, disparate major versions.
-
The large spread of implemented languages made it very difficult for new hires to get up to speed. Fixing this greatly increased understanding and productivity when hiring new employees.
-
-
Designed and implemented multiple production-ready databases from the ground up.
-
Includes ultimately coming up with a database structure that allowed all the CAE projects to intelligently communicate and share data. Originally each project was fully isolated.
-
-
Managed a team that built and maintained multiple projects for the University. Ranging from scheduling software for advising, to student print-tracking software, to tutor-time recording software. And more.
Projects & Publications
Publications
I have now co-published several Python libraries, such as:
-
Django-Dump-Die (Django DD) - A debugging tool, meant to provide equivalent functionality as provided with Laravel's dd and dump commands.
-
Django-Expanded-Test-Cases (Django ETC) - An expansion of the default UnitTesting framework provided by Python & Django. This package is meant to make test creation faster, and debugging easier.
-
Currently WIP, but major functionality is present for Integration test cases.
-
-
Py-dbcn (Python Database Connector) - An attempt at creating a database-language-agnostic interface, for doing queries and data migrations through the Python language.
-
Currently WIP. At the moment, only supports MySQL and PostgreSQL.
-
Production Projects
I have been part of several production projects for different companies, including but not limited to:
-
Company-Wide Order Tracking & Accounting Software - Django websites for Hybels product ordering & tracking, as well as the entirety of the company's day-to-day accounting needs. The entire company effectively revolved around use of said software. A majority of my focus was on the accounting-side.
-
Graduate Applications Processing Software - A Django website to receive applications from incoming prospective graduate students (Phd or Masters seeking). Committees comprised of various faculty on the Engineering Campus would then use this software to evaluate, manage, and ultimately accept or reject these prospective graduate student applications.
-
Employee Shift Tracking & Scheduling Software - For both Hybels and CAE Center, I created and maintained website pages to streamline recording and tracking of employee shifts. For CAE Center, this also involved building a full JavaScript-based scheduler from the ground up.
-
Advising Appointment Management Software - A Laravel website (and later Django) that allowed students to make appointments with the Engineering Advising Office. Advising then used this software to update their schedules, communicate with the students, reschedule appointments, and more.
-
Student Print Count Tracking Software - A two-part project that was both server-side and desktop GUI. Students would interact with the desktop GUI to securely communicate with a Python-based server API. This API then would track & adjust print counts per-student, and relay print requests from the local machine to the respective printer via CUPS.
Other Notable Experience
PyPi & Python Package Publishing - See publications, above.
-
APIs & Websockets - In order to implement some projects, I've had to create and maintain various verious of APIs and websockets, in order to achieve dynamic, asyncronous client-server communication.
-
React - Directly related to above point. On occassion, I've had to implement React front-end interfaces in order to provide a dynamic, real-time user interface.
-
LDAP - WMU required interfacing with multiple separate LDAP servers, in order to properly check user credentials and get up-to-date information pertaining to the college. This also included having to creating my own interface and Authentication Backend, in order to account for all the required LDAP logic.
Future Goals
Future Goals
Artificial Intelligence & Machine Learning
I desire to gain more experience with machine learning, artificial intelligence, and dynamic application/exploration of datasets.
However, the only experience I have with this so far is from college classes, particularly CS 5820 - Artificial Intelligence and CS 5300 - Artificial Neural Systems.
Between multiple jobs plus my Master's degree, I've just not physically had time for many personal projects, much less ones in this topic. But it's certainly on my todo list.
Unreal Engine
While I currently have minimal experience with it, I've started looking into the Unreal Engine. It looks like it has a lot of future-potential for many different applications.
If nothing else, this is an unexpected interest that I plan to examine further in my free time. I would like to learn more about it, both from developer and end-user standpoints.