Resume | James Michael Ballow |
james-michael-ballow | |
GitHub | jmb11x |
Udemy | James Michael Ballow |
Jamesmichaelballow@gmail.com |
Hey, I'm James. Looks like you found my website! I really wanted to have a place to showcase some of my web development skills using the most rudimentary methods (CSS, JS and HTML) but at the same time I wanted a place to show all of my other workt too. Then BOOM, this website was born!
On this page you will find some information about me like my education, my proficiencies and some of my side tasks. While working hard to advance my development skills upon my changing career from engineering to computer science, I decided to keep and showcase some of my work to show my determinism to learn and continually improve.
During my Master's Program, I worked tirelessly on hand gesture detection to find methods that would assist in detecting hands in monochromatic thermal images (very few features). Detecting hands is actually a pretty tricky problem. It can be a computationally expensive task unless offset by a multitude of assumptions or a limitation of hand range/environment. In my work, I offer two algorithms that I prove are quicker than other state-of-the-art methods to find the center of palm of a hand, and to find a line that separates the forearm from the hand (wrist points) and methods that discover the area of the hand with far fewer assumptions.
I rewrote my work, tailoring it for the International Conference of Image Analysis and Processing, and submitted it for approval. My work was accepted and included as a part of the conference and in a collection of other works from the conference (see reference below).
This is a published course that I created a year after getting my Master's Degree in Computer
Science. My motivation behind making the course
came with my experience in the programming sphere. I was very passionate to change my career
path allow myself to solve problems through automation, but I found it to be very difficult
because of the lack of foundation. As I learned to program, and went
through my Master's program, I realized that there is a serious gap between knowing nothing
about computer science and programming
you first Hello World!
. I realized that traditional education fails to acknowledge or
assist with this; and there is certainly
no assistance for those changing their careers - it seemed hopeless.
All of these projects are ongoing, and they are only getting better over time. I'm always looking to improve my works given any spare time outside of my normal work life. The title of each of the below projects links to a visual of the project, be it a GitHub Page or a web page. For some of the projects, look out for links to the source code.
Working at Abacode Cybersecurity & Compliance, I learned a lot about cybersecurity and about how to build an application from the ground upwards. I am proud to say that I was (and still am) a proud founder of Abacode SCOUT© by defining the problem, helping management and executives understand the steps to develop it, designing the cloud architecture for it, and actually developing it.
In this project, I worked on back-end using Python, API Gateway, AWS Lambda, AWS Glue, Athena, RDS, SSM, CloudFront, and CloudFormation (using Python CDK); and I worked on front-end using React, CSS, HTML, and Typescript; and to get the project up and running I worked in so many other areas like UI/UX design for the initial release, assisting marketing to get a commercial created, and troubleshooting complex problems in deployment.
My Master's Degree thesis work was in hand gesture detection in monochromatic thermal images. Clarkson University is working on being able to identify fingertips of hands so that traces from a hand can be used to communicate using Artificial Intelligence.
My work on this project was to identify hand gestures and locate the fingertips of the hand. After starting the project, I identified a hole in the field of computer vision: finding a hand area in a monochromatic thermal image. For example, how can you know if the object in the image is not just a cup of hot coffee, or in what direction the hand is oriented, or even if the object is indeed a hand but is distorted due to thermal pollution?
So worked to discover a way to identify the hands in the image, and find the center of palm and the wrist points. I defended my thesis to a board and succeeded, finishing my Master's Degree.
This was a project in which I participated as the lead machine learnist. I planned the data collection methods and drew schematics and instructions for my teammates. After they collected data of cardboard boxes (the obstacles to be avoided) and collected data in two different rooms, I carefully labeled and separated images to prepare for machine learning (a 6-month labor of love).
I was able to train a machine learning model to identify regions of the image containing a cardboard box regardless
of camera panning or vantage point to an accuracy of approximately 98% using Tensorflow
, Keras
and OpenCV
packages. Using this my team was able to write an algorithm to have the drone fly from point A to
point B, avoiding the box along the travel path.
This is a Google Chrome extension that is used to allow someone to quickly jot down notes while they are in their Google Chrome browser. The notes are compiled in a summary page, and you can modify them in a typical TODO-List format. I made this because I worked for two startups and I was always looking to quickly write something down, but had no clue where to put it. I wanted a TODO list somewhere, but I didn't want it stored in any database or in any notebook.
This was my first Google Chrome extension project. I took a course called © Chrome Extensions Academy 2023 to learn about how Chrome extensions work and how to program one. After completing the 3 hour course, I immediately created the extension and went through the entire process of getting it into the Google Chrome store.
This is a tool that a computer vision researcher can use to simply label their images, one by one, without the administrative task of clicking on each image, saving the new name, and closing the image. This reduces the time of labeling images by at least 25%, and it also segregates the labeled images from those that were elected to not be labeled (skips images).
I used a tool of my own making to label my images for my Master's Thesis work. I had amazing code that really helped to make labeling faster and better. Unfortunately I have misplaced that code, so I am now redeveloping it and putting it into GitHub for others to use. I intend to add a region selection that will allow for selecting and labeling sub-regions of an image, and also a randomized region isolator that will isolate randomized regions of an image and store them as separate images, so as to obtain a library/database of sub-images for machine learning training.
This is your typical Simon Says game. I originally created this website as a my first JavaScript project ever. It was originally created with simple buttons and very annoying sound bites. Recently, however, I have re-imagined it and created it again using some royalty-free images and sounds bites online to yield a Harry Potter themed version of Simon Says that I call "Ballow Says".
This work does have some weaknesses, but it is still quite a fun little game written entirely in HTML/CSS/JS. I keep finding little programming mistakes and I keep editing the code to make it a better experience for users.
Fun, interactive project that I put together when teaching myself Streamlit. It is a tool that can give you over 20+ drink ideas (including how to make them and their ingredients, with a picture), and a tool that can help you see the potential cost of gambling in Vegas.
Making this small application was my first introduction to how rendering works. I learned a lot about object placement, input fields, rendering, and use of caching. The application is not perfect, but I do intend to make it better and better over time.
Note: If you click on the link, and the application is not running, just hit the button on screen to run the virtual machines at Streamlit to start the application. They host it for free, so they only keep it running when it's desired.
This is a tool that uses Airtable (storage), Microsoft Word (reporting), and python (logic) to quickly generate (and regenerate) reports for customers. The reports generated for Abacode were for penetration testing, but the report content is irrelevant. To make this code general so that it can be used for any purpose, I have redacted the portions that were relevant to Abacode so that it is generic code owned only by me.
While working at Abacode Cybersecurity & Compliance, I wanted to contribute to my company to help other groups succeed. As the only developer at Abacode (at the time) I wanted to show the other teams that I could help them to make their jobs simpler (and admittedly I just really like programming). I presented this work to the other team, and it reduced the amount of time to create reports by 95% with an obvious 100% increased fidelity.
This is a python package that can be used by individuals or companies in order to communicate with Airtable in a very simply way. It is a package that I developed to make some of my starter projects have access to a cheap (mostly free) database without having to do too much work to setup the database.
I developed this package to accommodate three different projects I worked on for friends and family. The package itself is always getting better, and I hope to put it in pypi for others to use as well.
Sample project using plotly tools to create an interactive network used to communicate a connection of a company to many other entities.
I developed this diagramming schema when I worked at Axiom Cloud Inc to help communicate data traces from customers to Axiom Cloud, where the coloring would instruct if a data trace was disconnected. This is of my own design and invention.
Sample project using plotly tools to show data in an interactive manner. I put this example together to show my skill for learning a tool quickly, and being able to understand how to visually communicate data. I can do this, and so much more with plotly!
Data source: Shivam Agrawal. (May 24, 2017). Diamonds, Version 1.0. Retrieved March, 2023 from 'shivam2503' at kaggle.com
This is a website for a fake product, namely a web app that is used for dogs to meet other dogs (meant to copy Tinder). This project is actually where I learned about carousels, and I put this into practice on this website you are on now (click here to see).
I took a course online to learn about web development. This was the first website tutorial that I followed to learn about how to work with HTML with CSS. This does not exhibit what skills I had on my own, or any originality, but it does demonstrate the items in CSS that I learned and what I am capable of doing.