About Me
Andrew Wagner
My name is Andrew Wagner. I'm the creator of Decree, Notecards, and several other apps and open source libraries as well as the author of Learning Swift.
My biggest passions are product development, teaching/mentoring, and dancing. When it comes to product development, my specialty is programming but I really enjoy UX design, graphic design, business development, and all the other aspects of bringing an idea to life.
I've learned and worked in many technologies over the years but lately I've taken a particular interest in Swift. It started with iOS development where I had previously been using Objective-C and then expanded into macOS and even server-side development. I find the language to be a joy to use and I especially enjoy being able to share code between the front and back ends.
Beyond my technical skills, I pride myself in having strong opinions, but I also love to have my mind changed. That's the fastest way for me to grow which is my underlying greatest passion of all.
I'm currently looking for contract work or a full time position. If you're interested, you can check out my resume or read more below and feel free to contact me.
Open Source Projects
I love writing reusable code so I've developed many libraries over the years to help me write apps more quickly and reliably. I've even made several of them open source.
- Decree – Framework for making Declarative HTTP Requests
- Decree Services – Declarations for popular services for use with Decree
- Swiftlier – Library for common enhancements to Swift
- Swiftlier UIKit – UIKit helpers and improvements
- Swiftlier CLI – Command-line Swift enhancements
- Getting Started With Swift – Resources to learn skills related to Swift
Books
I was approached by a publisher to write a book to help new developers learn Swift. It was among the most difficult things I've ever done, but also gave me a huge sense of accomplishment.
- Learning Swift – Form a solid understanding of the Swift language
- Learning Swift (2nd Edition) – Updated for Swift 2
Apps
Many of the apps I've created are not available publicly, but here are some that are.
Notecards
Study aid using virtual flash cards- Swift
- UIKit
- Web
- Server-side Swift
- PostgreSQL
- SQLite
- AWS S3
Users can create and organize virtual flash cards and study them with powerful study methods all while the app automatically tracks how well you know each card. It also includes a store with pre-made content for users to download/purchase if they want.
The frontend is a native iOS app built with Swift.
The backend serves up the API for the app plus 3 different components for the web: Core website, content publishers portal, and an admin portal. It uses a framework I developed called Swift Serve. It's not currently designed for public use but it is open source and I use it across many different projects and websites (including this blog).
OnBeat
Track group workouts using athletes' heart rates through bluetooth monitors.Users connect athletes' heart rate monitors to the iPad which then shows their heart rates and other related stats to the instructor. The same stats are also displayed on a connected TV.
The frontend is a native iOS app built with Swift making use of Core Bluetooth to communicate with the heart rate monitors. It also integrates with North Pole Engineering's WASP devices to support large numbers of monitors.
The backend serves up the API for the app, integrating with MINDBODY to organize the classes, and also provides an online portal for gym owners. It uses the same Swift Serve framework that I developed for many of my other projects.
RideWorks
Take 3D scans of highly custom wheelchair seats to submit for manufacturing.- Swift
- UIKit
- Structure Sensor
- Web
- Server-side Swift
- PostgreSQL
- AWS S3
Assistive Technology Practicioners (ATPs) take 3D scans of seats molded to individual people to allow precise manufacturing of custom wheelchairs.
The frontend is a native iOS app built for iPads with Swift integrating with Occiptal's Structure Sensor to take the 3D scans.
The backend serves up a basic authentication API for the app and provides a portal for the client to manage its users. It uses the same Swift Serve framework that I developed for many of my other projects.
Jobs
Mobile Developer & Consultant at Chronos Interactive
Sep 2013 to Present- Swift
- Objective-C
- Golang
- Javascript
- HTML
- CSS
- UIKit
- Core Bluetooth
- Core Data
- Common Crypto
- AWS S3
- AWS SES
- Server-side Swift
- Ubuntu Server
- Apache
- Postfix
- Nginx
- PostgreSQL
- Sketch
- Photoshop
- Xcode
- Vim
- Git
- Asana
- Basecamp
- Jira
- Trello
I work with clients in many different ways. I joined teams, train junior devs, and also work as a sole developer. Sometimes I work exculsively on a client's iOS app while othertimes I provide an entire solution including a website and backend.
I'm often a part of the whole development experience from initial discovery meetings to delivery of the product, but ocassionally I've simply acted as a temporary consultant.
Above are the technologies that I've worked with that I can explicitly remember, but I pride myself in being able to pick up new skills very quickly.
iOS Software Developer at ShowMobile
November 2012 - September 2013- Objective-C
- UIKit
- AVFoundation
- Pivotal Tracker
This was a startup based in Denver, CO developing a social video platform for iOS. It was my first paid entry into iOS development where I started working with the company they were contacting with for development and as we transitioned the development to be completely internal, I became the iOS team lead working with a separate team in charge of the backend written in Rails.
ASR Software Developer at Garmin
- C++
- C
- Python
- PHP
- HTML
- CSS
- Javascript
- MySQL
- Jira
- Nuance ASR
Worked on the Speech Recognition team primarily in C and C++. I also developed internal web tools in PHP, MYSQL, HTML5, CSS3 and Javascript for collecting audio and testing Speech Recognition.
Education
Bachelors in Computer Systems Engineering from Rensselaer Polytechnic Institute.