Will Power About Résumé


William A. Power, Redmond, WA

Work History

Sr. iOS Developer, OfferUp

March 2015 - current

OfferUp iOS App. https://itunes.apple.com/us/app/offerup-buy.-sell.-simple./id468996152?mt=8 Buy and sell used second-hand goods locally.

Prepared codebase for automation by removing manual steps from the 'pod install' flow. Created one-step build script.

Refactored legacy codebase to enable upgrade of dependencies and tools.

Implemented dynamic view instantiation system that enables A-B testing of arbitrary layouts based on lists containing agreed-upon ViewController names.

Fostered weekly discussion among the engineering team of readings from the book "Clean Code."

Software Engineer, Motorola (Twisted Pair)

September 2014 - March 2015

WAVE Mobile Communicator. http://www.twistpair.com/index/communicators-mobile and https://itunes.apple.com/us/app/wave-mobile-communicator/id505543446?mt=8 A VOIP app that supports push-to-talk voice interaction with land-mobile radios according to server-configured rules.

Implemented features for point-release updates of the main app and an internally-used network-layer SDK while evolving the legacy codebases for maintainability and ease of iteration.

Enabled easier SDK versioning by creating a custom Ruby script which generates a Podspec and the associated directory structure for the SDK, along with team adoption of Git tagging of SDK releases.

Fostered weekly ‘lessons learned’ meeting to share knowledge among developers, including discussions of readings from the book "Clean Code."

Applied best practices in use of Git, Github, CocoaPods and Jenkins to increase predictability and stability of builds.

Sr. Software Engineer, Infospace

January 2014 - August 2014

Branded news feed applications, Zoo and Dogpile. https://itunes.apple.com/us/app/zoo-search/id826883105?mt=8 and https://itunes.apple.com/us/app/dogpile-search/id526817899?mt=8 Deliver branded themed news viewer applications for Infospace’s owned & operated properties.

Developed features in SDK, delivered to Infospace partners, which provides parameterized access to news and ad services.

Created highly optimized constraint-based layout system that allowed for dynamic content sizing of UITableView cells based on data type and available properties. Optimized and simplified content feed structure.

Software Consultant & CEO, Rogue Power, LLC

April 2013 - December 2013

Music recording application. iPad app for recording musical performances, fits into bigger context via server interactions. "Big" features: Recording, playback, recording management, song transcoding, waveform visualization, various server interactions (account/performance info, uploads). Less-common SDKs used: Core Audio’s lowest level API (Audio Units), Core Audio’s mid-level API (Audio Queues), External Accessory (required working closely with device vendor). UIAutomation for integration/acceptance testing (JavaScript used to drive application interactions).

iPhone/iPad game [ready to ship, name withheld until release]. Completed finishing touches on this app, which I originally created while at Ratio Interactive (details below). SDK updates, then app store submission.

Software Developer, Ratio Interactive

April 2010 - March 2013

Agile consulting environment. Rapid iteration and delivery.


Objective-C / iOS Projects

iPhone/iPad game [ready to ship, name withheld until release]. Cocos2d with Box2d. Set up tool chain for off-site level designers using off-the-shelf solution (SpriteHelper/LevelHelper). Wrote server using Python & Tornado, hosted on AWS to allow level designers to push to server. Augmented Cocos2d's CCTextureCache to load from Documents directory (cached by timestamp) so we could quickly iterate on level design. Engaged from design/planning through delivery (~6 months).

Epub reader for subscription service (iPad) [shipped]. Wrote data layer and network layer based on spec for existing and newly-created client-provided endpoints. Used storyboards to create app screens and most of the app navigation/segue flows, including popovers. Engaged from start of development to release (a few months).

AllRecipes Video Cookbook (iPhone/iPad) [shipped]. Custom UIControllers that behave one way for iPhone, another way for iPad. Slightly different navigation behavior on iPad. Dynamic layouts based on content from servers. Integration of and patches to a couple great time-saving open source components (SlideMenu and GridView). Involved in project from roughly mid-way to release (a few months). AllRecipes in iTunes Store

