Skip to content

Instantly share code, notes, and snippets.

View erudenko's full-sized avatar

Jack Rudenko erudenko

View GitHub Profile
@erudenko
erudenko / README.md
Created March 5, 2026 14:36
LLM Speed Benchmark: 6 Models, OpenRouter vs Direct API — via claudish + Claude Code

LLM Speed Benchmark: 6 Models, OpenRouter vs Direct API

A practical speed benchmark comparing 6 frontier coding LLMs on the same task, routed through claudish — an open-source proxy that lets Claude Code use any AI model.

Each model is tested via two routes: OpenRouter (proxy) and the provider's native Direct API.

What We Tested

Task: Generate a TypeScript function parseQueryParams — parse URL query parameters into Record<string, string>, handling edge cases (missing values, duplicate keys, encoded characters), with JSDoc.

@erudenko
erudenko / README.md
Created March 5, 2026 02:16
LLM Speed Benchmark: 6 Models, OpenRouter vs Direct API — claudish + Claude Code

LLM Speed Benchmark: 6 Models, OpenRouter vs Direct API

A practical speed benchmark comparing 6 frontier coding LLMs on the same task, routed through claudish — an open-source proxy that lets Claude Code use any AI model.

Each model is tested via two routes: OpenRouter (proxy) and the provider's native Direct API.

What We Tested

Task: Generate a TypeScript function parseQueryParams — parse URL query parameters into Record<string, string>, handling edge cases (missing values, duplicate keys, encoded characters), with JSDoc.

@erudenko
erudenko / task.md
Created August 22, 2025 06:35
golang event bus task short

Golang Interview Task: Event Bus with Middleware Support

Problem Statement

Design and implement an event-driven messaging system in Go that supports middleware processing, similar to middleware patterns found in web frameworks like Express.js or Gin.

Core Requirements

Build an event bus system that allows:

  1. Event Registration: Subscribe handlers to named events
  2. Middleware Pipeline: Process events through middleware before reaching handlers
@erudenko
erudenko / README.md
Last active August 25, 2025 08:59
golang interview task

Golang Interview Task: Event Bus with Middleware Support

Problem Statement

Design and implement an event-driven messaging system in Go that supports middleware processing, similar to middleware patterns found in web frameworks like Express.js or Gin.

Core Requirements

Build an event bus system that allows:

  1. Event Registration: Subscribe handlers to named events
  2. Middleware Pipeline: Process events through middleware before reaching handlers
@erudenko
erudenko / test.md
Last active March 9, 2026 08:48
task

Task: Build a mini event system with middleware support (like Express middleware).

class EventBus {
  // Implement:
  // - on(event, handler)
  // - use(middleware) - middleware can modify event data
 // - emit(event, data)
@erudenko
erudenko / errorfile.kt
Created May 2, 2025 06:34
errorfile.kt
import android.os.Bundle
import android.util.Log
import androidx.appcompat.app.AppCompatActivity
import kotlinx.coroutines.*
class Repository {
private var cache: MutableList<String>? = null
fun addToCache(item: String) {
cache!!.add(item)
@erudenko
erudenko / CodeWithErrors.cs
Created May 2, 2025 06:08
CodeWithErrors.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace InterviewTest
{
public class OrderService
{
private static List<Order> _orders = new List<Order>();
@erudenko
erudenko / SearchResult.tsx
Last active May 7, 2025 07:13
SearchResult.tsx
import { useEffect, useState } from 'react';
interface Props {
query: string;
title: string;
}
export const BadComponent = ({ query, title }: Props) => {
const [results, setResults] = useState<string[]>([]);
const [capitalised, setCapitalised] = useState('');
@erudenko
erudenko / weather.tsx
Created April 25, 2025 05:07
WeatherWidget example
import { useState } from 'react';
export const WeatherWidget = ({ city }: { city: string }) => {
const [temp, setTemp] = useState<number | null>(null);
fetch(`/api/weather?city=${city}`)
.then(r => r.json())
.then(data => setTemp(data.temp));
if (temp === null) return <p>Loading…</p>;
@erudenko
erudenko / elevator.md
Last active April 23, 2025 04:21
elevator task

The Broken Elevator

Scenario: You’re testing a building’s elevator system. There are 10 floors, and the elevator should stop at all floors when buttons are pressed.

Problem:

  • You press the buttons for floors 3, 5, and 7. The elevator stops at 3 and 7, but skips 5.
  • You press buttons 2, 4, and 6. It stops at 2 and 6, but skips 4.
  • Now you press 1, 8, and 9. It stops at 1 and 9, but skips 8.