James Montgomery Howerton
Charlottesville, VA 22903 US
+1 (804) 229-1108
jimmyhwrtn82@gmail.com
M.S. in Data Science • 2019-2020
The Data Science Master's program at the UVA SDS focuses on teaching students the skills to become commercially viable yet highly ethical data scientists and engineers. This includes highly focused courses covering topics in Machine Learning, Data Mining, and Bayesian Inferential Methods. My goal after finishing this degree is to have a greater understanding of how and when to ethically implement data science methods during software development.
B.S. in Computer Engineering • 2016-2019
The Computer Engineering program at the UVA SEAS focuses on delivering the fundamentals of both a Computer Science and an Electrical Engineering degree. I chose to focus my elective credits on taking more Computer Science courses in topics such as Algorithms, Database Design, and Network Security to flesh out my understanding of the field as a whole. Near the end of my undergraduate education, I took Statistical Learning and Graph Theory, a course that fueled my curiosity towards Data Science, leading to my eventual pursuit of a Master's in Data Science.
Data Engineer • May 2020 - Present
My current position as a data engineer at TwinThread is exposing me to the process of software engineering on a scale that I have never experienced before. I am lucky to work with an extraordinary group of individuals that put their trust in me to make architectural software decisions and support me in learning new technologies and in solving new problems. My work currently focuses primarily around supporting the backend architecture of our machine learning pipeline.
Full Stack Intern • December 2018 - July 2019
This internship taught me what it is like to work on a tight-knit team of developers with an extensive codebase. Throughout the time I worked there, I learned how continuous integration and deployment are used in a real-world business setting on a team of both local and remote individuals. Considering the length of the internship, I reached a point where my expertise on specific topics surpassed those of my superiors. As a result, I wrote extensive documentation on how to use my code following my absence. Through the interactions with my superiors and peers, I learned that it is possible to work very hard on a product and still have a great time doing it when you have a team that works well together. While I learned a variety of technical skills, it is this sense of optimism towards my future job that is far more valuable to me than any specific technical skill that I learned along the way.
Programming Languages: C#, SQL, Python, Typescript
Technologies: Azure Resource Manager, React Framework, Oracle SQL Developer, Azure DevOps, YAML
IT Intern • June 2018 - August 2018
This internship gave me a sense of what it is like to work at a large company with a team that handles one specific project. My team was developing a web application and needed help in organizing data for our analytical tool, which is where my job came in. As a result, I was not so much working with my team as I was asking them what they needed from the tool and then using that information to refine the end product. The culture at Genworth was very different from TwinThread due to the sheer size. TwinThread was more akin to 'extreme programming' with every member knowing what they were doing and reporting their progress to each other personally on a more frequent basis while Genworth operated closer to traditional 'agile development' with meetings every 2 weeks to go over all of the progress that each member made. Learning how to operate efficiently in this more rigid environment was something that was difficult for me, but is what I consider my most important takeaway from this experience.
Programming Languages: PowerShell, SQL
Technologies: SpotFire, Postman, Oracle SQL Developer
I have experience with a variety of programming languages and creative software. My goal going forward is to improve my skills as a statistical programmer through applied machine learning. My secondary goal is to learn more game design software packages.
As a part of the 2019-2020 Masters of Science in Data Science (MSDS) program at the University of Virginia (UVA) School of Data Science (SDS), all students complete a capstone project. Our project was in collaboration with the UVA Link Lab and a local non-profit, Smart Cville. Our overarching goal was to implement an air quality sensor network throughout Charlottesville that would provide citizens with access to open data about their air.
Technologies: LoRaWAN, Arduino, InfluxDB, Grafana
Programming: C, Python, R
Year: 2020
Data ProductAs a means to aid those who will be tasked with investigating the wildfires of tomorrow, we propose a new methodology for analyzing wildfire data and predicting wildfire cause. Previous attempts to predict wildfires’ causes have largely ignored information from recent fires in the area. Our novel approach applies various graphneural-network (GNN) techniques involving information about each individual fire, in addition to fires close to it spatially and temporally, to predict the cause of any given wildfire. We utilize 24 years of geo-referenced wildfire data augmented with global population center data and NOAA GSOD weather data.
Technologies: Graph Neural Networks, Deep Neural Networks
Programming: Python, Tensorflow, Keras, Spektral
Year: 2020
ML ModelThis tool was built as my final project for 'UVA ARCH5424 Direct Cinema Media Fabrics' using P5JS and is currently hosted on glitch.com. A few years ago I made a music visualizer in Cycling 74's Max/MSP but I wanted to build one from scratch this time in javascript. I have also been wanting to learn more about WebGL for a long time and this was my first foray into it. Try it out at the provided link and let me know what you think!
Technologies: WebGL, P5.JS
Programming: javascript, HTML
Year: 2020
Web AppUtilizing a novel webscraped dataset of over 160,000 images of ball pythons resized to 200x200px, we developed a convolutional neural network (CNN) model in Fast.ai to assign multiple 'morph' labels to input images. Including auxiliary information about each python did not boost predictive performance, neither did appending a graph neural network (GNN) onto the CNN. Ultimately, a Macro AUC of 0.9315 was achieved on our test set.
Technologies:Convolutional Neural Networks, Deep Neural Networks, ResNet 50, Graph Neural Networks
Programming: Python, Tensorflow, Keras, Spektral, Pytorch, Fast.ai
Year: 2020
ML ModelMy CpE capstone involved making a heat-lamp controller from scratch. The idea came from my pet reptiles Lyla and Boy, who live in enclosures with very specific temperature gradients. I decided that one way to make my capstone project fun would be to make a device that could automatically regulate the temperature in their environment by using Pulse-Width-Modulation (PWM) on a heat lamp. This became a difficult project since heat lamps require high amounts of current to produce heat. I liked the project so much that I made a logo for it as if it were actually on the market which is what you see as the icon. More detail can be found on my GitHub page linked below.
Technologies: Multisim, Ultiboard
Programming: C, TI-RTOS
Year: 2018
Hardware ProductIn the third year of my Computer Engineering degree, I took a Computer Architecture course. The goal of the course was to understand the fundamentals of a processor. The instructor chose RISC-V as our ISA as it is open source and coming into use by more manufacturers. We used VHDL, a hardware description language to design all of the steps of an instruction pipeline. This includes the Fetch, Decode, Execute, Memory, and Write-Back stages. We also made a few other intermediate hardware pieces that facilitate more efficient processing such as MUXes, registers, incrementors, counters, and register files.
Technologies: Precision Synthesis, HDL Designer,
Programming: VHDL
Year: 2019
Virtual Hardware DesignFor my introduction to Engineering course in the first year of my undergraduate degree, each team was provided the Sparkfun Redbot and given free reign to make what we want with it. Our team decided that we would mount light sensors on the front left and front right of the bot and use them to move the bot to a dark area, hence the name. The bot worked by placing it down and pressing a button on its hull. It then rotated and averaged readings in cardinal directions in order to determine which direction to go to hide. On its path, it would use the sensors to turn left or right based on which direction was darker.
Programming: C for Arduino
Year: 2016
Embedded ProgrammingFor my Advanced Software Development course, our final project was to design a website as a group. We chose to create a sort of 'Tinder for studying', a tool to help people find study buddies around campus. Our class used Django to make the web development process easier since many students had used Python in their previous courses. We hosted our site on Heroku and performed testing using Travis CI. One of my teammates, inspired by Tinder, designed the logo you see as the icon and we stuck with it, even using it as the favicon for the site.
Technologies: Django, Heroku, Travis
Programming: Python, HTML, CSS
Year: 2019
WebsiteTo begin this project, I took into account my favorite games from the past and what made them feel special. I first decided that an isometric action game would be the best first step as many of my favorite games are 3d action RPGs and I might be able to implement my favorite parts of those games on a smaller scale from This perspective. I am actively working on this project in my free time, but I am working on it more as a fun project than anything I would potentially sell.
Programming: C#
Technologies: Unity
Year: 2019
Game DesignThis was the final game that I made for the game design course that I took in my senior year of highschool. The game utilizes procedurally-generated mazes that get larger as the player beats each level. The idea for the name 'Pyramid' came from the idea that the player starts at the top of a pyramid and is moving down inside of it, hence the square map getting larger on each level. I implemented an algorithm for making sure that a path from the spawn to the exit was always created and also implemented procedurally-generated paths for the ghost enemies. When ghosts see the player they will follow them until the player looks at them. I implemented three power-ups: one turns the player vision red and kills ghosts caught in their sight, one provides vision in all directions, and one shows the location of the exit on the map. I apologize for the quality of the gif above, I plan to replace it with gameplay footage soon. That being said, you can download the game from my GitHub and try it out yourself if you would like.
Programming: C#
Technologies: Unity
Year: 2016
Game DesignThis simple endless-runner was created with a friend of mine for a Ludum-Dare game jam. The game is simple but fun and we both had a blast making it. Feel free to download it from my GitHub and try it out yourself.
Programming: C#
Technologies: Unity
Year: 2016
Game DesignThis was an intermediate project for the game design class I took as a senior in highschool. My idea was to implement some sort of strategic element that would involve the player predicting what would happen and then remove their ability to interact. This idea was implemented via the player drawing a path for one pug to reach the other pug while avoiding trappers as well as dangerous animals. During the daytime, the trappers move outwards from their initial position while the dangerous animals shrink down; during the nighttime the opposite happens. At the start of the game, the trappers and animals are placed at random and it is up to the player to chart a path for their pug that will avoid these dangerous forces, or they will lose (and their pug will never reach its pug lover).
Programming: C#
Technologies: Unity
Year: 2016
Game DesignI created the cover art for my music back in highschool using a mix of Illustrator and Photoshop. These pieces were made from scratch but I also enjoyed taking very old art from online libraries that were free to use and modifying them to make a new style. More of my art can be found on my weebly page.
Technologies: Illustrator, Photoshop
Year: 2017
Graphic DesignI was lucky enough to be able to take an art class each year in highschool. Students that do this are given an art show at a downtown gallery in Richmond and my teacher gave me the responsibility of creating the designs for all of the promotional material. Each student in the class created their own icon and gave it to me, and I used Illustrator to vectorize their work into something that could be printed in high quality. We made lookbooks, pamphlets, flyers, posters, and temporary tattoos out of the icons. More of my art can be found on my weebly page.
Technologies: Illustrator
Year: 2016
Graphic DesignKinetic Sound is a club at UVA that performs pieces from various backgrounds with classical instruments. The year that I was a part of the club, they wanted to include other artists as well. I became one of their graphic designers and created visual pieces that corresponded to two of their sonic pieces. Later, I created a sort of promotional handout for their show "Boundless". More of my art can be found on my weebly page.
Technologies: Photoshop, Illustrator
Year: 2016-2017
Graphic DesignIn highschool I was the graphic designer for my school's robotics team, the "Mech Tech Dragons". This involved creating designs for posters, brochures, handouts, flags, pins, buttons, banners, and even redoing their branding standards altogether. This was an extremely fun experience and was one of my first experiences with graphic design. More of my art can be found on my weebly page.
Technologies: Illustrator, Photoshop, InDesign
Year: 2015-2016
Graphic DesignAll inquiries about my past, present, or future work are welcome! Thank you for viewing my site. -JMH