Skip to content

Jesses 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

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 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 data, such as money spent on lobbying, bills lobbies, political contributions, brands owned, etc., Unified attempts to empower users to make ethical decisions while shopping. While the web app is a bit rough (still a WIP), it is functional. Architectural Overview

Stasht

Technologies: NodeJS, TypeScript, BabelJS, MochaJS
Specialization: Data Structures, Algorithms
Stasht is a NodeJS npm module for data structures and algorithms. The motivation was for educational purposes, to help refresh on data structures and algorithms; however, someday it may be refactored for production use cases. NodeJS does not natively provide standard data structures (lists, queues, trees, etc.), so having such tools could be useful. While the library is currently written in TypeScript, an alternative would be to write the data structures in C++ and include into NodeJS via addons for added performance. View Project

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