Work

My professional interests are tailored around making peoples lives easier. They usually include some form of API, an app, or an SDK.

I am currently a Senior Technical Consultant at Acquia, a SAAS company that provides enterprise products, services and technical support for Drupal. I perform security and performance audits for the professional services division.

I have been lucky enough to work with many Fortune 500 companies as well as a few government agencies.

Before that I spent time architecting and delivering enterprise websites built on Drupal.

You wont see any of that work here though, these are my side projects and freelance work that I have done over the years.

Hover over them to see information about each.

macOS

  • Survlog is a convenient way to watch remote log files. Simple setup, and allows for ssh keys and sudo passwords. Stores log file information for easy access and reusability.

    I wanted Survlog because I was constantly reading log files on my networks for roothack.org

    This app allowed me to store log file location and quickly/easily access my logs no matter where they were. Its been an app I have worked on for long time and probably something I thought would make a lot more money than it is. Haha.

  • In 2016 I was trying to release an app a month, the second app was ResponsiveExhibit. An app for showcasing a website that was built with a responsive layout.

    It does not serve a huge market, but I found myself constantly trying to work in photoshop to display my web development work in Mobile Tablet and Desktop form, so I spent a day building this app.

  • An HTTP Client that supports every HTTP Request method with custom parameters, custom body and custom headers.

    Fetcher was born out of a need to cleanly see the responses from API's that I was working with. Namely building Services API for Drupal. It was my second macOS personal project.

  • SimplePastie allows you to paste your clipboard to various sites pasteboards including, pastie.org and gist.github.com using a global hotkey.

    This was my first personal macOS project and I really just made it because I got tired of the process for pasting code snippets to websites. Where problems exists, solutions that people will pay for are opportunities!

  • I worked as freelancer to build Chrometa's macOS application.

    Chrometa is a time tracking service mainly for Lawyers, but it tracks what you're doing on your computer and then uploads it to a website so that you can invoice your clients easily.

    This was my first macOS freelance gig and was very challenging to write software that knowingly spies on you!

iOS

  • I was hired to build the 4SCENE app and take it from a 1.0 to 2.0. This app was deeply integrated with Facebook for authentication and friend finding.

    The app was basically Snapchat meets location. You could upload pictures/Videos and it would be tagged with where you were currently located. User could search a map and find things happening near them, or in cities they would be visiting.

    This was a fun project because it's what allowed me to learn Swift and release an application with it. Gone are the days of managing memory!

    Technologies Used

    • Swift
    • Parse
    • FacebookSDK
    • LayoutKit
    • Alamofire
  • Drupal Gardens was an Acquia product much like SquareSpace or Wix. Its base foundation was Drupal, and it later morphed into a project called Acquia Cloud Site Factory. 

    Acquia hired my then employer Workhabit to build an iOS app for users of Drupal Gardens.

    This app would let you login to your site, create and upload content, as well as manage multiple sites. One of the nice features was you could control look at feel of the application via your Drupal site. This documentation post explains how to do that. 

    Eventually Drupal Gardens was shut down, but this was a fun project that I worked on for about 9 months.

  • Mogotix was an application I built as a freelancer. It was very simple, but on the edge of new tech. Companies like Ticketmaster, and Eventbrite were not doing mobile ticketing yet.

    A friend introduced me to Scott the founder and we hit it off pretty well. I built their mobile application for iOS that allowed event organizers to see a list of their events, and check in attendees via QR codes. Attendees could use the same app to see a list of their tickets, and get the QR code for it.

    At the time, Flat UI's were not in so ignore the dated looking UI! Heres a video demonstration the organizers view of the app and the check in process.

     

    This was a fully custom UI job. I took designs from PSD's and built custom UI elements for the iPhone. The hardest part of this project was getting C QR code scanning libraries embedded into the app as I had never done something like that, and CocoaPods/Carthage were non-existent at that time.

     

     

  • I built YouFree as a solution to a problem I was having with my friends. Are you free? 

    It lets you add friends and follow them. See when their free, and you can let others know that you are free.

    Currently in the process of converting it off of a custom hosted parse backend, since parse shutdown. 

    I will open source it in the future, just spending time building it on Vapor.

macOS, iOS, watchOS, tvOS

  • The Waterwheel Swift SDK provides classes to natively connect iOS, macOS, tvOS, and watchOS applications to Drupal 7 and 8. It is formerly known as the Drupal iOS SDK.

    It used to support Drupal 6, and technically still does but at your own risk. 

    I wanted to build an SDK that would allow users to focus on the functionality of their application and not how they talk to Drupal. Ive given various talks on the SDK, and made my first commit to the project in 2010 and have been working on it ever since.

    Originally an objective-c project, it has seen been converted to Swift, and currently tracks Drupal 8.

Drupal

  • Ive always been very interested in APIs. Watching SOAP fizzle out and REST take over was quite exciting. Now we even have GraphQL. But in 2010 I wrote a patch to fix Services module in the 2.x branch.

    Eventually I became a co-maintainer and I immediately  began to think about what 3.x would look like Hugo Wetterburg laid the ground work for this 3.x branch and I made the next several commits.

    This set in motion the next 7 years of my life. Managing the 6.x-2.x, 6.x-3.x, 7x-3.x, and eventually 8.x-4x was a very time consuming task. As a full blown open source contributor I was having a lot of fun.

    Services still lives on in Drupal 8 even though REST is built into core, it just takes a different stance than Drupal core does in how you define API's via code.

Talks

  • In 2012 after spending 2 years working on native application development, the Drupal Association asked me to be a featured speaker Drupalcon Denver 2012.

    Mobile applications were on the rise and major brands were picking up the Drupal iOS SDK so they could use it to focus on the functionality of their apps, and not how they talk to an API.

    During this talk I discussed the common pitfalls, how you get data out, and how you push data up. I did some live development but in hindsight I wish stepped up at the time and talking more agnostically about Native Mobile development.

    Im pretty happy with this talk though as it was by far the largest I had ever done. An estimated 1000 people were in the room. You can watch the video here.

  • I co-spoke at Drupalcon Denver on Services module with a co-maintainer named Marcingy. He had been working on Services module as long as I had so It made sense we gave this talk together as there was so much information to get out about Services module.

    This talk goes into detail about the Services architecture and how to use the module.

    For some reason the Drupalcon page is broken, but theres always youtube!

    You can watch that here. 

  • Shortly after Drupalcon San Francisco I attended Badcamp (Bay Area Drupal camp). I wanted to keep discussing the new Services architecture and showing people how you could build API's with the module and Drupal.

    Drupal as a backend for other applications was becoming bigger and bigger, and being at the forefront of that for Drupal 6 and Drupal 7 was a lot of fun.

    You can see my slides here, although they are not that pretty!

  • In 2010 at Drupalcon San Francisco I announced the "Drupal iOS SDK". It was a lot of hard work on the Services module, taking it from 2.x to 3.x. Once that was completed I began work on the iOS SDK with the goal of letting iPhones talk to Drupal. This wasnt my first time speaking but at the time it was the largest group I spoke in front of.

     

    http://sf2010.drupal.org/conference/sessions/iphone-drupal-and-web-services.html