Pirq (iPhone) [shipped point release]. Add features for point release: reservation of discount, punch card behavior. Fixed bugs. (a few months) Pirq in iTunes Store

Real Networks' Firefly beta release [shipped]. Facebook integration, UIKit-based view framework, privacy preferences management & communication to server about privacy. (a few months)

iCookbook (iPad/iPhone version) [shipped point release]. Add BrightCove video support. Created library to manage cook timers. Wrote Python scripts to update SQLite store deployed with app. Wrote Objective-C to manage schema update of on-device database (for changes occurring in a 'point' release). Engaged intermittently over the course of a few years. iCookbook in iTunes Store


Flex / ActionScript Projects (first projects at Ratio)

Cloud-based cross-platform media solution. [multiple releases]. UI & business logic. Very customized UI components that required implementation once in Halo and again later in Spark; internationalization (German) as well as UI- and font-related issues dealing with characters not always present in embedded fonts. (~1 year)

Sales tool for digital signage in large sports venues. UI & business logic. Server API/data design discussions as needed to support app behavior. Media content management. Multiple deployments in live environment. (months)

Personal Projects

June 2009 to May 2010

Created data object definition system that allows a developer to define data in XML and XSLT and invoke a translation that auto-generates object/class files in a target language (such as ActionScript or Java). Used that data definition system to create a cross-platform local folder-based (instead of playlist-based) music player, and a comic book collection management system (that enables communication between collectors about items for sale).

Software Developer, The Active Network

January 2008 to June 2009

Developed Flex UI & business logic for complex multi-tiered RIA, using Agile development approach. Completed 1-2 feature areas per three week Sprint. Joined team early in the development cycle. Stayed through beta release and 'polish' phase prior to recent public release.

Program Manager Intern, Microsoft

May 2007 to August 2007

Wrote Feature Spec for Windows 7's File Save/Open Dialogue. Triaged bugs for Vista's SP1.

Developer Intern, Microsoft

May 2006 to August 2006

Specified and wrote plug-in for Outlook using Windows Desktop Search (WDS) API.

Languages

Objective-C, Python, C, C++, C#, ActionScript 3.0, SQL, XML, HTML, CSS

Tools

IDE - XCode, Visual Studio 2010, FlexBuilder/FlashBuilder, Eclipse

Build - Ant/Ivy, gcc

Versioning - git, Subversion

Environment - AWS

Non-dev - Fireworks, Flash

Frameworks / Open Source

Objective-C - Facebook SDK, SDWebImage, SlideMenu, DataService/JSONService

Flex - Cairngorm, Mate, Robotlegs

Python - Tornado, CherryPy

Knowledge Areas

Data Structures, Algorithms

OOP, (XML) Web Services

Other Tools

Abobe Photoshop, Illustrator, Dreamweaver & Fireworks

Leadership

Chairman, WSU’s IEEE Student Chapter

May 2005 to May 2006

Managed an engineering-centric career fair end-to-end. Improved condition and layout of the student lounge area. Supported an initiative to provide better wireless access in the student lounge.

Peer Mentor, Advanced Data Structures (CS 223)

January 2006 to March 2006

One of three Peer Mentors chosen by Kelly Fitz based on standing in the department and prior performance in this particularly difficult class. Reviewed projects with students twice per week, once for implementation strategy and planning, once as a technical code review.

Teaching Assistant, Data Structures (CS 122)

June 2005 to August 2005

Selected as a TA by Jack Hagemeister’s while an undergraduate, based on achievements in the program. Created and implemented a standardized grading system used in both my section and the other TA’s section. Taught underlying C/C++/C#.NET principles during the lab section.

Education

BS in Computer Science (cum laude), Washington State University (2007)

Game Developer Certification, Edmonds Community College (2004)

Associate of Arts & Sciences, Edmonds Community College (2000)

Professional Skills and Qualities

Creative, observant, able to see the big picture and find solid solutions

Attention to detail, meticulous with planning

4 years using Agile development process

Passion for building quality software

Good cross-group collaborator

4 years sales experience

Strong communicator

Hobbies & Activities

Host of SICAGA's East-Side Sketch Group Meetup

Pencil and charcoal drawing (My DeviantArt Page)