Troy at a Glance

Programmer
Teaching computers to work since 2008

Full Stack
Willing to jump into any (and any part) of a code base

Polyglot
Enjoys and actively learns new programming languages

Quality Oriented
Vastly prefers coding patterns that promote testability

Automation Fanatic
Believes a robust system is one that runs itself

Current Employer
Salesforce

Location
Greater Denver Area, Colorado, United States, Earth

A Happy Troy
Salesforce
2015-Present
Fulltime - Lead Member of Technical Staff
I joined Salesforce right out of college, and first joined the team that owned the creation of Orgs within Salesforce. This being one of the oldest and fundamental pieces of Salesforce's function, I got to learn first hand how to both maintain a legacy system as well as to expand it with new features and capabilities. I helped implement Scratch Orgs and their creation when SFDX was in development. I then transitioned to a new org that aimed to integrate Salesforce data with other Salesforce services (Salesforce always acquiring new companies and tech stack) and helped build the product that ended up as Customer 360 Data Manager, showcased at 2019 Dreamforce. I'm now working within the Trailhead Org, Salesforce's online learning platform for all things Salesforce, and working to integrate it more closely with the products it helps teach.

Salesforce
Summer 2014
Internship
During my internship at Salesforce, I worked with another intern to provide two new tools - a GUI powered program for building a web page, and an automated tool for integrating Salesforce's internal ticketing system with Trello. The internship went very well (both projects being a success) and I got an offer to return as a full time employee the next year.

Recondo Technology
Fall 2013 - Spring 2014
Internship
During the 2013-2014 school year, I worked as an intern for Recondo Technology (who very conveniently had an office right off of campus). Recondo provided hospitals and health care facilities an automated system for handling health insurance for patients, and during my time there I worked on the rule engine for defining what information was needed for certain transactions.

Return Path
Summer 2013
Internship
This internship was my introduction to a serious Java shop, as well as the (at the time) new Kafka technology. Return Path provided email services for marketers and email providers to detect and block spam, and were exploring using Kafka as a more efficient data pipeline. It was a great experience, and I learned a lot about mature Java code repository and programing practices while there.

LGS Innovations
Summer 2012
Internship
I worked with another intern to program off the shelf technology - Arduinos - to create a mesh network of sensor motes that would be able to detect when specific events happen in the physical world around them. We were able to build a proof-of-concept system where slapping a table with various motes on it would accurately be able to detect which mote was the closest to the event, as well as to ignore more subtle events like table nudging.

Colorado School of Mines
2010-2015
Bachelors (Math) and Masters (CS)
I originally went to CSM to get a degree in Applied Mathematics, but took advantage of some programming courses along the way and found I really enjoyed it. After graduating with my BS in Math, I took advantage of many of the CS courses I took as an undergraduate to also get a Masters in Computer Science a year later.
Languages
Java
Python
Go
Crystal
JS/CSS/HTML
C++
Ruby
C
C#

Technology
Linux
Spring
PostgreSQL
MacOS
Ruby on Rails
MySQL

Tools
Intellij
Sublime
Vim
Eclipse
Visual Studio
Heroku

I've been enjoying learning and programming Crystal Lang and have been making some toy projects in it to explore other technologies as well. Below is a sampling of some of the crystal libraries I've make public:


cr-sendgrid

A client library for interacting with Sendgrid's Send Mail API .

cr-config

A crystal library meant for supporting large and hierarchical configuration files. Provides methods for defining configurations through configuration files, environment variables, program arguments, or even custom sources through custom configuration providers.

cr-mockserver-client

A client library for interacting with a Mockserver instance

docr

A fork of marghidanu/docr , a client library for interacting with docker's HTTP API , with some additional functionality to make it more ergonomic to use.