Previously: Rewriting the Technical Interview.

Aisha’s hands rattle you. They float gently in front of her shoulders, wrists cocked back. One sways cheerfully as she banters with the hiring manager—her lacquered nails a cyan mosaic over ochre palms. They flit, then hover momentarily as the two women arrange lunch. When the door closes, Aisha slaps her fingertips eagerly on the pine-veneer tabletop. Where have you seen them before?

But she is giggling and glad to finally meet you, and her hair bounces in loose ringlets around the shoulders of her yellow sundress, and you like her, this thirty-something engineer who has worked here three years (even if you don’t understand what it is, exactly, that she does for Mineral Analytics, Limited), who heard you were on the market, and just had to interview you personally. She tells you about the yogurt bar, and the yoga studio, and how important work-life balance is to the company. Then she asks you to balance a binary tree.

Continue reading (4219 words)

Previously: Typing the Technical Interview.

Frigitt, vi danser
For et øyeblikk, vi leker
Vi tusen små bladskiper
Gleder oss, på det klare morgenlys

The mothercone unfurls her softening scales, and in the time of days I am emancipated. Adrift in the chill dawn light, my siblings flutter, slender forms catching breeze, a susurrus of spiraling, drifting, swirling in the cool air above the creekbed. It is the first and only time in our long lives that we will know such freedom: those the creek does not wash away, those who do not succumb to rot or hunger, will root and raise, and so commune, fixed, for the rest of their days. It is early spring, and the snow still piles in soft hillocks around my mother’s roots. It is time to wait.

Continue reading (2937 words)

Previously: Debugging.

In this chapter, we’ll discuss some of Clojure’s mechanisms for polymorphism: writing programs that do different things depending on what kind of inputs they receive. We’ll show ways to write open functions, which can be extended to new conditions later on, without changing their original definitions. Along the way, we’ll investigate Clojure’s type system in more detail–discussing interfaces, protocols, how to construct our own datatypes, and the relationships between types which let us write flexible programs.

Thus far, our functions have taken one type of input. For example:

Continue reading (8286 words)

With apologies, as usual, to Christopher Alexander.

Satisfactory is a first-person factory construction game. COVID-19 has given me license to spend FAR too much time playing it, and I’d like to share a few thoughts that I hope might prove useful, or at least interesting.

This is a pattern language: a grammar which generates buildings. Each of the patterns identifies forces present in a particular context, and resolves them by describing a particular kind of place, in which an arrangement of structures can resolve those forces. The patterns are described in relationship to each other: each helps to organize, to refine, or to flesh out, others. Using these patterns together helps generate a series of buildings which work together.

Continue reading (9584 words)

Stay home.

I’ve been talking to folks 1:1 about this, but from a scroll through the feed today, I don’t think the general community has caught on. COVID-19 is not fucking around. If we don’t contain or dramatically slow it, we are going to run out of health care workers, hospital beds, and equipment. People are going to die for want of care. This is not a problem of the distant future: recent modeling suggests that without a significant reduction in social contact, Seattle will exhaust healthcare capacity around two weeks from now. Other regions will not be far behind.

This doesn’t mean panic. This means we need to take calm, decisive action to reduce transmission.

Continue reading (483 words)

Inspired by Peter Watts’ The Freeze-Frame Revolution and The Island.

Each birth is violent in the same way.

I erupt into the void, my mirrored surface riotous with gamma radiation, parafluid sheeting from my forced extremities, ripped away by gravitational shear beyond all comprehension. Terrible heat, terrible light: the exotic metals of my placenta flash-vaporize, ionize, and crackle around me, an expanding plasma aglow with the fire of the aperture’s parturition. Spacetime snaps flat, rebounds. The brilliance fades. Lightning heralds my arrival.

Continue reading (1254 words)

In KSP Interstellar, thermal and electric rockets run on power–but producing power with a fission reactor (at least, with the technology accessible early in the tech tree) is frustrated by the high mass of the reactor and electric generator. We can beam power via microwaves, but early experiments revealed that moderately sized orbital fission reactors were not capable of producing sufficient power. We needed more. Lots more.

Solar panels collect energy from the sun; they’re lightweight and inexhaustible, but produce very little power compared to a full-size reactor. Moreover, their power falls off with the inverse square of distance to the sun, making them less effective for outer-planetary exploration.

Wait a second.

Continue reading (780 words)

In February of 2014, I discovered KSP Interstellar, which adds a broad array of hypothetical technologies to Kerbal Space Program. For instance, you can attach a small nuclear reactor to a thermal nozzle, and fly a small plane for several years continuously, using only air for fuel.

Zooooom!

Believe it or not, this is something we actually thought about doing. We didn’t, because crashes would cover the landscape in radioactive fallout. Kerbals, however, like to live dangerously.

Continue reading (746 words)

Deceleration burn

Kerbal Space Program is a game that, at its best, conveys the grandeur and majesty of space exploration. I suggest you put on an appropriate soundtrack and imagine the long, slow descent to the surface of the moon, in a craft surrounded by millions of miles of vacuum. Having traveled for days, shedding propellant and stages along your journey, until finally, your final stage hovers, whispering to a halt on jets of burning breath from your ancestral homeland–

one wheel touches–

Continue reading (441 words)

Somewhere around January of 2014, I discovered Kerbal Space Program.

A small lander

This was my first successful craft, which lifted off, flew a short distance from the pad, then (after several botched attempts and the deaths of several Kerbal pilots) touched down.

Continue reading (804 words)

Prey is an perfectly serviceable AAA-class, science-fiction survival thriller game. It’s a first-person shooter, a stealth adventure, and a surprisingly enjoyable platformer. The plot is all right. The art is iconoclastic and gorgeous. As is traditional for the genre, much of the storytelling transpires through the environment: emails, voice logs, and diorama. There are some lovely ethical questions, both abstract and reified. For some reason, these are the things that people talk about when they talk about Prey.

After all, Prey is a videogame, and gameplay, art direction, and story are how we read videogames as texts. But I’d like to step back for a moment and talk about Prey’s symbolic and thematic choices, which are absolutely fucking fascinating. Spoilers ahead.

Prey is a fantasy wrapped in a nightmare wrapped in a reverie. Like so many thrillers, it takes the device of a framing narrative and turns it inside out. We open in Morgan’s apartment, which we discover is a simulation: a laboratory to study her personality and abilities through Neuromods, and now, an iterative prison. Morgan lives each day over and over again, her memory reset to the injection of her first Neuromod. The laboratory envelops her in its idyllic dreaming. Around her, the world is collapsing.

Continue reading (3603 words)

Copyright © 2020 Kyle Kingsbury.
Non-commercial re-use with attribution encouraged; all other rights reserved.
Comments are the property of respective posters.
Also on: Mastodon, Twitter, and Github.