A slightly odd picture of Marc's face

Marc Palmer

I'm a product-focused engineer specialising in iOS, tvOS & watchOS apps

This was last updated on Tuesday 21 March, 2023.

You can download a PDF version. Use that, don't ask for an MS-Word version!

Overview

I am a senior contract developer, product designer and consultant with over 34 years experience. Based in the UK I work remotely for clients worldwide. I love simple functional design. I can build entire iOS, tvOS or watchOS apps to a high standard. Most often I work on existing code and consult on product design & user experience as part of your team.

Since 2018 I have worked as a senior contract engineer with the very small team at TopHatch on the popular sketching and design app Concepts. With a very large user base it is consistently in the Top 10 Grossing iPad apps in Graphics & Design in U.S., China and other territories it has been featured numerous times by Apple in promotional events, App Store and on-devices in Apple Stores.

In 2022 I finally released my side-project video subtitling app Captionista which received excellent reviews from MacStories, Stuff and techradar. I also created a Swift framework nobody uses called Flint.

I have more than 10 years’ commercial experience in iOS development with both Objective-C and Swift as an indie and in startups of various sizes. I am so passionate about native iOS as a platform that I reset my entire client base several years ago to make great native apps instead of the web apps and Open Source projects I’d been building.

If you need somebody on your team to advocate for a triple-A user experience on Apple platforms, that’s me. I can also help if you need just a few hours of consulting advice on your iOS app’s direction. I love to help businesses and other developers.

Through my career to date I have helped more than 39 clients on at least 57 commercial projects including 13 iOS or Mac Apps. I have a good technical understanding of several programming languages, various mobile app technologies, web stack technologies, API design, writing developer and consumer documentation, and have been the CTO on many small projects.

I was fortunate enough to have an early start in technology in the 1980s and have now been a programmer for 39 years. I grew up doing low-level programming on the BBC B Micro and Atari ST. As a teenager I would optimise 68000 assembly sprite routines, bit scrollers, scrappers and so on using Motorola’s instruction cycle timing charts.

My experience runs the gamut of many diverse products from iOS fitness, music and photo apps as well as cloud storage client apps, through to hospital ICU monitoring systems and mobile 3G fax machines with TCP/IP (full email and web-browsing — I kid you not!), even old school mobile phone games and FMCG brand websites.

I host WWDC and Apple product keynote meetups for the local developer community and Apple faithful here in the Cotswolds at the lovely co-working space here in Stroud that I co-own.

Contact me to talk about the great iOS, tvOS or watchOS project you are building.

Mail me at marc@anyware.co.uk, follow me on Twitter or Mastodon, see some examples of my code at Github or read my blog marcpalmer.net

Skills summary

Shipping: I have designed and built iOS apps from wireframes through to App Store release. In the distant past I built many public-facing web applications for brands like Tropicana, Tropicana Go!, PJ Smoothies, Copella Fruit Juices, and Cobra Beer. I shipped eight J2ME mobile phone games, QA’d and built from a single code base across roughly 50 different handsets with a custom build system. I spent several years releasing and maintaining many Open Source Grails plugins.

Writing: I have written huge amounts of customer and developer targeted documentation for numerous products, including Flint framework, documentation for large Grails plugins and a short e-book. I have authored numerous REST API specifications. I have also blogged on technical matters semi-regularly since the early 2000s. Recent technical blog posts on iOS topics include a guide “Turning UI Specifications into Swift code” and a piece on debugging a mystery crash at startup.

Supporting: I have been the customer support contact for all my own Open Source and commercial products. I am mindful of the frustration people feel when things go wrong, and want to make sure my products meet their expectations. The reasonable ones, that is.

Speaking: I have presented technical talks related to Grails at several conferences including four years of “Grails Exchange” in London. I am pretty good at explaining things, although there’s always room for improvement. I have also made several high quality screencasts in the past, both public and privately for clients.

Languages: I learned roughly in this order… Basic (ZX Spectrum and BBC Micro) → 6502 assembly → Motorola 68000 assembly → C → Pascal → Object Pascal → C++ → Delphi → Java → PHP → JavaScript → Groovy → Objective-C → Swift. HTML & CSS of course, though extremely rusty.

