Skip to content

Instantly share code, notes, and snippets.

View getify's full-sized avatar
💭
Just coding

Kyle Simpson getify

💭
Just coding
View GitHub Profile

What Hiring Should Look Like

This is definitely not the first time I've written about this topic, but I haven't written formally about it in quite awhile. So I want to revisit why I think technical-position interviewing is so poorly designed, and lay out what I think would be a better process.

I'm just one guy, with a bunch of strong opinions and a bunch of flaws. So take these suggestions with a grain of salt. I'm sure there's a lot of talented, passionate folks with other thoughts, and some are probably a lot more interesting and useful than my own.

But at the same time, I hope you'll set aside the assumptions and status quo of how interviewing is always done. Just because you were hired a certain way, and even if you liked it, doesn't mean that it's a good interview process to repeat.

If you're happy with the way technical interviewing currently works at your company, fine. Just stop, don't read any further. I'm not going to spend any effort trying to convince you otherwise.

@getify
getify / 1.js
Last active August 7, 2026 17:55
JS vs Foi symbol count comparision: async IO
// note: this requires a JS library for the IO monad, for example Monio: https://github.com/getify/monio/blob/master/MONIO.md#io-monad-one-monad-to-rule-them-all
const getFavoriteMovies = userID => IO(function*(){
const movieIDs = yield fetch(`/movies/${userID}`);
const movieData = yield Promise.all(
movieIDs.map(movieID => fetch(`/movie/${movieID}`))
);
const itemsHTML = movieData.map(v => v.title)
.reduce(
(html, title) => `${html}<li>${title}</li>`,
@getify
getify / 1-setup.js
Last active June 28, 2026 16:32
find size of largest region in matrix... solutions are breadth-first iterative (2) and depth-first recursive (3)
// Adapted from: https://www.geeksforgeeks.org/find-length-largest-region-boolean-matrix/
"use strict";
var M1 = [
[ 0, 0, 1, 1, 0 ],
[ 1, 0, 1, 1, 0 ],
[ 0, 1, 0, 0, 0 ],
[ 0, 0, 0, 1, 1 ]
];
@getify
getify / ex1-prototype-style.js
Last active June 19, 2026 15:32
OLOO (objects linked to other objects) pattern explored (with comparison to the prototype style of the same code)
function Foo(who) {
this.me = who;
}
Foo.prototype.identify = function() {
return "I am " + this.me;
};
function Bar(who) {
Foo.call(this,"Bar:" + who);
@getify
getify / 1-post.md
Last active June 12, 2026 14:33
Comparing: array method chaining, generator delegations, and transducing

Comparing: array method chaining, generator delegations, and transducing

I'm writing this quick post to respond to a recent twitter conversation where claims were made about the merits (or lack thereof) of transducers, as they relate to composing list comprehensions (map, filter).

For comparison sake throughout the rest of my post, below you'll find three (actually four!) implementations of a simple list operation demo:

An Open Letter To Assholes Who Hire People

About a month ago I tweeted out some frustrations about an interview process I had gone through.

Recently interviewed with a major (global) tech company. They absolutely knew me and my background. Still tried to have me run thru multiple rounds of tech interviews.

..thread..

@getify
getify / 1.js
Last active December 19, 2025 01:28
creating hard-bound methods on classes
class Foo {
constructor(x) { this.foo = x; }
hello() { console.log(this.foo); }
}
class Bar extends Foo {
constructor(x) { super(x); this.bar = x * 100; }
world() { console.log(this.bar); }
}
@getify
getify / todoovy-preview-1.js
Last active November 10, 2025 21:10
preview of Todoovy app's code (using Monio library)
// ..
const nextTodoID = State(state => {
var todoCounter = (state.todoCounter ?? 0) + 1;
return {
value: todoCounter,
state: {
...state,
todoCounter
}
@getify
getify / 1.js
Created October 2, 2025 12:31
slide code for "Past Time For Passkeys" talk
let {
name: USER_NAME,
displayName: USER_DISPLAY_NAME,
id: USER_ID,
regChallenge: USER_REG_CHALLENGE
} = await (
fetch("/api/register-passkey",{
// ..
})
.then(resp => resp.json())
@getify
getify / 1.md
Last active September 2, 2025 12:49
In defense of using blocks to create localized scope for variables... (part 1 of 2)