Mark Dalrymple markd@borkware.com 1239 State Route 356, Leechburg, PA 15656. 724 845 7420 _______________________________________________________________________________ Summary I've been a serious Unix, Mac, and iOS developer for many years. I pride myself on learning technology as deeply as I can and helping my friends and associates learn about it so they can become more effective engineers. I've worked at large tech-heavy companies (such as AOL and Google) and numerous startups as a full-time employee and as a consultant / embedded expert. Languages, Platforms, and Tools * Mac (AppKit) and iOS (UIKit). Have used SwiftUI but haven't shipped anything with it yet. * Systems and application programming: Swift, Objective-C, C, C++ * Scripting: Python, Bash, Javascript, HTML, etc. * Development tools: Xcode, Instruments, git, github, debuggers, performance profilers, code coverage, memory tools, and disassemblers * Network tools: Charles Proxy, Proxyman, Wireshark * Software engineering techniques: refactoring, test-driven development, design patterns, SOLID, protocol-oriented programming * Panic Playdate programming for fun Industry Communication * Co-Founder of CocoaHeads, a Mac and iOS Programmer users group, now with hundreds of chapters in dozens of countries on six continents. Run the Pittsburgh chapter where I present regularly. * Author of "Advanced Mac OS X Programming: The Big Nerd Ranch Guide" * Principal author of "Learn Objective-C on the Macintosh" * Principal contributor to the Big Nerd Ranch blog with over 3 NaNoWriMos worth of words: https://bignerdranch.com/blog/category/authors/mark-dalrymple/ * Regular speaker at the CocoaConf series of regional conferences * Trade show booth staffer at conferences such as Usenix and MacWorld. * Mentor with Underdog Devs: https://www.underdogdevs.org Professional Experience (reverse chronological) * Big Nerd Ranch 2012-present http://bignerdranch.com Consultant for a popular sports workout mapping service, visually refreshing the UI, re-engineering portions of the code that were of questionable quality, contributed to internal frameworks, fixed hundreds of warnings. (1 year) Consultant for a large P2P online marketplace, adding brand new instagram-like video features. Also assisted debugging endemic problems in the codebase, and helping diagnose errors happening in the field. (1 year) Consultant for a TDD (Telecommunication Device for the Deaf) company helping barn-raise a Mac version on an extremely short deadline. Used low-level protocols such as RTP, and tools like WireShark for analyzing requests and responses (3 months) Consultant for a young streaming platform similar to Twitch, with extremely low latency interaction between "chat" and the streamer. Added features and fixed bugs up and down the technology stack (from low-level networking up to implementing UI components such as bespoke chat bubbles) (2 years) Consultant for a large smart lightbulb company, fixing bugs and adding features to their end-user control app (such as smart switches and RGB Bulbs), as well as cleaning up Objective-C code and writing new features in swift. Worked closely with my Android counterparts to maintain app equity and coordinate our stored data to be cross-platform. (9 months) Consultant for a large appliance company adding IoT support, helping write a web gasket between an awkward web API and the iOS client. (6 months) Developed the "iOS for the Enterprise" course taught on-site in many Large Corporations. Developed a "Train the Trainer" curriculum for teaching others how Big Nerd Ranch courses are taught. Major contributor to the Advanced iOS course. Go-to nerd for difficult problems in debugging and performance tuning for Mac and iOS * Mona Lisa Sound 2011-present (Side Project) One of two developers of Music Jot, music notation software for iPad http://musicjot.com Mentor to the other developer (professional musician, amateur programmer). Solver of many difficult problems, such as undo and integrating a third party handwriting recognition library. I generally figure out how to do something, and my partner would do the work to make it happen everywhere (such as our direct interaction menus, action-based command system, and help region annotations). The codebase is Objective-C. * iClassBuilder 2010-present (Side Project) http://iClassBuilder.com Wearer-of-Many-Hats for an indoor and outdoor cycling startup. Sole author of "iClassBuilder Player" https://apps.apple.com/us/app/iclass-builder-player/id1199667339 This is an ioS app that allows indoor cycling instructors to build classes on the web (https://iClassbuilder.com) choosing music, creating training cues) and then deliver them in a live environment on their device with music and a ride profile that can be displayed on an HDMI or AirPlay destination. The code base is Swift. Author of "Ride Buddy Buckets", https://apps.apple.com/us/app/ride-buddy-buckets/id1054517783 Buckets is an iOS app that coordinates with a web workout schedule (e.g. You're doing 3 workouts this week, with this amount of time in these heart zones), and gives live feedback during your workout. This includes user-configurable on-screen meters, heart rate (plus live graph) from ANT+ or BLE devices, live power data from Keiser M3 cycles, time left in zones, along with a unique "bucket" indicator, encouraging users to fill up the buckets without overflowing. The code base is Objective-C * Google 2005-2010 http://google.com http://google.com/mac Member of the Macintosh Client Team at Google. Engineer, then Tech Lead, for Keystone, the second generation Mac auto-update software. The core components released into open source as Update Engine. Oversaw several updates for clients on millions of desktops. Ported Movie Maker and GPS modules for Google Earth from Windows to the Mac. Co Tech Lead on Google Updater, an application that installs, updates, uninstalls, and cross-promotes Google desktop products. This was a wide-reaching product, requiring both client-side (in Objective-C with the Cocoa toolkit) and server-side (in Java) components, along with a product signing toolchain. * Borkware / Integrated Badgertronics 2001-2005 http://borkware.com http://badgertronics.com Authored SCSI DAT tool for NOMOS for retrieving legacy data from tapes using Apple's STUC SCSI toolkit. Worked around bugs in Darwin disk arbitration daemon for SCSI MO disk handling (Jaguar), and ported MO disk handling to the DiskArbitration SPI for Panther and Tiger. Implemented a number of user interface views (Cocoa) for CORVUS, a "radiation knife" cancer treatment system. CORVUS views included table view access to their custom data models and a 2-D/3-D interactive histogram view. Fixed rasterization problems in the CORVUS printing system. Fixed build system issues related to C++ and ZeroLink. Developed technique to reduce build turnaround time from minutes to seconds without needing a compile farm. The work involved making modifications to a multi-million LOC system written in Objective-C and C++. * arsDigita, Cambridge, MA. 1999-2001 (defunct) Famous/infamous web consultancy. One of the first dozen employees. Worked on many high traffic websites, including GuideStar (now helping.org), away.com, and site59. Developed a driver allowing AOLserver to talk to Oracle. Assisted system administration team with diagnosing and fixing production issues, assisted our DBA in diagnosing and fixing database issues. Contributed modules to the ArsDigita Community System. Also internal resource for AOLserver, Unix, and Oracle questions. All work was performed remotely. Completed Oracle 8i DBA certification. * America Online, Dulles, VA 1995-1999 http://aol.com Chief architect of the Macintosh "Rainman" tool, a Macintosh front-end to AOL's proprietary publishing technology. Designed internal flow of control, and coordinated with Windows-based teams. Set up source code control and build structure for the tool. Data and user interface optimizations. Transitioned code base to team in California. Technical lead for AOLserver, a high performance multithreaded web server and application platform. At the time, all of AOL's primary web properties (www.aol.com, members.aol.com, etc) used AOLserver. Performed email and AIM support internal to AOL and in the community. Diagnosed and fixed production errors in high-volume environments. Added proprietary features to support internal projects. Ported AOLserver to additional platforms, and was involved in open sourcing the code. * Visix Software, Reston VA. 1990-1995 (defunct) First job out of college. Telephone and email support of Looking Glass, a Unix file manager. Supported and maintained Looking Glass on the SunView and EnvironV windowing systems. Added audio support to the toolkit. Telephone and email support of Galaxy, a cross-platform application environment. Designed and implemented the List Manager, a full-featured spreadsheet-style UI element. Also contributed to the Galaxy help system. On-site Galaxy consulting and evangelism on Wall Street. Authored trade show and sales demos. Worked the booth at many trade shows. Wrote technical articles about Galaxy for the customer newsletter, and presented technical "how-to" sessions at the Galaxy Developer's Conference. Instigated formation of a QA team. Devised unit test strategy (before it became trendy) and implemented many toolkit unit tests. Education Hendrix College, Conway AR http://www.hendrix.edu 1986-1990 Bachelors degree in Mathematics with a Computer emphasis Interests Trombone and bassoon player. Active in two concert bands and a community orchestra in western Pennsylvania. Bassoon quartet performance of "Sweet Dreams are Made of This" (https://vimeo.com/44208772) received a DMCA takedown from the Eurythmics. Proficient balloon twister.