Platforms: iOS, tvOS, watchOS, macOS. In the past; Grails web apps, Spring Framework, Java 2 ME (mobile phones), Java 2 CDC (wireless gateways), OSGi, PalmOS, Windows 16 & 32-bit, ATARI ST (TOS).

Open Source: I developed the open source Flint framework for Apple platforms. I spent seven years as a very active member in the Grails development community and being one of the most prolific Grails plugin developers, maintaining and supporting a dozen or so open source plugins, and contributing to the Grails framework itself. I am particularly pleased with my work on the design and implementation of the Grails enhanced stack trace output which was absorbed into the Groovy language.

Personal background

I am 50 years old and married with two daughters. I discovered relatively late in life that I really love design and have a high level of attention to detail I can bring to bear. I only switched to Mac in 2006. Shhh… don’t tell anyone.

I’ve been vegetarian for roughly 29 years and “amazingly” remain alive to this day. I play drums and electric guitar to a not particularly high standard and love all music – especially metal — as well as cooking, photography and gardening. I am virtually impossible to offend, and have a pretty dark sense of humour.

Availability

Luckily for me, I’m currently busy contracting at TopHatch Inc. on Concepts, but I might be available later in 2023. For more details please get in touch by mailing marc@anyware.co.uk.

As part of my App business Montana Floss Co. I can also offer boutique iOS app design & build services, where I work with designers I trust to create great apps from the ground up.

⚠️ Before contacting me: please note that I am not interested in working on military or defence projects, for companies that perform testing on animals, gambling related products, or projects that are based on profit from environmental damage, fossil fuel extraction or any other stuff that I consider to be damaging the world — if in doubt, please ask.

Work History

2023
  • Concepts – Senior iOS engineer on the popular award-winning iPad and iPhone sketching app, in the Top 20 iPad Productivity apps in U.S.A., Top 10 Grossing iPad apps in Graphics & Design, Top 500 iPad apps downloaded in USA Client: TopHatch Inc.
  • Captionista – A very fast video subtitling app for iPhone and iPad. Client: Montana Floss Co. (my company)
  • Bloop – Developing a iOS & Mac app that is still not yet released. Client: Montana Floss Co. (my company)
2022
  • Concepts – Senior iOS engineer on the popular award-winning iPad and iPhone sketching app, in the Top 20 iPad Productivity apps in U.S.A., Top 10 Grossing iPad apps in Graphics & Design, Top 500 iPad apps downloaded in USA Client: TopHatch Inc.
  • Captionista – A very fast video subtitling app for iPhone and iPad. Client: Montana Floss Co. (my company)
  • Bloop – Developing a iOS & Mac app that is still not yet released. Client: Montana Floss Co. (my company)
2021
  • Concepts – Senior iOS engineer on the popular award-winning iPad and iPhone sketching app, in the Top 20 iPad Productivity apps in U.S.A., Top 10 Grossing iPad apps in Graphics & Design, Top 500 iPad apps downloaded in USA Client: TopHatch Inc.
  • Captionista – A very fast video subtitling app for iPhone and iPad. Client: Montana Floss Co. (my company)
  • Bloop – Developing a iOS & Mac app that is still not yet released. Client: Montana Floss Co. (my company)
2020
2019
  • Concepts – Senior iOS engineer on the popular award-winning iPad and iPhone sketching app, in the Top 20 iPad Productivity apps in U.S.A., Top 10 Grossing iPad apps in Graphics & Design, Top 500 iPad apps downloaded in USA Client: TopHatch Inc.
  • Bloop – Developing a iOS & Mac app that is still not yet released. Client: Montana Floss Co. (my company)
