Joe McCaffrey

Software Engineer

View My GitHub Profile

Welcome!

About Me

Spirited about cutting-edge tech and strong coffee.

{
	"Location": "Massachusetts, USA.",
	"AlmaMater": "University of Massachusetts Amherst",
	"ClassOf": 2016,
	"Majors": [
		"Major1": "Computer Science",
		"Major2": "Mathematics"
	],
	"Hobbies": [
		"Hobby1": "Hiking",
		"Hobby2": "Guitar",
		"Hobby3": "Biking",
		"Hobby4": "Golf"
	],
	"Editor": "Vim"	
}

Also I listen to music almost all day. Check out my Spotify

Technology

I would describe myself as a generalist who has experience in embedded computing and web development.

Strengths and Experience:

I’m always researching about new technologies and practices.

I’m learning about:

Projects

Bayesian Models for Command and Control Applications

Effective C2 needs well-informed decisions, fast.

Typically threatening situations in C2 require consultation with an expert to interpret and make decisions with information. Bayesian models allow us to capture this subject-matter-expert interpretation of data in the form of software using a PPL (Probabilistic Programming Language). This allows inexperienced personnel to “be at the helm” and consult a Bayesian Model when a threat situation is occurring in a human-in-the-loop system.

Example: A police chief needs a consistent way to command their officers to write speeding tickets consistently. The Chief could spend hours training their officers of what scenario warrants a speeding ticket or be on call to make a decision about every ticket.

The police chief can capture their commands in a Bayesian decision that can make an expert decision using “reference” data about the situation. i.e. (Speed, Speed limit and # of prior tickets).

Similarly this can be applied to military C2: A commander can create a bayesian model. Example Model: when a aircraft is flying from X direction at Y speed deem this aircraft hostile. Additionally, when an aircraft is flying above 1000+ knots is likely a fighter aircraft.

Changing this reference data can provide a simulation capability about a scenario. We can also plot the output from the model over time as a C2 situation is occurring.

Bayesian models can:

Tweet Timeout

Python script which uses the Twitter REST API with tweepy to delete tweets that are older than 90 days old.

lrcnews.com

Simple text news link aggregator.

lrcnews Machine Learning

Supervised learning example used to out ad links in API calls for lrcnews.com.

text: D.C. court rules tracking phones without a warrant is unconstitutional
The text is Spam: neg

text: Why you should never sign a cell phone contract again
The text is Spam: pos

HomebrewNest

RaspberryPi with SenseHat shield logs temperature, humidity and pressure data to a PostgreSQL database and outputs to the LED matrix.

Imgur

Here is the pandas pressure data visualization from 10/19/17 to 11/2/17

Measured in hectopascals

Here is the same data from WeatherUnderground:

Note the significant drop in pressure around 10/30/17. A possible explanation for the data skew between the two graphs is the top graph is measuring indoors, the other outdoors.

ConStructUDP

A Message injection tool which converts a JSON file of C data types to C struct definition and sends it via UDP.

On the web, applications communicate over a network with stateless verbs like HTTP (POST, PUT, GET, DELETE) and a data payload and return a status code.

In the embedded space, the same is true but custom verbs can be defined between the two applications instead of HTTP. The struct fields would be commands typically in hexadecimal form.

This tool allows creation of a custom message to be sent to an application for debugging for testing.

Computer Stuff