Web Development

Full-Stack Web Application Development Experience

Production-Ready Architectures

For several years, I have worked in web app development for small companies, progressing to Lead Developer and Software Architect positions. With significant experience in front-end JavaScript/AngularJS development, UI and UX implementation and design, and back-end NodeJS environments, I can create and improve architectures that are production-ready and scalable.

Passionate About technology

Binary flows through my veins. Since I was a kid, I've had a passion for computers and technology, and started programming very early on. Today, I constantly seek out the latest tech to figure out how it can improve my daily life, professional career, and ministry. I love exploring the fun and excitement these new advancements can bring about.

Development skills

  • Node.JS
    Server-Side Environments Using Node.js

    My primary tool for building scalable and fast servers is Node.js. The architecture's aptitude for user concurrency, real-time communication, and easy horizontal scalability make it the perfect choice for our applications at Giftnix, as well as many of the side-projects that I have worked on.

    I employ many tools available to Node environments such as Express, and have recently moved to PayPal's Kraken, which is a very nice extension layer for managing Express applications. NPM tools such as async, 

  • JavaScript/AngularJS
    Front-End Environments In JavaScript and AngularJS 

    I've been writing JavaScript since middle school. It's quirky and has a lot of "features" that aren't such a great idea. However, it does its job well on the web when written correctly. I like to rely on "the good parts" and use tools like AngularJS to make the client-side experience great on desktop and mobile devices.

    Although I've worked with other one-page app frameworks like Ember, AngularJS is what I am most familiar with. Giftnix chose Angular for its incredible power and flexibility, and it works great for our needs. I'm excited for the release Angular 2.0, but have only minimally worked with its release candidate.

  • MongoDB
    NoSQL Databases In MongoDB

    Although I only worked with SQL databases in college, I picked up MongoDB as soon as I began working my first job, and love what I can do with it. NoSQL databases work very nicely for the work I do at Giftnix, as well as all of the side-projects that I operate.

  • HTML/CSS/Build Scripting
    Advanced HTML5 And CSS Preprocessor Experience

    I write most of my Angular templates in Pug (formerly Jade). It's clean and flexible syntax that makes HTML so much less painful. I've done some advanced HTML5 work with canvas, audio and video, and more.

    In my current position at Giftnix, we use Stylus as a CSS preprocessor, though I also have experience with Sass and Less. Although I don't consider myself a designer, I have a good eye for design, and can build elegant client-side experiences with little to no design provided to me. I usually prefer to work with an excellent designer who can provide mockups or wireframes, because I can build out functional and beautiful front-ends very quickly this way.

    In order to make the user experience great on mobile, I like to use responsive CSS frameworks to make the development easy and flexible. Like many, I began by using Twitter Bootstrap, but found it to be limiting, hard to overwrite, and very easy to look like it was made in Bootstrap. I quite like Foundation for responsive websites, because it's less biased than Bootstrap in how it looks and functions. I've also used Foundation for Apps (a flexbox-based framework for fullscreen web apps), and Angular Material for powerful, flexbox based admin systems based on material design and built with AngularJS in mind.

    Although I have spent some time with Gulp, Giftnix primarily uses Grunt for highly customized task-running and build scripts.

Repositories and Web Presence

These multipurpose tiles make ideal presentations for project showcases or as links to auxilary pages around your site.

Github

Public Repos

Relatively little of my work is public. My Github profile contains repos for some of the smaller side-projects I've had time to work on.

NPM Projects

Helpful Node Tools

Writing NPM modules is one of my favorite "for fun" development pastimes. I have Mongoose helpers, API wrappers, and more.

Background Image

Giftnix

Software Architect/Lead Developer

Giftnix is both the company I work for, and our flagship website. We sell digital gift cards from a large range of brands and specialties, and deliver them quickly and easily via email to you or your friends/family.

Giftnix.com
Background Image

Pokémon Team Randomizer

Solo Side Project

I built this project with the influence of several friends. We enjoy playing Pokémon Stadium using randomized teams and wanted a quick way to generate those teams for fun matches with a unique variety of strategy. The project went through several implementations including a Java Swing build, an Android app, and eventually to this beautiful and functional web app with Bulbapedia and PokéAPI integration.

This project is built on Node.js, MongoDB, AngularJS, and Foundation for Apps.

pokemonteamrandomizer.com
Background Image

Sermon Timer

Solo Side Project

At my church, we usually set up a laptop or iPad in the back of the venue and display a countdown timer onscreen so that the pastor knows how much time he has left. Some native apps do the trick nicely, but we could not find a web solution that worked well. This project is both an easy URL to remember, and has a number of features that make it very useful for the specific purpose of timing a sermon.

sermontimer.com
Colin Hemphill graduation

Education And Publications

In 2009, I graduated from Belmont University with a Bachelor of Science in Computer Science and a Bachelor of Science in Audio Engineering Technology.

I participated in several research opportunities, including an REU in the Software Engineering department at the University of Alabama. I also placed second for student papers at ACM SE '12 along with my roommate Josh for our work on Finding Effective Search Strategies for the TwoBik Puzzle.

Get In Touch

I'll do my best to respond to any questions or comments. Email and Twitter are the best ways to get my attention!


Tweet at me: @hemphillcc


E: [email protected]