- Experienced engineering manager of multi-site Agile Scrum teams
- Native iOS application architect and developer
- .NET backend architect and developer
- Evangelist for cross-platform mobile development with Flutter
- Strong code quality, build automation, and unit testing advocate
- Active tech culture promoter of meetups, tech talks, open source, and blogs
- Unique combination of technical, design, and business skills
- NYC Flutter Meetup Organizer
- NYC iOS Meetup Leadership Council and Presenter
- Author of SQLClient iOS library used by 400+ apps
- Blog author on WordPress and Medium
- Regular participant in New York meetups and conferences
- WWDC 2018 attendee
• iOS & Android
•.NET Framework & Core
• CouchDB & Couchbase
• Microsoft Azure
• Real Estate Transaction Standard (RETS)
• XCTest, OCMock, Xunit, Moq, Cake
Mobile Engineering Manager
Yodle, a Web.com company
August 2014 – March 2018
New York, NY
Responsible for creating Yodle’s first fully native iOS + Android apps for ServiceTask, later rebranded as Lighthouse Field Service. As Yodle’s first operationally embedded product, it had strict requirements for reading & writing offline data to support users with poor or limited internet access. Backend was Java/Play + MySQL + ElasticSearch, hosted in AWS. Formally managed a team of 2 iOS and 2 Android engineers. Worked closely with sister web/backend team of 4 engineers, plus UX, UI, and Product Manager.
Custom sync. To support read + write offline access, developed an efficient differential sync protocol for reads, and a resilient on-device outbound operation queue for writes, including attachment uploads. Developed proof-of-concept for 2.0 sync architecture using Couchbase.
Advanced calendar views. Advanced use of fully custom calendar views using UICollectionView, including the ability to drag and drop events.
Automated testing. Extensive use of automated unit and UI tests on iOS and Android, including a novel way to unit test view controllers on iOS.
1st place winner of multiple company-wide hackathons including:
- 🥇 Winter 2017. TORCHxtreme. A reactive, event-driven ETL engine for TORCHx to process real estate data in real-time using .NET Core, CosmosDB, Azure Queues, and Azure Search. The first Web.com-wide hackathon across 39 teams in 11 offices in 6 countries.
- 🥇 Spring 2017. Call Management for Desktop. A custom Arduino device with phone module sends caller id data to an API which pushes a Chrome notification and displays an incoming call popup. For Yodle’s award-winning Lighthouse Dental product.
- 🥇 Winter 2016. Scheduling Chatbot. An SMS chat bot to automatically reschedule appointments for field service customers. Natural language processing using wit.ai.
- 🥇 Summer 2016. Folding Card Animation. An innovative way of expanding and collapsing job cards for field technicians on iOS.
- 🥇 Spring 2016. Timeline Map View. A custom map view with a timeline overlay so that field technicians can visualize their day using both location and time on iOS.
- 🥇 Spring 2015. YoMo. A proof-of-concept mobile app for importing lead data from iOS into Yodle’s flagship Marketing Essentials product.
October 2013 – August 2014
Launched in May 2014, UpdateZen gives executives and managers visibility into the status of everything important their people are working on, eliminating dreaded status e-mails and cumbersome spreadsheets/documents. As hire #1, I was head of engineering at this early-stage startup, and the sole iOS developer. We first built the backend on Parse, then moved to Heroku + Node.js + Postgres. Product was acquired in January 2017 and shut down.
No storyboards. No tight coupling of controllers to one another. Instead, view controllers have no knowledge of their creators, containers, or siblings. This allows for easy re-use. I use the delegate pattern liberally so that I can coordinate the flow of the application in a loosely-coupled way.
No singletons. Instead, controllers are given all the external dependencies they needs to do their job, such as settings or the data store. I use a fantastic library called BloodMagic for dependency injection.
Firm separation of concerns. I use the MVCS (Model + View + Controller + Store) pattern. The model layer never fires error UIAlertViews, as in some code I’ve seen!
- Multithreaded CoreData data store with offline data access
- Secure storage and periodic validation/refresh of API token
- Background refresh and secure workaround for the iOS7 logout bug
- Multiple app entry points via deep linking and push notifications
- Single-sign-on via LinkedIn
- Integration with iOS Contacts and Camera/Photo Library
- New Relic performance monitoring and Heap for analytics
- Reusable, encapsulated views
- 100 XIB files
- 220 class files
- 36 third-party libraries managed via CocoaPods
- Uses my custom UINavigationController with push and pop blocks
- Uses my custom NSURLConnection+Retry category for network request retries
- Open source contributions (Auth0, PFCloud+Cache, Parse+NSCoding)
Senior .NET and iOS Developer
Institute For Integrative Nutrition
May 2012 – October 2013
New York, NY
- Managed, maintained, and extended the core business platform for the largest nutrition school in the world on an Agile Scrum team of 10+ developers, designers, and QA analysts. Used C# and .NET Framework 2.0 – 4.0 with SQL Server and LLBLGEN as the backend, and ASP.NET web forms and console apps as the front-end. Platform manages all mission-critical business operations including enrollment management and revenue processing. Key components include a student portal for 40,000+ global students and alumni, staff control panel for 150+ employees, and multiple integration points with Salesforce, Authorize.net, Drupal, Moodle, Amiando.
- Technical lead for “IIN Classroom”, the company’s core product, a Universal iOS app that delivers encrypted audio, video, and supplemental content to students, after vendor code was brought in-house. App uses HTTP Live Streaming (HLS) for delivery of media content from Amazon S3 and Cloudfront. Vastly improved user experience in low-bandwidth situations by re-encoding media in multiple variant quality streams, and included closed-captioning for hearing-impaired and international audiences. Improved concurrent downloading over HTTP and fixed multithreading issues.
- Technical lead for “My Practice”, a complex new CRM iPad app for students built by an off-shore European vendor. Uses a WCF backend API with REST endpoints and a WEBDAV layer. Multiple integration points with core business platform including SOAP services and a access synchronization engine. API also supports dynamic form generation and data collection via a student web publishing platform in Drupal.
- Integrated core business platform with the “My Practice” API using REST. Designed proxy layer in C# using inheritance, interfaces, generics, serialization, and DTO’s for slim, reusable, and easily extensible code. Created deployment and versioning process to load-balanced web farm. Became the technical owner of the .NET and iOS codebase after vendor code was brought in-house.
- Developed new iPhone application to streamline check-in of 1,200+ students and alumni at quarterly conferences in Lincoln Center. App uses a small attached Mobilogics iScan hardware laser scanner via the External Accessory framework and interfaces with a backend REST API over the iPhone’s cellular data connection. Reduced staffing requirements and eliminated the need for multiple laptops, desktop barcode scanners, and wifi access points as required previously.
- Performed deep integration with Amiando, the event management backend service. Developed custom features including seamless integration with student portal, “no-show fee” credit card collection, concurrent livestream registrations, event exclusion logic, and wait lists. Created a WCF service to receive webhook push notifications via HTTP POST and update core database using Entity Framework 5.
- Implemented an innovative new central error management system for the web platform that allows for asynchronous (“fire and forget”) API calls to handle errors by calling back on a different thread on the web server. Normally there is no way for asynchronous HTTP requests to report back on failures without delaying page generation.
- Extended and created new SQL Server stored procedures and functions to support core business platform and SSRS reports. Created an innovative XML-based layer between the BLL and T-SQL to allow extending tables beyond the ORM using the Entity Attribute Value Pattern. Created a “Course Transfer Wizard” to conduct the complex re-mapping of student data in a single atomic transaction.
- Advised on architecture and migration strategy for moving existing server infrastructure to a new “high availability” virtualized, load-balanced cloud datacenter in Datapipe Stratosphere.
- Performed voluntary off-hours training sessions for co-workers in Xcode and Objective-C to encourage education and experimentation with iOS development.
- Conducted code reviews of internal and vendor software. Performed phone and in-person technical interviews for .NET and iOS development positions.
Chief Technology Officer
Piast Meats & Provisions, Inc.
February 2006 – May 2012
- Implemented all internal and customer-facing technologies at this growing, multiple-location family business.
- Designed and implemented complex multi-site network, hardware, and software infrastructure using site-to-site VPN, pcAmerica POS server, SQL Server 2008, pcCharge, POS terminals, Quickbooks financials, cloud backup and storage.
- Developed “Enterprise Manager,” an ASP.NET intranet application that adds custom ERP features to POS system.
- Integrated with QuickBooks financial software using a HTTP proxy to communicate with legacy COM wrapper.
- Connected with scale management system to allow for real-time synchronization of price-embedded barcode SKUs.
- Leveraged ConstantContact web API to enable seamless broadcast of daily menus to thousands of customers over email and fax.
- Implemented dynamic in-memory generation of PDF files for consistent, efficient printing of price tags and store signage in multiple formats.
- Enabled previously impossible reporting on metrics such as labor utilization, margin tracking by item/department, and recipe costing to improve operating margins.
- Enforced workflows in internal processes such as procurement and PO/invoice entry to reduce errors and improve time-to-market.
- Managed extensive social media campaign on Facebook and Twitter that quickly became a leading presence in a niche market. This allowed firm to cater for VIP clients including the President of Poland and United Nations ambassadors.
2008 – 2010
New York, NY
- Developed UX prototypes, workflows, and data models for this customer-facing web application merging social media with product reviews.
- ASP.NET web forms using C# with LINQ to SQL ORM wrapper around a SQL Server database. UI Code reuse using user controls and delegated event handling.
- Integrated Google and Yahoo image search web API’s to import product images based on user searches. Incorporated Amazon web API to import product images and reviews.
- Enabled Facebook login for single-sign-on as well as allowing users to see which of their friends is also registered.
Boston College Information Technology Services
2004 – 2006
Chestnut Hill, MA
- Developed “Article Creator,” an intranet content management system to create and manage technical documentation at the University. Programmed in ASP.NET web forms using C# and XML for data storage hosted on internal virtual server. Features include secure AD user authentication and authorization, check-in/check-out, revision tracking, HTML generation via XSLT transformation, automated FTP of documents to web server, and auto-generation of RSS feeds.
- Developed “Link Statistic Manager” upon request of the School of Management communications Deptartment. Scripted forms to collect, store, and display link hit statistics from CD-ROM brochures distributed by the University MBA program. Features include password protection, graphical and raw data displays.
Boston College Academic Development Center
2003 – 2005
Chestnut Hill, MA
- Developed “Appointment Manager,” a custom intranet application to manage academic tutor scheduling for the entire University.
- Programmed in ASP.NET web forms using C# and ADO.NET to communicate to Access data store. Hosted on an private external server.
- Features include daily schedule view, searchable tutor profiles/schedules, student appointment history, full administrative reporting. Secure access from staff terminals.
Web Support Project Manager
Boston College Information Technology Services
2002 – 2004
Chestnut Hill, MA
- Worked with multiple internal University clients and vendors to implement key hardware & software solutions.
- Specialized in team-based planning, design, and execution of enterprise web projects.
- Participated in formal RFP acquisition processes for major enterprise software packages including HEAT, a thick-client ticket tracking system, and Serena Collage, a CMS.
- Responsible as the official enterprise application owner of HEAT, performing updates, maintenance, and interfacing with end users, DBA, vendor, and operations team. Created custom Windows Service module in C# to poll Oracle 9i database and send email messages based on query criteria.
- Conducted user-centric redesign of “Campus Groups”, a group management application at the University. Performed requirements analysis and gathered feedback from current power users. Created storyboards and created test designs and workflows.
- Conducted formal usability testing with end-users for “MyFiles@bc”, a university-wide web-based file sharing application. Interface improvement recommendations shared with vendor as well as with other Universities.
- Trained dozens of departments and users on “WebIT,” an internally developed content management system to manage their web presence on the University web server.
- Acted as an informal advisor to upper management on special projects.
Boston College Student Learning and Support Center
2000 – 2002
Chestnut Hill, MA
- Developed “Help Desk Manager,” a custom intranet application to manage service records of users seeking walk-in assistance at the Computer Help Desk for the entire University.
- Programmed in Classic ASP using VBScript and ADO to communicate to an Microsoft Access data store hosted on an internal Windows 2000 server.
- Features include real-time user queuing, searchable user history and problem resolution logs, integration with web knowledge bases, and detailed administrative reporting. Secure access from multiple staff terminals.
Boston College – Carroll School of Management
2002 – 2005
Master of Business Administration, Concentrations in Finance and Consulting
Beta Gamma Sigma Honor Society
GMAT: 720, GPA: 3.9
Coursework in Computer Science:
- Information Systems Development
- Management of Technology and Innovation
Boston College – College of Arts & Sciences
1998 – 2002
Bachelor of Arts, Major in Economics
Summa cum laude
SAT: 1440, GPA: 3.9
Coursework in Computer Science:
- Computer Science I
- Computer Science II
- Computer Networks
- Computers in Management
- Web Design and Digital Media
- New York University INFO1-CE9704001: Advanced iOS App Development (10/13)
- Stanford University CS184: Startup Engineering (6/13)
- Microsoft 10263: Developing WCF Solutions with Visual Studio 2010 (4/12)
- Microsoft 10264A: Developing Web Applications with Visual Studio 2010 (4/12)
- NYC iOS Boot Camp – 3 Day Intensive Workshop (3/11)
- Raritan Valley Community College: Active Server Pages (6/00)