Curriculum Vitae
I am Jonathan Rothwell BSc., a software engineer & architect, writer, & conference speaker. I am based in London in the United Kingdom.
Please use masculine pronouns (in English: he, him, his) when referring to me in the third person.
I have a decade of experience building high quality software in the public sector, health & SaMD, fintech, and retail domains. I’m currently at Zühlke where my projects include mobile apps & SDKs in Swift & Kotlin, backends, Web, and developer tooling.
I hold a BSc with First Class Honours in Computer Science from Queen Mary, University of London (2011-2015.)
My key interests are in ethical and inclusive software design, safer systems, and accessible digital interfaces for the public. I think it is our moral duty as technologists to engage our social conscience when designing and building software, and work towards an inclusive, kinder industry and society.
Selected Projects
Further details on these or other projects are available on request.
Mobile SDK for a manufacturer of medical devices (with Zühlke)
I was an architect and tech lead on a team building an SDK to control Class III medical devices over Bluetooth Low Energy. It was written in Swift with backwards-compatibility to Objective-C, and in Kotlin on Android with compatibility with Java.
- Collaborating with consumers and stakeholders to deliver an improved developer experience and improve documentation
- Delivering collaborative changes to the SRS, SAD, SDD, and other MDR-required documents
NHS COVID-19 app (2020—2022, at Zühlke)
I was an engineer & tech lead on the iOS COVID-19 contact tracing app for England and Wales, to allow people to warn others when they tested positive for COVID using the Google-Apple Exposure Notification framework. The app used UIKit, SwiftUI, and Combine.
- Collaborated across Test & Trace to iterate fast to match the rapidly changing policy context
- Ensured compliance and advocated for our strict requirements around accessibility, internationalisation, privacy, digital inclusion, and probity
- Compiled SOUP lists and FMEA documents to comply with Medical Device Regulations
- The NHS COVID-19 app had around 20 million users at its peak and is credited in a paper in Nature with preventing c. 1 million COVID-19 infections in its first year. The app is open-source with code available for the public to browse online.
Mobile app for a major retail bank (at Zühlke)
I was an engineer on a large team building a brand new mobile banking app for a UK retail bank, then a new white-label app for the bank’s various international markets and brands.
- Launched core banking apps in Swift, Objective-C, UIKit (iOS), Java & Kotlin (Android);
- Introduction of new features, integration of third party software, and supporting PSD2/Open Banking compliance;
- Reviewed and managed the quality of incoming code from international teams with developers of varying skill levels, liaising with engineers across locations & cultural barriers, managing stakeholders, and championing our testing and quality standards;
- Production support documentation, runbooks, and technical documentation.
VersionedCodable
(2023—date, side project)
Created an open-source library that provides a thin wrapper around the Swift programming language’s Codable
type to allow versioning of document types, and incremental migrations.
- Leveraged dependent type features that are part of the Swift language to improve type safety and developer ergonomics, and reduce the risk of programmer error;
- Wrote comprehensive documentation using Swift-DocC (published to the Web using GitHub Actions) and built experimental support for Swift Macros.
- You can browse the Swift package on GitHub and browse the documentation here.
Unspool (2022—date, side project, work in progress)
An (in-progress) app for macOS to help people add metadata to scanned film photographs in bulk. Makes use of SwiftUI, CoreGraphics’s image metadata APIs, and some Swift concurrency. You can visit its Web site here or read the developer blog.
Skills & Outlook
I’ve been programming on and off since age five. In addition to recent work on iOS mobile apps in Swift, principally using SwiftUI and UIKit, and some limited experience with Android development, I have a good working knowledge of Kotlin, server-side Java, client-side JavaScript and the HTML5/CSS3 stack, and some rudimentary knowledge of Go, Ruby, Python, and shell scripting.
I advocate for Test Driven Development to reduce the costs and risks of delivering changes while giving confidence to teams that their software is working. I believe working software and comprehensive documentation aren’t incompatible; I advocate for documentation as soon as possible to shake out issues with developer ergonomics and save a costly refactor later on. I have contributed to developer tooling and have experience with configuring continuous integration on various platforms including GitHub Actions, Azure DevOps, and Jenkins. I am interested in user testing to detect defects with usability, especially accessibility.
I am an experienced writer, storyteller, and public speaker. I have written & presented several well-received conference talks. I have taken the lead in writing documentation ranging from legally-required architecture documents to internal articles & developer tutorials. I write a personal blog, and have also contributed articles to the Zühlke blog and a book compiled by Zühlke colleagues.
As a consultant I have worked with and coached teams delivering software using scrum and Kanban models, and have regularly run well-received retrospectives.
In addition to being a native English speaker, I can speak and read French to GCSE level, can speak some basic German, and can understand some limited Turkish.
Career History
- Expert Software Engineer, Zühlke (July 2015—date)
- Designing and building well-engineered software solutions for demanding clients, and coaching them to improve their processes and development practices.
- Teaching Assistant, Queen Mary, University of London (September 2014—March 2015)
- Part time demonstration/lab work for three undergraduate modules. This involved supervising labs, marking work, and mentoring students.
- Associate Developer, ServiceNow (UK) (July 2013—June 2014)
- Application development for internal systems and features shipped to customers. Industrial placement as part of my degree.
References are available on request.
Conference talks
I have presented several well-received talks at technology conferences and meetups throughout Europe. Please see the Conference Talks page for more details.
- Optional? Considered Harmful? (lightning talk for iOSDevUK 11, 2023)
Optional
s aren’t bad by themselves, but are easily misunderstood and misapplied. You must understand them to use them properly, lest you end up with a crash caused by a force-unwrap operator where it shouldn’t be. Let’s look under the hood and see how Swift’sOptional
works, and then see some simple hygiene tips to make your code safer and easier to understand. Slides available here.- We live in a society (2021 et seq.)
- As practitioners of software, the overwhelming majority of us build software that becomes part of the fabric of our society—be that a simple CRUD hotel booking application, or some cutting-edge machine learning recommendations algorithm. All of these things have effects and consequences on our communities.
- So You Can Sleep At Night… ethics in software engineering (2017-2019)
- In a post-truth world where we entrust our identities to faceless advertising companies, how can we be ethical software developers? Co-written and presented with Steve Freeman.
- Sausages, Antennagate and Brexit - an introduction to building accessible apps (2017-2019)
- An unconventional look at how we build apps to be accessible, using the social model of disability.
Articles
- If you like it then you shouldn’t put some code in it. Part of Machines, Code, People, published 2019
Education
Queen Mary, University of London (2011—2015): First Class Honours, BSc Computer Science (with Industrial Experience).