2018
  • Concepts – Senior iOS engineer on the popular award-winning iPad and iPhone sketching app, in the Top 20 iPad Productivity apps in U.S.A., Top 10 Grossing iPad apps in Graphics & Design, Top 500 iPad apps downloaded in USA Client: TopHatch Inc.
  • Upthere Home – Consulting and development on iOS and Mac apps in Objective-C and Swift. A very wide range of work including; Converting the build and CI system to Fastlane, advanced animation and UI work, fast scrolling and data flow optimisations, URL workflows, Peek & Pop support, region monitoring, memory & performance troubleshooting, technical authoring and mentoring. Client: Western Digital Inc.
  • Bloop – Developing a iOS & Mac app that is still not yet released. Client: Montana Floss Co. (my company)
2017
  • Upthere Home – Consulting and development on iOS and Mac apps in Objective-C and Swift. A very wide range of work including; Converting the build and CI system to Fastlane, advanced animation and UI work, fast scrolling and data flow optimisations, URL workflows, Peek & Pop support, region monitoring, memory & performance troubleshooting, technical authoring and mentoring. Client: Western Digital Inc.
  • Kowalah – Fixing and working around bugs in legacy iOS app, new product design. Swift. Client: Montana Floss Co. (my company)
  • Upthere Home – Consulting and development on iOS and Mac apps in Objective-C and Swift. Client: Upthere Inc.
  • Bloop – Developing a iOS & Mac app that is still not yet released. Client: Montana Floss Co. (my company)
  • Soundproof – Developed my iOS music practice app Soundproof in Objective-C and Swift. Client: Montana Floss Co. (my company)
2016
2015
2014
  • wāv – (No longer in App Store) Consulting for startup in Objective-C, assisting with implementation of photo filters, stability, concurrency troubleshooting. Client: The Hobby
  • Soundproof – Developed my iOS music practice app Soundproof in Objective-C and Swift. Client: Montana Floss Co. (my company)
  • BBC Earth Prototype – Objective-C Development and contribution to design of iPad app for new immersive content. Client: BBC Natural History Unit
  • Video player prototype – Designing and developing a streaming IPTV iPad app in Objective-C. Client: Landscape HD
2013
  • SPOKEnPHOTO – Consulting and developing Grails web-app and UX for iOS photo sharing app. Client: Spoke Technologies
  • Server-side Grails mentoring and consulting. Client: CentraStage
  • Brinqa – Consulting on a Grails application for the banking industry. Client: Brinqa
  • IS3 – Consulting on Grails application architecture. Client: InfusionSoft
2012
  • SPOKEnPHOTO – Consulting and developing Grails web-app and UX for iOS photo sharing app. Client: Spoke Technologies
  • iKentoo – Consulting and development on Grails web app back end for restaurant point-of-sale service. Client: iKentoo
  • Weceem – Consulting, development, documenting and supporting the pure-Grails Open Source CMS. Client: jCatalog AG
  • NoticeLocal – Designing the product and managing the team of the startup I co-founded. Client: NoticeLocal
  • Grails plugins – Developing and supporting my Open Source Grails plugins. Client: Grailsrocks
2011
  • xslFast – Consulting on usability of a desktop Java application for XSL based catalog production. Client: jCatalog AG
  • Weceem – Consulting, development, documenting and supporting the pure-Grails Open Source CMS. Client: jCatalog AG
  • NoticeLocal – Designing the product and managing the team of the startup I co-founded. Client: NoticeLocal
  • Grails plugins – Developing and supporting my Open Source Grails plugins. Client: Grailsrocks
  • Client project – Contract work on a client's Grails app. Client: doc4web
  • Claritum – Consulting on architecture and implementation of migration of PHP service to Grails. Client: Claritum
  • JChem – Mentoring on use of Groovy for scripting. Client: ChemAxon
2010
  • Weceem – Consulting, development, documenting and supporting the pure-Grails Open Source CMS. Client: jCatalog AG
  • NoticeLocal – Designing the product and managing the team of the startup I co-founded. Client: NoticeLocal
  • Grails plugins – Developing and supporting my Open Source Grails plugins. Client: Grailsrocks
  • JChem – Mentoring on use of Groovy for scripting. Client: ChemAxon
2009
  • Weceem – Consulting, development, documenting and supporting the pure-Grails Open Source CMS. Client: jCatalog AG
  • NoticeLocal – Designing the product and managing the team of the startup I co-founded. Client: NoticeLocal
  • Grails plugins – Developing and supporting my Open Source Grails plugins. Client: Grailsrocks
  • String – Contract Grails web-app development for customer payment systems. Client: Historic Futures
