Skip to content

Instantly share code, notes, and snippets.

@adamcee
adamcee / ai-plaintext-knowledge-base.md
Created March 13, 2026 01:07
A Simple Second Brain With Claude or ChatGPT

A Simple Second Brain With Claude or ChatGPT

I have been working with Claude and Claude Code and Obsidian and like many have found it a powerful combination. The real magic is in building your own "Second Brain" in plain old text (Markdown) files. Text files are easy for Claude Code or any other command-line agentic AI tool to search, read, and write to. And Obsidian is designed to help you manage all that text with beautiful two-directional links, inspired by the zettelkasten method of academic scholarship.

In Obsidian the folder all your files are in is called a 'Vault.' I've been using Claude to research, brainstorm, and design a product idea. I have it research for me online, write reports, add them to the vault, and then it and I chat and I direct it to create followup action items, reminders, implementation plans, etc.

Basically, I'm

@adamcee
adamcee / codewars-punkys-socks.js
Last active October 28, 2025 16:11
Codewars: 80s Kids #3 Punky Brewsters Socks
// PROBLEM: https://www.codewars.com/kata/5662292ee7e2da24e900012f/train/javascript
// Codewars 80s Kids #3 Punky Brewsters Socks
function getSocks(name, socks) {
let desiredSocks = [];
const sockColors = {};
const isPunky = name === 'Punky';
console.log('name is ', name);

Slide from: https://youtu.be/hJP5GqnTrNo?feature=shared&t=740

GPT-4 clearly has the capability, but the context you give it matters a lot!

We have:

  • Used “AI Thoughts”
  • Give it the context of the problem (including human generated hints)
  • Spent 6 months prompt engineering for tutoring with an emphasis on math
@adamcee
adamcee / map-filter-method-chaining-example.js
Created November 8, 2024 17:38
JS map and filter method chaining example
const fakePokemons = [
{ name: 'Charizar', type: 'fire', isCaught: true},
{ name: 'Pokemon', type: 'electric', isCaught: true},
{ name: 'Ditto', type: 'normal', isCaught: false},
{ name: 'Eevee', type: 'normal', isCaught: true},
]
/**
* Creates and returns a new object which has all the same
* properties as the poke object, but also has an `index` prop
@adamcee
adamcee / aviary.py
Created February 17, 2024 00:36
Aviary OOP example
class Aviary:
def __init__(self, name, birds=[]):
self.birds = birds
self.name = name
def add_bird(self, bird):
self.birds.append(bird)
class Bird:
aviary = Aviary("a1")
def __init__(self, name):

Whiteboarding Questions / Technical Interview Questions

The Interview Process

The interview process - approx. 3-5 interviews, approx. 1hr each. Here is a rough outline of the process. It doesn't always occur in this order and sometimes there are multiple behavioral/technical rounds.

  1. Resume screen (i.e. submitting the job application and getting past HR)
  2. Coding Challenge on leetcode or something similar
  3. Technical Interview One. It could be ... a. A technical conversation (talk about a project you've done, a technology you like, etc) b. A whiteboarding problem
  4. Technical interview Two. It could be ...
@adamcee
adamcee / dom_events_replace_images.md
Created June 16, 2022 23:41
CodePlatoon DOM Manipulation Exercise

DOM Manipulation: Replace Images

This is a walkthrough of a tutorial exercise from Eloquent Javascript

You will improve your skills at manipulating the DOM and using DOM events to execute your JS code when a button is clicked!

Review the tutorial in the link above before doing this walkthrough! They are the same : )

This is also a very practical exercise, as you will learn about the <img> element's alt attribute, which is used when the browser is unable to download there desired image, or for accessibility purposes.

  1. Create a very simple HTML page with at least three images on it.
@adamcee
adamcee / keybase.md
Created April 10, 2018 16:02
keybase.md

Keybase proof

I hereby claim:

  • I am adamcee on github.
  • I am adamcee (https://keybase.io/adamcee) on keybase.
  • I have a public key ASAuZJ2wm8u5SR7L1FvaOPax6j3Mm1uHcy4PFaYWhy-kggo

To claim this, I am signing this object:

@adamcee
adamcee / README.md
Last active March 14, 2018 20:47
Example of code to generate reducers and actions for "generic" or basic HTTP requests to GET/POST JSON data.

Example of code to generate reducers and actions for "generic" or basic HTTP requests to GET/POST JSON data. The idea is that each particular request (for user account info, for X most recent comments, etc) has its own reducer which is only responsible for tracking the state of that HTTP request and holding response data. With redux-thunk, callbacks to handle success/error states (i.e., do something with data, or, display error message to the user) can then be programmatically executed once the request has completed.

In general, I have found it useful to have reducers be small and responsible for one specific thing, and using redux-thunk to have action creator functions access data and pass it to other reducers (via actions, of course) when necessary. Thus there will be a large number of very small reducers.

This increases re-usability of code between projects (especially since everything is in a single file because of the redux ducks pattern, and uses a common set of helper/utility functions), and make