A slightly odd picture of Marc's face

Marc Palmer

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

👉 Good news, I'm available for contracting right now 👈

This was last updated on Wednesday 25 July, 2018.

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 29 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. I am also the creator of the pure Swift framework called Flint.

I have more than 5 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 37 clients on at least 55 commercial projects including 11 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 34 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 at @marcpalmerdev, 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. I have also 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 for over ten years. 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 are a given.

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 am actively developing 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 45 years old with a wonderful wife and two fantastic 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’m a long-time vegetarian 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

🎉 Great news! I’m available for contracting right now. Drop me a line at marc@anyware.co.uk and let’s talk about your App.

As part of my App business Montana Floss Co. I can also offer boutique iOS app design & build services, where I work with my design partner Adam Hinks 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

2018
  • 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.
  • Katherine Colby Hydrologists Ltd. – Business analysis, design and implementation of MVP native iPad app in Swift. Client: Montana Floss Co.
  • Soundproof – Developing iOS music practice app Soundproof in Objective-C and Swift. Client: Montana Floss Co.
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.
  • Upthere Home – Consulting and development on iOS and Mac apps in Objective-C and Swift. Client: Upthere Inc.
  • Soundproof – Developing iOS music practice app Soundproof in Objective-C and Swift. Client: Montana Floss Co.
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 – Developing iOS music practice app Soundproof in Objective-C and Swift. Client: Montana Floss Co.
  • 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
  • (Redacted) – Developing a iOS & Mac app that is still not yet released. Client: Montana Floss Co.
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 using Jekyll and Skeleton.