2008
  • Grails plugins – Developing and supporting my Open Source Grails plugins. Client: Grailsrocks
  • Grails – Contracted to work on internal scripts. Client: G2One Inc.
  • Aegeon – Contracted to mentor developers in use of Grails. Client: Aegeon Inc.
  • PJ Smoothies – Contracted to develop and deploy PepsiCo-owned PJ Smoothies website with Grails. Client: Enotions
  • Tropicana Go! – Contracted to develop and deploy PepsiCo-owned Tropicana Go! website with Grails. Client: Enotions
  • Tropicana – Contracted to develop and deploy PepsiCo-owned Tropicana website with Grails. Client: Enotions
  • Copella Fruit Juices – Contracted to develop and deploy PepsiCo-owned Copella website with Grails. Client: Enotions
  • Cobra Beers – Contracted to develop and deploy Cobra Beers website with Grails. Client: Enotions
2007
  • PJ Smoothies – Contracted to develop and deploy PepsiCo-owned PJ Smoothies website with Grails. Client: Enotions
  • Tropicana Go! – Contracted to develop and deploy PepsiCo-owned Tropicana Go! website with Grails. Client: Enotions
  • Tropicana – Contracted to develop and deploy PepsiCo-owned Tropicana website with Grails. Client: Enotions
  • Copella Fruit Juices – Contracted to develop and deploy PepsiCo-owned Copella website with Grails. Client: Enotions
  • BOPCRIS – Contracted to enhance the BOPCRIS 18th Century parliamentary papers archive Java web-app. Client: Southampton University Library
2006
  • PJ Smoothies – Contracted to develop and deploy PepsiCo-owned PJ Smoothies website with Grails. Client: Enotions
  • Tropicana Go! – Contracted to develop and deploy PepsiCo-owned Tropicana Go! website with Grails. Client: Enotions
  • StealthText – Contracted to architect and project manage the J2ME confidential mobile messaging service. Client: Staellium Ltd.
2005
  • StealthText – Contracted to architect and project manage the J2ME confidential mobile messaging service. Client: Staellium Ltd.
  • Hustler Boobie Snap – Developing, testing and producing a branded low-brow J2ME mobile game, for over 50 handsets. Client: The Mobile Factory
  • Ninja Monkey School – Game level design, testing and producing a low-brow J2ME mobile game, for over 50 handsets including awful Samsung devices. Me, bitter? Client: The Mobile Factory
  • Cluedo – Porting and testing the J2ME mobile game to difficult handsets. Client: 8-bit Games
  • Cookery School Website – Enhancing their PHP CMS site. Client: The Vegetarian Cookery School
  • Management UI – Contracting on Java web-applications for SS7 mobile telecomms equipment, and unexpectedly troubleshooting Solaris network driver memory leaks. Client: Telesoft Technologies Ltd.
2004
  • Hustler Boobie Snap – Developing, testing and producing a branded low-brow J2ME mobile game, for over 50 handsets. Client: The Mobile Factory
  • Boobie Snap – Developing, testing and producing a low-brow J2ME mobile game, for over 50 handsets, for over 50 handsets. Client: The Mobile Factory
  • Ninja Monkey School – Game level design, testing and producing a low-brow J2ME mobile game, for over 50 handsets including awful Samsung devices. Me, bitter? Client: The Mobile Factory
  • Monkey Snap – Developing, testing and producing the J2ME mobile game, for over 50 handsets. Client: The Mobile Factory
  • Hoppit! – Developing, testing and producing the J2ME mobile game, for Nokia handsets from mono 3410 to the Series 60 and some Sony Ericsson handsets. Client: The Mobile Factory
2003
  • Hoppit! – Developing, testing and producing the J2ME mobile game, for Nokia handsets from mono 3410 to the Series 60 and some Sony Ericsson handsets. Client: The Mobile Factory
