# Dr. Mark Padgham (@mpadge.eu)

Profile: https://sifa.id/p/mpadge.eu
Headline: Open-source software developer. Createor of urbananalyst.city Former lead of software peer-review at rOpenSci
Location: Münster, North Rhine-Westphalia, Germany

## About

Lead developer of [UrbanAnalyst.city](https://urbananalyst.city) and former software Peer Review Lead at [rOpenSci](https://ropensci.org). Multi-disciplinary research scientist, software developer, and educator with background in physics \& mathematics, and Ph.D. in theoretical ecology. Years of experience teaching, researching, and developing open-source software, along with professional qualifications in education.

My personal website is [mpadge.eu](https://mpadge.eu).

## Career

- **Open-source software developer at Urban Analyst** (2022 - Present)
  Contract
  I am the founding developer of [UrbanAnalyst.city](https://UrbanAnalyst.city), a platform for comprehensive analyses of, and statistical comparisons between, cities throughout the world. The platform draws on a very large and broadly-used [suite of software](https://github.com/UrbanAnalyst), and aims to become a benchmark source for analysis and comparison of cities around the world.
  
  Funding for this work has been provided through the German Government's [Prototype Fund](https://prototypefund.de) to enhance "social tech" innovation for Germany. Urban Analyst was funded in Rounds [12](https://www.prototypefund.de/projects/urban-transport-analyst-uta) and [14](https://www.prototypefund.de/projects/urban-analyst).
- **Lead of Software Peer-Review at rOpenSci** (2025 - Sep 2026)
  Full-time · Remote
  I lad [software peer-review](https://ropensci.org/software-review) at [rOpenSci](https://ropensci.org), involving managing an editorial team of professional volunteers, and developing and maintaining a comprehensive [suite of automation tools]((https://github.com/ropensci-review-tools)) to ease and guide the review process.
  
  Beyond the day-to-day development and maintenance tasks, this role involved extensive and ongoing collaboration with a range of stakeholders across a broad range of academic disciplines. Most importantly, this role also required me to lead the transition of rOpenSci towards sustainable community maintenance, a task which required constant community engagement and consultation in order to consolidate and refine all processes and knowledge inherent to sustaining rOpenSci as an open, community-based organization.
- **Software Research Scientist at rOpenSci** (2019 - 2024)
  Full-time · Remote
  I was initially employed at [rOpenSci](https://ropensci.org) to lead the expansion of the scope of software peer review to encompass explicitly statistical software. The expansion to statistical software involved developing methodologies and routines for assessing all aspects of the broadest possible range of modern statistical algorithms, and for using these assessments to construct and inform an effective system for peer-review. The major outcome of this work was rOpenSci's [statistical software development guide](https://stats-devguide.ropensci.org), of which I was lead author.
- **Open Source Software Developer at R Consortium** (2022 - 2023)
  Contract · Remote
  I led a project funded by the R Consortium to develop a universal client for accessing and managing research data. The [`deposits`](https://docs.ropensci.org/deposits) package provides a unified interface for depositing and accessing research data in a variety of online deposition services. A great deal of work in this project involved developing extensive documentation reflecting a diverse range of entry points, envisioned users, and use-cases of the software. Although developed as an R package, much of the mechanisms of [`deposits`](https://docs.ropensci.org/deposits) were programmed to be as language-agnostic as possible.
- **Expert Advisor at World Health Organization** (2017 - 2019)
  Contract · Remote
  Expert advisor and research consultant for the World Health Organization (WHO)'s Urban Health Initiative. This contract was offered in acknowledgement of my globally prominent role in developing and promoting open-source software for complex statistical analyses of complex spatial systems.  The work involved the development of a pilot web platform for the cities of Accra, Ghana, and Kathmandu, Nepal, to aid transitions away from the negative health effects of automobile dependence and congestion, and towards increased walking and cycling. Both of these pilot cities have neither the resources nor data typically enjoyed by cities of the global north, and this work has greatly fostered the ability of my software to generate useful and accurate statistical and geospatial analysis in the absence of the kinds of data otherwise presumed necessary.
- **Research Scientist and Lecturer at University of Salzburg** (2014 - 2019)
  Full-time · Salzburg, State of Salzburg, AT · On-site
  Responsibilities included collaborating on and ultimately devising and leading large research projects on analyses of complex urban systems. This work fostered the initial development of much of the software listed at the outset of this document. The position also involved devising and delivering teaching materials, primarily for graduate-level courses in geoinformatics. Courses taught included:
  
  \- _Spatial Predictive Analyses_, a dual-language course in python and R intended to empower students to make informed choices of language and computational environment.
  \- _Statistical Methods for the Analysis of Geospatial Data_, in which I taught a module on why spatial statistics did or may not have transformed into spatial data science the way that statistics transformed into data science.
  \- _Advanced Research Methods_, with particular emphases on histories of philosophies of science, and the transformations of understandings of "research" over the past century or so.
  \- _Open Street Map_ for Urban Analyses (colloquium)
  
  I also gave numerous presentations of my research and software at conferences and workshops throughout the world.

## Projects

- **Urban Analyst** — https://urbananalyst.city
  I created [all of the software](https://github.com/UrbanAnalyst) that powers the [Urban Analyst platform](https://urbananalyst.city). Key components of this software include:
  
  \- [osmdata](https://docs.ropensci.org/osmdata), a peer-reviewed package for extracting and processing data from [Open Street Map](https://openstreetmap.org), and converting to various spatial formats.
  \- [dodgr](https://urbananalyst.github.io/dodgr/) (**D**istances **O**n **D**irected **g**raphs in **R**), for efficient calculation of many-to-many pairwise distances on dual-weighted directed graphs, for aggregation of flows throughout networks, and for highly realistic routing through street networks.
  \- [gtrsrouter](https://urbananalyst.github.io/gtfsrouter/) for for public transport routing with [GTFS (General Transit Feed Specification)](https://developers.google.com/transit/gtfs/) data.
   \- [m4ra](https://urbananalyst.github.io/m4ra/), a **M**any-to-**M**any **M**ulti-**M**odal **R**outing **A**ggregator, for hyper-efficient calculation of travel times using any combinations of multiple transport modes.
  \- [spatialcluster](https://urbananalyst.github.io/spatialcluster/) for spatially-constrained clustering in R.

## Talks & sessions

### [Ask a human first](https://sifa.id/p/mpadge.eu/talk/ask-a-human-first-3n26nfxp7r22s)
_open-source developers, open-source communities_
Open-source communities have [been disappearing](https://mpadge.eu/coding-alone.html) for several years. AI accelerates that by encouraging working in isolation. For open-source software to survive, we need to re-connect communities. I describe the principles of [my "askfirst" software](https://github.com/mpadge/askfirst) which enables developers to broadcast to AI-coding systems that they should be directly contacted by users of those systems to help improve their code. Tools like these will play an important role in ensuring the ongoing sustainability of open-source communities.
- Oct 2026 · Presenter · Virtual
### [The (aggregated) history of every R package ever](https://sifa.id/p/mpadge.eu/talk/the-aggregated-history-of-every-r-package-ever-3n26ttfsnis2s)
_20 min · developers, maintainers of software distribution systems_
[CRAN](https://cran.r-project.org) represents and curates a complex software ecosystem of over 25,000 packages. This ecosystem constantly evolves as packages are submitted, updated, and archived. We analysed the development of CRAN over its entire lifetime, both in terms of package inter-dependencies and the internal structures of every version of every package. These analyses used the "[pkgstats](https://docs.ropensci.org/pkgstats)" tool for static code analysis, developed by [rOpenSci](https://ropensci.org), to analyse the statistical properties of every version of every CRAN package. Statistics measured by "[pkgstats](https://docs.ropensci.org/pkgstats)" include metadata on authorship and licenses; message translations; numbers of files, functions, lines of code, and lines of documentation; analyses of function calls both within a package and to functions defined in external packages; package dependency networks; and many other aspects. All of these statistics were analysed both over the entirety of CRAN on every day of its evolution, and on every package across sequential releases. Results reveal a contrast between the collective evolution of CRAN, and the evolution of individual packages. The CRAN ecosystem is becoming less stable because of an increasing dominance of new packages, yet this is counter-balanced by an increase in stability through individual packages becoming more mature. Balancing these confounding effects emerges as a key aspect of maintaining the stability of the complex software ecosystem of CRAN.
- useR 2026 Conference Warsaw · Jul 2026 · Warsaw, Mazovia, Poland · Presenter · In person
### [Cities as Stores](https://sifa.id/p/mpadge.eu/talk/cities-as-stores-3n26msm3t722s)
_45 min · Advanced research students_
Cities are complex evolving systems. This talk outlines future visions for spatial analysis software in which data on relationships have equal primacy to data on objects. The talk weaves as example narrative and shows how software I have co-developed can be used to explore evolving relationships alongside spatial structures.
### [rOpenSci Statistical Software Peer Review: The importance and challenge of community engagement](https://sifa.id/p/mpadge.eu/talk/ropensci-statistical-software-peer-review-the-importance-and-3n26tzhfjtc2s)
_20 min · Open-source community managers_
Research software is commonly developed by an internal "core" set of people, and often funded by grants with defined end dates. Research software which survives often does so through being adopted and maintained by broader communities beyond that initial core. Community engagement is thus vital to the success of research software. rOpenSci is an organization dedicated to "*Transforming science through open data, software & reproducibility*," and does so through actively nurturing a large and diverse community of research software authors and users. One of our primary activities is peer review for software in the R computer language, which has been running for almost 10 years. A recent large, multi-year project expanded the scope of peer review to include statistical software, the primary focus of the R language itself. This project was led and coordinated by our own core set of rOpenSci people, resulting in a comprehensive system for documenting and assessing statistical software. As with research software, we will best ensure the long-term survival and relevance of our system through fostering a transition towards community-led maintenance. This talk will describe challenges and successes in our efforts to engage and expand our community to support our statistical software system, and will draw important parallels with the abiding importance of community engagement in research software development.

## Publications

- Distributed Git — mpadge.eu (Nov 2026) https://mpadge.eu/blog/git-push.html
- Coding Alone — mpadge.eu (Oct 2026) https://mpadge.eu/blog/coding-alone.html
- Machina machista — mpadge.eu (Jul 2026) https://mpadge.eu/blog/machina-machista.html
- Purposeful joy — mpadge.eu (Jun 2026) https://mpadge.eu/blog/purposeful-joy.html
- Our goodpractice Package Has New Superpowers (Jun 2026) https://doi.org/10.59350/3ne4y-5sk72
- Our goodpractice Package Has New Superpowers (Jun 2026) https://doi.org/10.59350/rewme-gqw34
- Centralisation, reversibility, and restarting — mpadge.eu (May 2026) https://mpadge.eu/blog/centralisation-reversibility.html
- rOpenSci Dev Guide 1.0.0: Trilingual and Improved (Mar 2026) https://doi.org/10.59350/60wvh-txg60
- rOpenSci Dev Guide 1.0.0: Trilingual and Improved (Mar 2026) https://doi.org/10.59350/pthhe-b9v52
- rOpenSci Dev Guide 1.0.0: Trilingüe y mejorada (Mar 2026) https://doi.org/10.59350/1w49x-qhy32
- rOpenSci Dev Guide 1.0.0: Trilingüe y mejorada (Mar 2026) https://doi.org/10.59350/5e9pe-sym61
- Software Review in the Era of AI: What We Are Testing at rOpenSci (Feb 2026) https://doi.org/10.59350/n5tbn-k8a34
- Software Review in the Era of AI: What We Are Testing at rOpenSci (Feb 2026) https://doi.org/10.59350/5tavw-mke71
- Revisión anual del código de conducta de rOpenSci (Jan 2026) https://doi.org/10.59350/v3pk5-hh440
- Revisión anual del código de conducta de rOpenSci (Jan 2026) https://doi.org/10.59350/r9x9s-48721
- rOpenSci Code of Conduct Annual Review (Jan 2026) https://doi.org/10.59350/medx5-c3v86
- rOpenSci Code of Conduct Annual Review (Jan 2026) https://doi.org/10.59350/pexpd-yeq47
- Reporte de Transparencia del Código de Conducta de rOpenSci 2025 (Jan 2026) https://doi.org/10.59350/vwhmp-28h41
- rOpenSci 2025 Code of Conduct Transparency Report (Jan 2026) https://doi.org/10.59350/0tzeg-ysa53
- rOpenSci 2025 Code of Conduct Transparency Report (Jan 2026) https://doi.org/10.59350/men1g-apf59
- Reporte de Transparencia del Código de Conducta de rOpenSci 2025 (Jan 2026) https://doi.org/10.59350/624yh-m5p12
- Code Hosting Options Beyond GitHub (Dec 2025) https://doi.org/10.59350/r1sk4-46v92
- Code Hosting Options Beyond GitHub (Dec 2025) https://doi.org/10.59350/bhr5x-d3429
- rOpenSci Code of Conduct Committee Templates (Sep 2025) https://doi.org/10.59350/j0vp2-dg610
- rOpenSci Code of Conduct Committee Templates (Sep 2025) https://doi.org/10.59350/z2bg8-jv863
- Help Us Design a New Git(Hub) Organizational Dashboard (Sep 2025) https://doi.org/10.59350/fa54c-v4n44
- Help Us Design a New Git(Hub) Organizational Dashboard (Sep 2025) https://doi.org/10.59350/w7bka-f4m47
- rOpenSci Champions Second Cohort: Projects Wrap-Up (Sep 2025) https://doi.org/10.59350/5ydy7-pdp91
- rOpenSci Champions Second Cohort: Projects Wrap-Up (Sep 2025) https://doi.org/10.59350/tjhdn-1k809
- Announcing New Stats Software Peer Review Editors: Emi Tanaka and Nima Hejazi (Jun 2025) https://doi.org/10.59350/nywk2-h09
- Announcing New Stats Software Peer Review Editors: Emi Tanaka and Nima Hejazi (Jun 2025) https://doi.org/10.59350/qt67q-04603
- rOpenSci Code of Conduct Annual Review (Mar 2025) https://doi.org/10.59350/s04cn-nya15
- rOpenSci Code of Conduct Annual Review (Mar 2025) https://doi.org/10.59350/w7zfa-jdb80
- rOpenSci 2024 Code of Conduct Transparency Report (Jan 2025) https://doi.org/10.59350/h6rzg-1a460
- rOpenSci 2024 Code of Conduct Transparency Report (Jan 2025) https://doi.org/10.59350/07njv-0w984
- Give Thanks with the allcontributors Package (Nov 2024) https://doi.org/10.59350/sx67b-fkj06
- Give Thanks with the allcontributors Package (Nov 2024) https://doi.org/10.59350/wycj6-31937
- Deposits In The Wild (Sep 2024) https://doi.org/10.59350/zdmg9-ryp97
- Deposits In The Wild (Sep 2024) https://doi.org/10.59350/v7adx-t4m39
- Announcing New Software Peer Review Editors: Beatriz Milz and Margaret Siple (Jul 2024) https://doi.org/10.59350/hgmc2-h9084
- Announcing New Software Peer Review Editors: Beatriz Milz and Margaret Siple (Jul 2024) https://doi.org/10.59350/0vkng-mxz56
- weatherOz: An API Client for Australian Weather and Climate Data Resources in R — Journal of Open Source Software (Jun 2024) https://doi.org/10.21105/joss.06717
- Communication Tips for your Open-Source Project (May 2024) https://doi.org/10.59350/8sqxt-7zp92
- Communication Tips for your Open-Source Project (May 2024) https://doi.org/10.59350/990r7-44s89
- Consejos de comunicación para tu proyecto de código abierto (May 2024) https://doi.org/10.59350/vm4tg-kwr90
- Consejos de comunicación para tu proyecto de código abierto (May 2024) https://doi.org/10.59350/z7jdn-djr52
- rOpenSci Dev Guide 0.9.0: Multilingual Now! And Better (Mar 2024) https://doi.org/10.59350/fmkfz-0rv74
- rOpenSci Dev Guide 0.9.0: Multilingual Now! And Better (Mar 2024) https://doi.org/10.59350/e9n5p-y1e66
- rOpenSci Dev Guide 0.9.0: ¡Ahora multilingüe! Y mejor (Mar 2024) https://doi.org/10.59350/sce7g-vhp14
- rOpenSci Dev Guide 0.9.0: ¡Ahora multilingüe! Y mejor (Mar 2024) https://doi.org/10.59350/3a9a6-zkb92
- rOpenSci Dev Guide 0.9.0: ¡Ahora multilingüe! Y mejor (Mar 2024) https://doi.org/10.59350/scs3t-3mr18
- rOpenSci Dev Guide 0.9.0: ¡Ahora multilingüe! Y mejor (Mar 2024) https://doi.org/10.59350/7eth8-n8a69
- rOpenSci Code of Conduct Annual Review (Mar 2024) https://doi.org/10.59350/k0q1e-gzb74
- rOpenSci Code of Conduct Annual Review (Mar 2024) https://doi.org/10.59350/t006x-hd352
- Please Shut Up! Verbosity Control in Packages (Feb 2024) https://doi.org/10.59350/bq14j-ecb02
- ¡Cállate, que me desesperas! Control de la verbosidad en los paquetes (Feb 2024) https://doi.org/10.59350/9jv2g-dvq74
- ¡Cállate, que me desesperas! Control de la verbosidad en los paquetes (Feb 2024) https://doi.org/10.59350/1d669-rs924
- Please Shut Up! Verbosity Control in Packages (Feb 2024) https://doi.org/10.59350/a7t5m-cy325
- rOpenSci 2023 Code of Conduct Transparency Report (Jan 2024) https://doi.org/10.59350/k1t8d-pem58
- rOpenSci 2023 Code of Conduct Transparency Report (Jan 2024) https://doi.org/10.59350/3yxvm-10y71
- rOpenSci 2022 Code of Conduct Transparency Report (Jan 2023) https://doi.org/10.59350/hzw64-c3f51
- rOpenSci 2022 Code of Conduct Transparency Report (Jan 2023) https://doi.org/10.59350/4zxq8-fqv06
- rOpenSci Code of Conduct Annual Review (Jan 2023) https://doi.org/10.59350/4q7xe-11e63
- rOpenSci Code of Conduct Annual Review (Jan 2023) https://doi.org/10.59350/8qfe2-vap03
- Our First Peer-Reviewed Statistical R Packages! (Nov 2022) https://doi.org/10.59350/56pyd-a0t11
- Our First Peer-Reviewed Statistical R Packages! (Nov 2022) https://doi.org/10.59350/5rba6-5gz23
- Debugging C++ code in R with a single command — mpadge.eu (Aug 2022) https://mpadge.eu/blog/r-cpp-debugging.html
- rOpenSci Code of Conduct Update (Jul 2022) https://doi.org/10.59350/rrrna-v4e34
- rOpenSci Code of Conduct Update (Jul 2022) https://doi.org/10.59350/xqsh9-q2040
- rOpenSci Dev Guide 0.8.0: Updates (Jun 2022) https://doi.org/10.59350/q18fr-d9f78
- rOpenSci Dev Guide 0.8.0: Updates (Jun 2022) https://doi.org/10.59350/73dn9-83186
- Editorial Automation: Why & How to Set Up Chat-Ops for your Own Review System on GitHub (May 2022) https://doi.org/10.59350/qp0c0-wna29
- Editorial Automation: Why & How to Set Up Chat-Ops for your Own Review System on GitHub (May 2022) https://doi.org/10.59350/qjdq2-mcm21
- pkgcheck now available as a GitHub action! (Feb 2022) https://doi.org/10.59350/ts50x-ncp16
- pkgcheck now available as a GitHub action! (Feb 2022) https://doi.org/10.59350/emyby-23443
- ¡pkgcheck ahora disponible como acción de GitHub! (Feb 2022) https://doi.org/10.59350/v2at4-pkf16
- ¡pkgcheck ahora disponible como acción de GitHub! (Feb 2022) https://doi.org/10.59350/fewjn-cx792
- Timeout on parallel jobs in R — mpadge.eu (Jan 2022) https://mpadge.eu/blog/r-parallel-timeout.html
- rOpenSci 2021 Code of Conduct Transparency Report (Jan 2022) https://doi.org/10.59350/w2fgn-c0883
- rOpenSci 2021 Code of Conduct Transparency Report (Jan 2022) https://doi.org/10.59350/q8bfn-tcn30
- rOpenSci Code of Conduct Annual Review (Jan 2022) https://doi.org/10.59350/bn1fe-67237
- rOpenSci Code of Conduct Annual Review (Jan 2022) https://doi.org/10.59350/x3j37-0jz48
- GitHub notifications from the terminal — mpadge.eu (Oct 2021) https://mpadge.eu/blog/github-terminal-notifications.html
- Set Up Your Package to Foster a Community - Community Call Summary (Apr 2021) https://doi.org/10.59350/ccbgz-xdz54
- Set Up Your Package to Foster a Community - Community Call Summary (Apr 2021) https://doi.org/10.59350/8g9x0-k3s10
- The allcontributors package — mpadge.eu (Mar 2021) https://mpadge.eu/blog/allcontributors.html
- rOpenSci Statistical Software Testing and Peer Review - Community Call Summary (Mar 2021) https://doi.org/10.59350/56twe-jy004
- rOpenSci Statistical Software Testing and Peer Review - Community Call Summary (Mar 2021) https://doi.org/10.59350/rt04v-5v083
- rOpenSci Code of Conduct Annual Review (Jan 2021) https://doi.org/10.59350/wfzk2-jj568
- rOpenSci Code of Conduct Annual Review (Jan 2021) https://doi.org/10.59350/wtctn-kjx16
- The troubles with getting help files in R — mpadge.eu (Sep 2020) https://mpadge.eu/blog/r-help-files.html
- Rectifying Hand-Drawn Marks on Maps With the mapscanner Package (Sep 2020) https://doi.org/10.59350/5m1mb-w9s32
- Rectifying Hand-Drawn Marks on Maps With the mapscanner Package (Sep 2020) https://doi.org/10.59350/vbtq6-mvx61
- Introducing Mark Padgham, rOpenSci's new Software Research Scientist (Dec 2019) https://doi.org/10.59350/t02kk-g0z34
- Introducing Mark Padgham, rOpenSci's new Software Research Scientist (Dec 2019) https://doi.org/10.59350/xka5e-fyq50
- Using RcppParallel to aggregate to a vector — mpadge.eu (Nov 2019) https://mpadge.eu/blog/rcppparallel-aggregation.html
- Github 2FA, git push, and password entry — mpadge.eu (Oct 2019) https://mpadge.eu/blog/github-2fa-push.html
- What are matrices in R? — mpadge.eu (Jul 2019) https://mpadge.eu/blog/r-matrices.html
- Calling external files from C in R — mpadge.eu (Jul 2019) https://mpadge.eu/blog/c-external-files.html
- Caching via background R processes — mpadge.eu (Jun 2019) https://mpadge.eu/blog/background-process-caching.html
- C++ templates and Rcpp — mpadge.eu (May 2019) https://mpadge.eu/blog/rcpp-cpp-templates.html
- how i made this site — mpadge.eu (May 2019) https://mpadge.eu/blog/making-this-site.html
- stats19: A package for working with open road crash data — Journal of Open Source Software (Jan 2019) https://doi.org/10.21105/joss.01181
- Where to go observe birds in Radolfzell? An answer with R and open data (Aug 2018) https://doi.org/10.59350/bjhrn-aas29
- Where to go observe birds in Radolfzell? An answer with R and open data (Aug 2018) https://doi.org/10.59350/v5stq-98m05
- bikedata — The Journal of Open Source Software (Dec 2017) https://doi.org/10.21105/joss.00471
- Data from Public Bicycle Hire Systems (Oct 2017) https://doi.org/10.59350/qwkdq-n2m15
- Data from Public Bicycle Hire Systems (Oct 2017) https://doi.org/10.59350/zcbzg-7ph15
- bomrang: Fetch Australian Government Bureau of Meteorology Data in R — The Journal of Open Source Software (Sep 2017) https://doi.org/10.21105/joss.00411

## Skills

### Technical
- Automation
- C++
- Data Integrity
- Data Science
- Next.js
- R
- Rust
- Software Engineering
- Systems Design
- Technical Documentation
- TypeScript
### Business
- Consulting
- Knowledge Management
- Software Project Management
### Interpersonal
- Research
- Teaching
- Technical Leadership
### Community
- Community Building
- Community Engagement
- Community Management
- Community Strategy
- Open Source

## Education

- **University of Melbourne** — PhD, Ecology (Doctorate) (1999 - 2003)

## Involvement

### Open Source
- rOpenSci (2019 - 2026)
  Software developer and maintainer

## Languages

- English (native)
- German (native)

## Links

- GitHub: https://github.com/mpadge (verified)
- Codeberg: https://codeberg.org
- ORCID: https://orcid.org/0000-0003-2172-5265 (verified)
- Website: https://mpadge.eu (verified)
