string(5) "here2"

Recent Dev Work

BombBomb Dashboard

React.js
SCSS
Flexbox

A new dashboard for users to easily record and send video emails or track their customer statistics from, including integration with the BombBomb chrome livefire extension and the BombBomb API. I was the primary developer of a team of three who worked on this new interface for the site, and my focus was on the reactjs build and the prelimiary scss.

YourPoolHQ

Magento 2.0
jQuery UI
Flexbox
LESS

A community edition Magento 2 implementation for selling pool supplies to customers. The site includes multiple custom module builds developed by me, including a dynamicly generated bestselling landing category page and a custom theme. I was one of many developers who worked on this site, and my focus during this build was largely on frontend programming and theme-building.

The Gazette

Google Maps API
jQuery UI
Flexbox
SCSS
Bootstrap 3

A hybrid in-house news management and content delivery system, providing real time news at the same time as CMS features for content editors. The site includes multiple scripts such as crawlers, CDN and cache-busting content delivery, entire pages and content-types such as gallery lists, that I've written. I was one of many developers who worked on this site, but since I joined the team the pages and controllers I have worked on have seen an average two fold increase in traffic (newsletters, gallery lists, articles, etc).

Circsy

Laravel 5
Bootstrap 3
jQuery UI
SCSS

A subscription management system, meant to consolidate capabilities of several other systems and improve user experience. It features programming such as authentication and permission layers, language variable usage, and a fully responsive design built from scratch. I was the sole developer and designer for this project, and built it from the ground up for automated integration with multiple external third party vendor and API-based systems (Braintree, Newscycle Systems etc).

Out There Colorado

SCSS
Flexbox
Google Maps API
Solr

A site for outdoor enthusiests. Includes interactive map filtering, an API and app shell, and multiple data-management and SEO optimization techniques. I was one of 2 developers on this project, and I build out the interactive map (backend and front end) views and a good chunk of the schema as well. This is actually the third incarnation of this site I have built, the last of which saw a 2-3x increase in traffic from the year before.

Colorado Real Estate Journal

Wordpress 4.6
Bootstrap 3
jQuery UI

A site for indexing local businesses. Includes a custom php backend architecture and custom plugins. I was the sole developer for this project with the aid of 1 designer, completed on a 1 month deadline.

Diplomacy Global Strategy

Phpbb 3.0
Masonry
Photoshop CS3
TinyMCE

A modern risk-clone for educational purposes. Includes custom built mods, theme, and elements like a fully interactive image map drawn by me. I worked alone as the lead developer and designer for this project

Intergenerations

Wordpress 4.6
Bootstrap 3
jQuery UI

A site for multiple generations to experience group activities. I was one of two developers for this project.

Starry Night Competition

Bootstrap 4
Wordpress 4.6
jQuery UI

A site promoting a competitive event between painters. Includes a custom php backend architecture and custom design. I was the sole developer for this project, completed in one month.

Personal Pet Projects

Lasria

JQuery
Canvas

A top-down open world adventure style RPG game I've been working on for a few years, click here to try it out for yourself. The game is made on a custom game engine I built, and it will be cross-console, device, and browser playable, with a custom OST and art as well.

Grammar Tool

Javascript
PHP

I made a custom verb-database (for tenses) coupled with a frontend editor tool that will allow you to copy paste text content into a box. This tool will automatically identify things like passive voice, stronger verbs, and other grammar niceties to help you improve on your writing, similar to the Hemingway tool. The entire tool is custom built, and very much still a work in progress.

Traveler06792

Unity

A 3-D puzzle-solving game where the player can unlock portals to reach new worlds with new puzzles. I was one of four developers for this project, completed in a weekend for Global Game Jam 2018. Click here to play.

Twilight Platformer

Canvas

A 2-D platformer game where the player has 5 lives and a limited amount of time to reach the end goal while avoiding the spikes. This was a solo project, completed in another weekend for fun. Click here to play.

Wave Escape

