In this role, normalized the CI process to be fully automated such that creating release candidates and the release itself can be done at the push of a button, which allowed the introduction of a rotating "release manager" role so that the responsibilities could be distributed across the team. Also created several integrations so that "user initiated feedback" (available across all platforms) could be automated and both delivered to our support team (via ZenDesk integration) and surfaced in platform-specific Slack channels so each platform can keep tabs on what our customers are saying.
Finally, grew the team by interviewing and hiring new engineers, and after transitioning to being the engineering manager for mobile platforms (horizontal team responsible for improving developer productivity across iOS, Android, and Windows), both coordinated initiatives for each platform, and assisted in hiring across the entire team.
Hired as the second engineer to build out the Windows application. The principal architect for the various subsystems required by the app, some of which present surpisingly complex challenges for a local client, including offline support, a sync story for queuing changes while offline or online, local database persistence, and a complex UI for drawing markup onto blueprints. Version upgrades often presented challenges for data migration so our schema could change while not forcing customers to re-download what can often be a huge (multi-gigabyte) dataset.
Brought in as the first engineer with the incoming CTO to fix and rebuild the entire tech stack which had struggled with a codebase that was pieced together in a haphazard fashion. The product was a sort of Twitter for athletes and sports fans. Hired several new engineers to build out the new team and then delivered mobile products for both iOS and Android. Responsible for the implementation of the backend REST API, an internal content management system, and also the design and implementation of the mobile apps.
Brought to market a sort of choose-your-own-adventure iOS game, Versu, as the technical lead of the project. Handled the iOS integration wrapping around the game engine designed and implemented by Richard Evans. This included App Store integration for in-app purchases, creating the shell to browse your library and interact with the game, and creating the infrastructure to interoperate with the C-based backbone of the game engine.
Brought in to stabilize and clean up the existing code base. Introduced and established new programming patterns to better separate concerns between UI team and backend engineers. In charge of designing the database schema and middleware architecture for a new web-based application to replace an aging and poorly automated contract entry and management system for the sales teams of YellowPages.com, a subsidiary of AT&T Interactive. Introduced chat functionality to complement the existing phone-based services of KEEN.com and Ingenio.com, companies that provide verticals to service professionals to monetize their conversations with customers.
Worked as an independent contractor for International Systems at Wells Fargo, architecting custom software solutions and answering all technical questions for the entire team. Software architect in developing foreign exchange software that enabled high-end customers to purchase and sell currency at high volumes. The upgrade significantly eased deployment over prior versions as it was web-based, allowing consumers to readily access their accounts.
Introduced unit-testing patterns that significantly reduced the likelihood of monetary mistakes, which as one can imagine would be a catastrophe in such transactions. A complete re-engineering of the system reduced code redundancy and provided long-term cost reduction for the company due to appreciably less maintenance. Led development of a new web product at https://www.foreignexchangeservices.com that allows any customer to buy foreign currency and have it delivered to their home.
Comfortable building out the infrastructure required to guide a PR from its inception to production. In addition, have created many integrations to connect Jira, Slack, GitHub, etc. in a way in which engineers can remain focused and not have to so often switch contexts.
I look for promising engineers and de-emphasize the specific skill they might bring to the table at the outset. If a person has a high trajectory, this will be independent of whatever experience they might have at the moment. I'd rather hire an engineer who might not have the skills to contribute right now but if we were to give them the right culture would develop into a great contributor for years to come.
Lots of experience analyzing a feature or design and creating the fundamental patterns that facilitate other engineers to implement their features with minimal boilerplate.