Skip to content

Jesse's Software Development Portfolio

Drotto

Technologies: NodeJS, TypeScript, BabelJS, MochaJS, SinonJS
Specialization: Distributed Programming, OO Design
NodeJS is single threaded. While I/O tasks can be parallelized over the OS with it’s asynchronous architecture, CPU bound workloads block the event loop, leading to potentially disastrous performance. To avoid this, NodeJS offers libraries to parallelize CPU bound workloads over CPU cores via new processes. Drotto is a lightweight abstraction (process pool) for managing creation, delegation, and deletion of parallelized NodeJS worker processes. For more info about the NodeJS asynchronous architecture check out my blog. View Project

dTest

Technologies: NodeJS
Specialization: Data Structures, Algorithms
dTest is a data structure and algorithm testing framework written in NodeJS. Data structures and algorithms are a core component to computer science and understanding them is essential both to a professional software engineer as well as any software engineering candidate. Technical interviews tend to focus heavily on data structure and algorithms, and while there are plenty of resources for coding challenges, there are few that test data structure or algorithm implementations. dTest is designed as both an educational tool as well as an interview prep resource. View Project

Unified.

Technologies: NodeJS, ReactJS, AWS DynamoDB, AWS S3, AWS Lambda, AWS API Gateway, AWS Cloudfront
Specialization: AWS Architecture, Web Development, DevOps
Unified is a serverless ReactJS web app hosted in AWS for sharing corporate lobby spend data. With an ever growing choice of who to by goods from, Unified is meant to help consumers determine if their spending habits are aligning with their personal beliefs. By providing corporate lobby spend data, such as amount spent on lobbying, bills lobbied, political contributions, brands owned, etc., Unified attempts to empower consumers to make ethical decisions while shopping. While the web app is a bit rough (still a WIP), it is functional, with a React Native app coming soon. Architectural Overview

QueryPro Query Monitoring

Technologies: Docker, InfluxDB, Ubuntu, AngularJS
Specialization: DevOps
QueryPro is a database agnostic query analyzer. Built using Docker containers, it is easy to install and incorporate into existing code bases. Using one of QueryPro's libraries, code can communicate with the QueryPro backend via UDP limiting any measurable overhead. QueryPro analyzes the queries and presents a variety of different reports and graphs. Read More

Spider PHP Asynchronous MySQL Library

Technologies: PHP, MySQL, Memcached
Specialization: Distributed Programming, OO Design
Spider is an asynchronous PHP MySQL library allowing for concurrent MySQL queries. By having an asynchronous MySQL library, we are able to run multiple queries in parallel, processing the data either as each query is returned or once all queries have completed. Read More

Honeybee Server Cluster Provisioning

Technologies: Python
Specialization: DevOps
Honeybee offers quick, simple, cloud cluster provisioning. I wrote Honeybee to aid in rapid deployment of applications to cloud server clusters. Honeybee has a minimal learning curve allowing developers to focus on development. Honeybee is built around the Python Fabric library to organize the shell provisioning of various servers in a cluster. By setting a standard for where provision commands are stored, and placing installation instructions in centralized locations, Honeybee allows for reusability of installation instructions across various web application servers. This facilitates rapid, provider agnostic, server provisioning, easy infrastructure expansion, and seamless server migrations. Read More

RabbitMQ Work Queue

Technologies: RabbitMQ, PHP
Specialization: Distributed Programming
Message queues, or job queues, allow web applications to control when and where tasks are performed. By distributing CPU or I/O intensive jobs over a server cluster, web applications can significantly improve performance, while maintaining a highly scalable infrastructure. It is essential to any message queue to have a reliable, flexible message server to handle message control, routing, etc. RabbitMQ is a robust message broker offering numerous configurations and options, and is proven to work well in high workload environments. For this project I will set up a simple PHP RabbitMQ work queue to demonstrate how a backend job queue could be architected and scaled. Read More

Vagrant Puppet VM Clusters

Technologies: Vagrant, Puppet, Ubuntu, Centos, LAMP, MySQL
Specialization: DevOps
With the growth of cloud computing and virtualization has come the need to understand and create complex server architectures. Even as a developer, it is often important to understand how to design and configure various different server setups within an application stack. Most of today's web applications are spread amongst numerous servers and the ability to set up development environments is essential to the application build and maintenance. The purpose of this project was to allow developers a way to quickly spin up different application stacks for development and testing. Read More