Profile

I am a Software Engineer with over 9 years of experience, across a variety of domains including application, native mobile, API backend, firmware, and networking protocol design.

My career has been marked by an ability to quickly pick up whatever technology or skills the business needs have dictated, to work well within any team, and to introduce modern development practices wherever I’ve been.

I’m seeking a position at an engineering-forward company that utilizes industry-leading best practices, and which provides a technical career progress track.


Skills

Languages

  • Swift: Versions 2.0 to 5.1. Multiple products shipped and live on the App Store
  • Objective-C: Objective-C since before ARC, multiple products shipped.
  • C/C++: For firmware developement, running on tens of thousands of devices.
  • PHP: Version 5.5 to 7.3. Backend API development and content management systems.
  • Javascript: Used in all front-end development I have done.

Frameworks / Tooling

  • iOS: UIKit, CoreData, MapKit, Interface Builder & AutoLayout, XCTest, fastlane
  • Web: Laravel, Lumen, Ruby on Rails, AWS
  • Firmware/Embedded: FreeRTOS, TouchGFX, STMCube, gcc, IAR
  • Networking / Protocols: Bluetooth, Thread, HTTP, IP, TCP & UDP
  • CI/CD: Linux servers, Jenkins for CI/CD pipelines, make/cmake for builds, and bash for scripting
  • Additional: I’d be happy to discuss my experience in jQuery, CSS, SQLite, MySQL, Nginx & Apache, bash, git, RESTful APIs, mDNS, and more.

Experience

Big Ass Fans

iOS Developer and Firmware Developer (2015-current)

  • Role Overview - At Big Ass Fans, my responsibilities have shifted with the demands of the business. I was hired as an iOS developer working in Objective-C within the Controls group, but my responsibilities quickly came to include representing the company in the Thread Group, helping to define new hardware projects, leading a team as Product Owner, developing firmware in C/C++, and developing new applications in Swift.
  • Notable projects
    • Haiku by BAF - I worked with another developer to add new features to this iOS application which controls all of BAF’s residential products: fans, lights, wall controls. Features included: grouping, smart thermostat integration, and Apple HomeKit.
    • Thread Group - I represented the interests of the company as the vice-chair of the Commercial Working Group, which was responsible for generating the 1.2 Thread Networking Specification’s Commercial Extensions. Specifically, I helped write a proposal to support IP-based, secure commissioning and decommissionsing of Thread devices. Later, I represented BAF on the Thread Group Board of Directors.
    • BASNet - This was a suite of 5 hardware devices that would allow BAF to do wireless retrofits in the commercial space. The devices consisted of fans, lights, and wall switches that communicated over a Thread mesh network. I helped define the feature set, design the communications API, and build the iOS application.
    • BAFCon - BAFCon is a touchscreen controller for BAF’s industrial fans. I helped define the product features, and was one of the primary developers on a team of four. I was responsible for selecting a UI framework, implementing major features in our embedded stack, architecting our device model, and defining a Bluetooth API to support OTA firmware updates. This product was so well-liked by management that is was fast-tracked and attached to all sales of BAF’s premium products.
    • BAFCon Updates - This is the iOS application responsible for updating BAFCon firmware over Bluetooth. I was the sole developer, and completed the project in 2 months. It supports downloading firmware from our servers, connecting over Bluetooth to BAFCons, and updating their firmware. It can support multiple, independent connections and updates, while giving the user valuable feedback during the process.
    • i6 by BAF - BAF launched a new residential fan, and I worked with another developer to almost completely refactor the Haiku by BAF codebase. This effort is essentially a new platform for all next generation BAF residential products. I was responsible for updating our CoreData model, implementing our protobuf API, handling all startup tasks, implementing our account login, and the entire device on-boarding process over Bluetooth, amongst others.
    • Jenkins CI/CD build pipleine - Before I was at BAF, all iOS builds were done on developer computers. I built an automated pipeline on our shared Jenkins infrastructure to build all Pull Requests in Github, run all unit tests, report any builld or test failures to Slack and Github, upload build artifacts for successful, tagged builds to App Store Connect, release new builds to TestFlight, upload de-symbolication files to Fabric for crash-reporting
  • Skills Used - Objective-C, Swift, C, C++, FreeRTOS, Networking Protocol design, API design, Agile/Scrum
  • Circumference, LTD

    iOS Developer and Backend Web Developer (2015)

    • Role Overview - Circumference is a small, lean start-up with multiple iOS products and services. As their first full-time engineer, I was brought on to take over development of their primary product, Verses. I worked closely with the CEO and lead product designer to plan and design new features, roadmap feature-sets and releases, and implement all new features.
    • Notable projects
      • Verses - Created an Apple Watch app, implemented StoreKit to convert revenue model to in-app purchases, integrated with Twitter and Facebook for sharing content.
      • Designed and built a web platform for content creation and management, integrating with Parse and Firebase cloud backends.
    • Skills Used - Objective-C, PHP, git, Javascript, Laravel, jQuery, CSS, Composer, RESTful APIs, Agile/Scrum

    eLink Design

    Backend PHP Developer and iOS Developer (2014-2015)

    • Role Overview - I was part of a small team that was responsible for everything from ecommerce sites; smaller, informational sites; large-scale international web applications; and enterprise mobile applications and intranets. Depending on the project, my role included managing a small team, being the sole developer, or work efficiently as part of a larger team.
    • Notable projects
      • Introduced several best-practices into the developer workflow: version control (git, and git-flow for branching), library versioning and dependency management (both through Cocoapods and Composer), and the use of local, development, and production environments.
      • Bluegrass Staking - Created an iOS application that wrapped an existing web application to allow horse owners to enter their horses in races, view performance reports, and facilitating payments. It also allowed users to be notified of race lineup changes and results.
      • OBC Kitchen - Created a custom menu iOS app deployed on iPads to each table, with management backend. Allowed for management to update the menu, pair drinks with entrees, and update pictures.
    • Skills Used - PHP, Objective-C, LAMP, git, Symfony 2, Laravel, Wordpress, Javascript, jQuery, CSS, Composer, SOAP & RESTful APIs, HTML, CSS, Agile/Scrum

    Software Development Consulting

    Freelance (2010-2013)

    • Role Overview - Part-time freelancer primarly doing client work in iOS and Ruby on Rails. Worked with a designer and front end developer to meet clients expectations and milestones.
    • Notable projects
      • Built a financial services web application that allowed financial advisors to track their performance for individual clients and portfolios.
      • Built an iOS app for a client’s internal use that allowed handwritten notes on PDFs.
    • Skills Used - Objective-C, ruby, Rails, git, HTML