Hi, I'm Peter π
I have authored and/or currently maintain hundreds of open source libraries, including many you might use (as a developer or a consumer of the internet).
Despite not being "into crypto", I was recently challenged to build a crypto scanner using React. Didn't get the job, but I am proud of the result, and you can check out the demo!
π NOTE |
---|
RubyGems.org was recently compromised in a hostile takeover about which many lies have been told. |
I'm in the process of adding warnings to some important gems because I don't condone the theft of the bundler and rubygems-update projects. |
Once publishing to gem.coop is available I will stop publishing to RubyGems.org. |
Please see here and here for more info on what comes next. |
I maintain the following RubyGems:
- appraisal-rb / appraisal2 -
- Dynamoid / dynamoid -
- galtzo-floss / flag_shih_tzu -
- galtzo-floss / sanitize_email -
- omniauth / omniauth-jwt -
- omniauth / omniauth-identity -
- rdp / os -
- ruby-oauth / oauth -
- ruby-oauth / oauth2 -
- ruby-oauth / version_gem -
- ruby-openid / omniauth-openid -
- ruby-openid / rack-openid -
- ruby-openid / ruby-openid -
- many benchmarking, rails, resque, rspec, rubocop plugins & more... (in details below)
benchmarking libraries
rails plugins
- galtzo-floss / active_security -
- galtzo-floss / activerecord-transactionable -
- galtzo-floss / activesupport-broadcast_logger -
- galtzo-floss / activesupport-logger -
- galtzo-floss / activesupport-tagged_logging -
- galtzo-floss / debug_logging -
- galtzo-floss / destination_errors -
- galtzo-floss / include_with_respect -
- galtzo-floss / seed_migration -
- galtzo-floss / shiftable -
- galtzo-floss / simple_column-scopes -
- galtzo-floss / spyke-connection_lambda -
- galtzo-floss / status_tag -
resque & queue plugins
rspec plugins & testing tools
- galtzo-floss / activerecord-tablefree -
- galtzo-floss / anonymous_active_record -
- galtzo-floss / json_schemer-fuzz -
- galtzo-floss / rspec-block_is_expected -
- galtzo-floss / rspec-pending_for -
- galtzo-floss / rspec-stubbed_env -
- galtzo-floss / silent_stream -
- galtzo-floss / timecop-rspec -
- kettle-rb / kettle-soup-cover -
rubocop plugins
Want RuboCop to have its rules explicitly configured for compatibility with the oldest version of Ruby that your library officially supports in two lines of code?
inherit_gem:
rubocop-lts: rubocop-lts.yml # for ruby + rspec
More examples for rails-specific, or non-rspec projects are at rubocop-lts.gitlab.io
If you think this is whatTargetRubyVersiondoes, you've misundertood its purpose, which is to turn off rules that are incompatible with older versions of Ruby, not to make your rules configuration compatible with a specific version of Ruby, nor to turn on Rules that would help with compatibility.
- rubocop-lts / rubocop-lts -
- rubocop-lts / rubocop-ruby1_8 -
- rubocop-lts / rubocop-ruby1_9 -
- rubocop-lts / rubocop-ruby2_0 -
- rubocop-lts / rubocop-ruby2_1 -
- rubocop-lts / rubocop-ruby2_2 -
- rubocop-lts / rubocop-ruby2_3 -
- rubocop-lts / rubocop-ruby2_4 -
- rubocop-lts / rubocop-ruby2_5 -
- rubocop-lts / rubocop-ruby2_6 -
- rubocop-lts / rubocop-ruby2_7 -
- rubocop-lts / rubocop-ruby3_0 -
- rubocop-lts / rubocop-ruby3_1 -
- rubocop-lts / rubocop-ruby3_2 -
- rubocop-lts / standard-rubocop-lts -
I'm attempting to document all of the logos for the FLOSS projects I'm involved in, with their attendant licesnses and copyrights, here: logos.galtzo.com. It has been a multi-year effort hunting down the original creators for some of these logos, and documenting the conditions under which they can be used. I'd love to hear if this is useful in your projects!
I was laid off in a March 2025 RIF, and am looking for my next sponsor and my next role.
Want to chat about open source, or any of my projects? Join my FLOSS discord.
Or join the Ruby Friends Squad on Daily.dev
Want to pay me for work? I'm available!
Thanks to all my sponsors across any of the donation platforms! Special thanks to my biggest sponsor HealthSherpa!
- List is updated frequently by my pet robot: @autobolt
- ποΈ 2025-09-22T03:02:52Z | oauth (1.1.2) | π A Ruby wrapper for the original OAuth 1.0 / 1.0a spec.
- ποΈ 2025-09-22T02:52:36Z | oauth (1.1.1) | π A Ruby wrapper for the original OAuth 1.0 / 1.0a spec.
- ποΈ 2025-09-21T11:21:48Z | oauth-tty (1.0.6) | π₯οΈ OAuth 1.0 / 1.0a TTY Command Line Interface
- ποΈ 2025-09-16T03:42:22Z | oauth2 (2.0.17) | π A Ruby wrapper for the OAuth 2.0 Authorization Framework, including the OAuth 2.1 draft spec, and OpenID Connect (OIDC)
- ποΈ 2025-09-14T21:14:19Z | oauth2 (2.0.16) | π A Ruby wrapper for the OAuth 2.0 Authorization Framework, including the OAuth 2.1 draft spec, and OpenID Connect (OIDC)
- ποΈ 2025-09-08T08:37:57Z | oauth2 (2.0.15) | π A Ruby wrapper for the OAuth 2.0 Authorization Framework, including the OAuth 2.1 draft spec, and OpenID Connect (OIDC)
- ποΈ 2025-09-05T07:59:12Z | rspec-pending_for (0.1.19) | β³οΈ Mark specs pending or skipped for specific Ruby engine (e.g. MRI or JRuby) & versions, or version ranges. Fund overlooked open source projects - bottom of stack, dev/test dependencies: floss-funding.dev
- ποΈ 2025-09-02T13:04:33Z | version_gem (1.1.9) | π Versions are good. Versions are cool. Versions will win.
- ποΈ 2025-08-31T11:39:52Z | oauth2 (2.0.14) | π A Ruby wrapper for the OAuth 2.0 Authorization Framework, including the OAuth 2.1 draft spec, and OpenID Connect (OIDC)
- ποΈ 2025-08-30T22:39:45Z | oauth2 (2.0.13) | π A Ruby wrapper for the OAuth 2.0 Authorization Framework, including the OAuth 2.1 draft spec, and OpenID Connect (OIDC)
- ποΈ 2025-08-24T21:11:05Z | rspec-pending_for (0.1.18) | β³οΈ Mark specs pending or skipped for specific Ruby engine (e.g. MRI or JRuby) & versions, or version ranges. Fund overlooked open source projects - bottom of stack, dev/test dependencies: floss-funding.dev
- ποΈ 2025-08-23T18:50:13Z | dynamoid (3.12.1) | Dynamoid is an ORM for Amazon's DynamoDB that supports offline development, associations, querying, and everything else you'd expect from an ActiveRecord-style replacement.
- ποΈ 2025-08-21T08:11:23Z | silent_stream (1.0.12) | π (formerly) ActiveSupport Kernel Reporting Detritus with a few enhancementsFund overlooked open source projects - bottom of stack, dev/test dependencies: floss-funding.dev
- ποΈ 2025-08-20T12:08:03Z | gitmoji-regex (1.0.3) | π A regular expression matching Gitmoji (a subset of Unicode Emoji) symbolsFund overlooked open source projects - bottom of stack, dev/test dependencies: floss-funding.dev
- ποΈ 2025-08-05T05:01:28Z | rspec-stubbed_env (1.0.4) | Stub or hide environment variables in a scoped context for testing stub_env('REDIS_URL' => 'redis://localhost:6379/') hide_env('SESSION_SECRET')
- List is updated frequently by my pet robot: @autobolt
- ποΈ 2025-09-18T06:30:38Z | π ANN: oauth2 v2.0.17 | π·οΈ ruby, oauth, webdev, instagram
- ποΈ 2025-09-15T11:53:14Z | π ANN: kettle-dev v1.1.20 w/ improved CHANGELOG handling | π·οΈ devtools, ruby, packaging, automation
- ποΈ 2025-09-14T23:07:29Z | π ANN: oauth2 v2.0.16 w/ full E2E example (& Instagram Compat) | π·οΈ docker, security, ruby, instagram
- ποΈ 2025-09-13T22:27:37Z | π©βπ§ How to Check License Compatibility in GHA | π·οΈ programming, opensource, githubactions, howto
- ποΈ 2025-09-12T08:18:46Z | π²ANN: awesome-sponsorships | π·οΈ opensource, webmonetization, sponsorships, programming
- ποΈ 2025-09-01T03:24:45Z | π ANN: oauth2 v2.0.14 | π·οΈ
- ποΈ 2025-08-30T23:13:42Z | π ANN: oauth2 v2.0.13 | π·οΈ webdev, ruby, oauth, opensource
- ποΈ 2025-08-27T03:39:03Z | π ANN: stone_checksums v1.0.2 | π·οΈ programming, ruby, rubygems, security
- ποΈ 2025-08-25T00:18:20Z | π ANN: kettle-dev v1, part 1 | π·οΈ opensource, ruby, tooling, webdev
- ποΈ 2025-08-22T07:55:13Z | π ANN: kettle-test v1.0.0 | π·οΈ testing, ruby, rails, devtools
- ποΈ 2025-08-09T08:37:22Z | Continuity: Moving RubyGems to Org | π·οΈ opensource
- ποΈ 2025-07-29T03:04:11Z | π ANN: omniauth-identity v3.1.4 | π·οΈ authentication, ruby, security, rails
- ποΈ 2023-10-11T17:45:00Z | Generate Gem Checksums | π·οΈ
- ποΈ 2023-04-15T06:39:00Z | RequireBench: When do you use it? | π·οΈ
- ποΈ 2022-12-17T15:13:30Z | Put the D in DVCS | π·οΈ
- π¦· I'm putting more of my focus on FLOSS efforts (of myself and others)!
and
from
- π· I build big things and small things out of tiny bits.
- β¨ Recently created
rubocop-lts
for library maintainer happiness π©ββ€οΈβπ©. - π Iβm working on finishing the migration away from TravisCI to modern CI tools.
- π± Iβm learning Svelte & SvelteKit, with Lucia, Drizzle, Zod, Inlang Paraglide, Skeleton, Tailwind, Typescript, and so many more cool tools.
- π― Preparing next release of
seed_migrations
andoauth
gems! - π€ Iβve moved my suite of Resque plugins to the Resque org!
- π« How to reach me
- π Pronouns: He/Him
- π¨οΈ I speak 3 languages fluently, and for a 4th I'm learning Bahasa Indonesia!
- π·ββοΈ I help refugees and ex-refugees in Ghanaπ¬π and Liberiaπ±π·, respectively, through Hope For Tomorrow, a Liberian NGO. DM me if interested in knowing more.
- The list is long, even in summary, see my LinkedIn.
- Open Source Contributor | MyBudgetCoach
- FLOSS Blogger | RailsBling
- FLOSS Author | RubyGems
- FLOSS Maintainer | Tidelift Enterprise OSS
- Researcher | WordTree Foundation
- Advisor | Hope For Tomorrow (Liberian NGO)