Game.js
JQuery

This was a 2-D arcade style game made for Global Game Jam 2017, where I was on a team with a total of three developers. A color-based puzzle retro style maze game, you must react quickly to navigate the labyrinth and avoid being consumed by the roaming black hole, and survive until the timer runs out. Click here to play.

Raspberry Pi Smarthome

Raspbian
AWS Lambda
AWS SQS
AWS Alexa Skills

This pet project was a personal goal I set of getting my Echo Dot to connect to my LAN safely, where I could then connect to my raspberry pi and build API connections to Philips Hue, Vizio Smartcast TV API, and more. It was successful.

Dev Code Samples

PHP

Create a combination item off of multiple item abilities.


$loginator = new \Loginator();

if ($this->request->is_ajax()){

$json_response = new json_response();

$default_avatar_id = $this->request->variable('avatar_id', 0);

$item_name = request_var('item_name', '');

$craft_items = request_var('craft_ability_ary',array('' => 0));

$item_type = $this->request->variable('item_type', 0);

$item = new Item();

switch ($item_type){

case 'hair':

$response = $item->craft_hairstyle($item_name, $craft_items);

break;

case 'shirt':

$response = $item->craft_shirt($item_name, $craft_items);

break;

case 'hat':

default:

$response = $item->craft_hat($item_name, $craft_items);

break;

}

$json_response->send($response, true);

}else{

$loginator->network_hack('LOG_CRAFT_ITEM_NETWORK_HACK', $user);

return 'Are you trying to network hack us? We just logged this.';

}

SQL

From a pet battling and breeding game


SELECT p.pets_id, p.description, p.species, p.level_speed, p.max_hp, p.evolution, u.*, s.color

FROM pets p

LEFT JOIN users u

ON p.pets_id = u.pets_id

INNER JOIN shop s

ON s.item_id = u.pets_id

WHERE u.pets_id is not null

AND u.pets_user_id = ' . (int) $user_id . '

ORDER BY p.pets_id DESC;

JQuery

Building an object to store DOM elements for use in later functions


var locations = Array();

$('.location').each(function(i,e){

var obj = {},e = $(e), attrs = e[0].attributes;

for (var i in attrs) {

if (attrs[i].name && attrs[i].name.match(/^data-/)) {

obj[attrs[i].name] = attrs [i].value;

}

}

obj.nn = $(this).html();

obj.__instance = e;

locations.push(obj);

});

Javascript

Google Maps click function for centering and zooming on a point.


map = new google.maps.Map(document.getElementById('map'), mapOptions);

map.data.addListener('click', function(event) {

var index_val = event.feature.getProperty("NAME");

var html_content = state_data[index_val];

var infobox_pos = (event.feature.getProperty("CENTER")).split(":");

var myLatLng = {lat: parseInt(infobox_pos[0]), lng: parseInt(infobox_pos[1])};

infowindow.setContent('

' + html_content + '
');

infowindow.setPosition(myLatLng);

infowindow.setOptions({pixelOffset: new google.maps.Size(0,-30)});

infowindow.open(map);

});

Ajax

Grab GeoJSON data and return it


$.ajax({

url: 'filepath.php',

async: false,

dataType: 'json',

success: function (json) {

data_obj.data.addGeoJson(json);

json_ary.push(json);

}

});

C#

Moves a character in the direction of the button pressed and allows interaction with nearby objects.


void Update () {

body.AddForce(new Vector2(Input.GetAxis("Horizontal") * speed,Input.GetAxis("Vertical") * speed));

if (Input.GetKeyDown(KeyCode.Space) && actionAllowed) {

lastActionTime = Time.time;

actionAllowed = false;

Interact();

}

if (Time.time > lastActionTime + actionCooldown && !actionAllowed) {

actionAllowed = true;

playerAnimator.runtimeAnimatorController = null;

playerHeadSpriteRenderer.sprite = neutralFace;

playerSpriteRenderer.sprite = neutralBody;

}