Skip to content

Instantly share code, notes, and snippets.

View johnnymo87's full-sized avatar

Jonathan Mohrbacher johnnymo87

View GitHub Profile
@johnnymo87
johnnymo87 / OpenAIsFinancialSituation.md
Last active December 10, 2025 17:03
A summary of Zvi Mowshowitz's analysis on OpenAI's financial situation (Nov-Dec 2025)

OpenAI's Financial Situation

Your brother mentioned hearing OpenAI isn't turning a profit. Here's what Zvi has written:

OpenAI's Losses and Cash Burn

From AI #133: America Could Use More Energy (Sep 11, 2025):

"OpenAI is now projecting that it will burn $115 billion (!) on cash between now and 2029, about $80 billion higher than previously expected."

@johnnymo87
johnnymo87 / gist:11759a58ceb104d6cd627f573cb77b6e
Last active December 10, 2025 17:02
Zvi Mowshowitz's analysis of Gemini 3 vs ChatGPT 5.1 vs Claude Opus 4.5 (Nov-Dec 2025)

Zvi's Take on Gemini 3 vs ChatGPT 5.1 (Nov-Dec 2025)

A summary of Zvi Mowshowitz's AI analysis for someone asking about the Tom's Guide "Gemini 3 vs ChatGPT 5.1" comparison article.


On Gemini 3 Pro

Zvi's headline: "Gemini 3 Pro Is a Vast Intelligence With No Spine"

@johnnymo87
johnnymo87 / madge_concatenator.bash
Created June 25, 2025 18:46
Concatenates code files output from `madge` into a single output file.
#!/usr/bin/env bash
: <<'END'
Script Name: madge_concatenator.sh
Purpose:
This script uses 'madge' to find all dependencies for a given TypeScript/JavaScript
entry file, and then concatenates all found files into a single output file.
The output file will contain the absolute file paths and contents of each code file,
separated by a delimiter (```). This is useful for providing a large codebase
@johnnymo87
johnnymo87 / my-setup.md
Created June 19, 2025 22:37
My experience setting up `google_workspace_mcp`

Step 1

  • Create OAuth 2.0 credentials (web application) in Google Cloud Console
  • Navigate to APIs & Services > Credentials, then click Create Credentials > OAuth client ID.
  • Select the appropriate application type (Web application) and configure any necessary settings like redirect URIs or JavaScript origins.

Step 2

@johnnymo87
johnnymo87 / breaking-into-software-engineering-in-2025.md
Last active June 6, 2025 21:56
Breaking into software engineering in 2025

Below is a 2025-focused playbook you can share with newcomers who want to “get their hands into a big code-base, learn fast, and land that first dev role.” In short: open-source is still the best proving ground, but the on-ramp is very different from when you broke in (2014). Cloud dev environments, Discord communities, AI pair-programmers, and funded mentorships mean you can contribute product-grade code in hours—not weeks—and get real humans vouching for you along the way.


1 Find projects that welcome newcomers

1.1 Use “Good First Issue” aggregators

  • goodfirstissues.com surfaces beginner-friendly tickets across thousands of repos; filters by language and topic ([goodfirstissues.com][1])
  • GitHub’s built-in good-first-issue topic now lists ~2 000 actively maintained repos, many from Microsoft, Mozilla, and Kubernetes ([github.com][2])
@johnnymo87
johnnymo87 / print-offsets.bash
Last active September 18, 2024 20:57
Kafka Partition End Offset Checker
#!/usr/bin/env bash
# Kafka Partition End Offset Checker
# ==================================
#
# This script queries a Kafka cluster to retrieve the end offset information for all partitions
# of a specified topic. It provides the log end offset for each partition, which represents
# the offset where the next message would be appended.
#
# Usage:
@johnnymo87
johnnymo87 / guide.md
Created August 13, 2024 19:43
Setting up a Ruby on Rails app on Mac OS X
@johnnymo87
johnnymo87 / Skipping-kafka-messages.md
Last active August 9, 2024 10:02
A guide about using the `kafka-consumer-groups` CLI to skip stuck kafka messages

What's a stuck message?

FES consumes events from the fes-async-in and the sts-delivery-tracking-events kafka event streams. The latter has never posed a problem, so this document is geared to talk about the former. Regarding fes-async-in, our order management systems send and receive kafka messages through it to communicate with our fulfillment management system. Prior to the solution, we in FMS would occasionally receive a kafka message that we couldn’t consume due to a bug, bad data, etc. When this happened, our kafka consumer tried this message again and again, literally forever. This “just try again” policy is great for transient errors, such as database locking. However, it's a problem if this error isn’t transient, as all other messages behind it are now blocked and will never be processed. This is what we call a "stuck message".

Inspired by this Uber blog post, we wrote [special "punt" code](https://github.com/blueapron/fulfillment-engine/pull

@johnnymo87
johnnymo87 / code_concatenator.bash
Last active July 7, 2025 20:02
Concatenates code files from directories and their subdirectories into a single output file.
#!/usr/bin/env bash
: <<'END'
Script Name: code_concatenator.bash
Purpose:
This script is designed to concatenate all code files within specified directories
and their subdirectories, or specified individual files, into a single output file.
The output file will contain the file paths and contents of each code file,
separated by a delimiter (```). This script is particularly useful for preparing
@johnnymo87
johnnymo87 / compress_photos.bash
Last active April 16, 2024 13:10
Photo compression script to compress directory images under 25MB total
#!/usr/bin/env bash
: <<'END'
Script Name: compress_photos.bash
Purpose:
This script is designed to compress a directory of photos to ensure the total
size is under a specified limit (25 MB by default). It's particularly useful
for preparing image files for platforms with strict upload size limits or for
optimizing storage. The script iterates over a set of image files, applying