2002
  • Wireless gateway admin UI – Contracted to design and develop a J2ME CDC OSGi Wi-Fi gateway configuration UI framework. Client: Possio AB
2001
  • Wireless gateway admin UI – Contracted to design and develop a J2ME CDC OSGi Wi-Fi gateway configuration UI framework. Client: Possio AB
2000
  • TCAP – Contracted to design, develop and test a client/server application framework for fax machines to access internet email and web using the fax printer as the only UI! Initially Delphi then Java. Client: Possio AB
  • Embedded software – Contracted to design and develop realtime flash-memory C document storage API and font rendering subsytems for fax machines. Client: Possio AB
1999
  • TCAP – Contracted to design, develop and test a client/server application framework for fax machines to access internet email and web using the fax printer as the only UI! Initially Delphi then Java. Client: Possio AB
  • Siemens News Ticker – Contracted to design and develop a Windows news ticker app with Delphi. Client: Sift Plc
  • 360me – I was a co-founder and the developer of this startup web app for sharing personal, work and 'wishlist' information, before Facebook was a thing. Client: 5@6 Ltd.
1998
  • Intensive Care Unit reporting system – Contracted to build a dynamic database form-design system in Delphi for a DCOM based hospital ICU reporting/monitoring system. Client: Badger Design Systems Ltd.
  • MIST – Contracted to maintain and enhance the Delphi application for The Met.Office, design and implementation of a new wind & tidal swell visualization feature. Client: Matra Marconi Space
1997
  • Intensive Care Unit reporting system – Contracted to build a dynamic database form-design system in Delphi for a DCOM based hospital ICU reporting/monitoring system. Client: Badger Design Systems Ltd.
  • CableNet Launcher – Employed as lead Windows developer to design and build the custom dial-up software and encryped socket protocols for client management, SMTP and POP mail implementations. Client: CableNet Ltd.
  • Channel Maker – My commercial application for creating CDF 'Active Channels' in the days before RSS, built with Delphi. Client: AnyWare Ltd.
1996
  • CableNet Launcher – Employed as lead Windows developer to design and build the custom dial-up software and encryped socket protocols for client management, SMTP and POP mail implementations. Client: CableNet Ltd.
  • dWinsock – Development, support and technical authoring of shareware Delphi socket library with RFC compliant multithreaded POP3 & SMTP implementations. Client: dWinsock Team
1995
  • CableNet Launcher – Employed as lead Windows developer to design and build the custom dial-up software and encryped socket protocols for client management, SMTP and POP mail implementations. Client: CableNet Ltd.
  • dWinsock – Development, support and technical authoring of shareware Delphi socket library with RFC compliant multithreaded POP3 & SMTP implementations. Client: dWinsock Team
1994
  • CableNet Launcher – Employed as lead Windows developer to design and build the custom dial-up software and encryped socket protocols for client management, SMTP and POP mail implementations. Client: CableNet Ltd.
  • Musicalc royalty accounting system – Office admin and technical support. Client: Musicalc Systems Ltd.
  • Musicalc royalty accounting system – Developing Windows versions of the DOS app in Pascal and then C++. Client: Musicalc Systems Ltd.
1993
  • Musicalc royalty accounting system – Office admin and technical support. Client: Musicalc Systems Ltd.
  • Musicalc royalty accounting system – Developing Windows versions of the DOS app in Pascal and then C++. Client: Musicalc Systems Ltd.
1992
  • Atari ST demo writing – Writing raw 68000 assembly demos featuring realtime music and graphics. Client: The Lost Boys
  • Musicalc royalty accounting system – Office admin and technical support. Client: Musicalc Systems Ltd.
1991
  • Atari ST demo writing – Writing raw 68000 assembly demos featuring realtime music and graphics. Client: The Lost Boys
  • Musicalc royalty accounting system – Office admin and technical support. Client: Musicalc Systems Ltd.
1990
  • Musicalc royalty accounting system – Office admin and technical support. Client: Musicalc Systems Ltd.
1989
  • Musicalc royalty accounting system – Office admin and technical support. Client: Musicalc Systems Ltd.

This CV is built from Markdown and JSON data using Jekyll and Skeleton.