# Lonely in Tech ## An engineer's story --- count: false # Lonely in Tech ## A ~~engineer's~~ teacher's story --- count: false # Lonely in Tech ## A ~~engineer's~~ ~~teacher's~~ manager's story --- count: false # Lonely in Tech ## A ~~engineer's~~ ~~teacher's~~ ~~manager's~~ Programmer's Story --- class: middle, center #### I want to remember what makes me me -- #### I want to figure out a narrative because my story is important -- #### I want to talk about how I got here --- class: middle, center **Disclaimer**: This talk may be a bit self-indulgent. I uhh .. got pretty emotional writing the talk. I have spoken publicly many times (teaching) but not given a conf talk before! So we'll see how this goes. --- ## `#introductions` .headshot[![headshot](https://redlinernotes.com/images/headshot.jpg)] ### Hi, I'm Brit -- So here are some things about me... --- class: center #### Hi, I'm Brit ##### My partner of 10 years, Norma, is amazing .norma[![norma](./town-con/norma.jpg)] --- class: center #### Hi, I'm Brit ##### I love our dogs like crazy .full-image[![puppers](town-con/blissed-out.jpg)] --- class: center #### Hi, I'm Brit ##### But really though... .sm-image[![jurgen-beach](./town-con/jurgen-beach.jpg)] --- class: center ## `jurgen` .image[![dancing](./town-con/dancing-with-jurgen.png)] -- It has been two months to the day since Jurgen died. --- class: center #### Hi, I'm Brit ##### We adopted a muppet .image[![mila](town-con/mila_puppet.jpg)] --- class: center #### Hi, I'm Brit ##### I love skateboarding .mid-image.left[![skating](town-con/skating.jpg)] -- It was the first thing I learned to love even if I wasn't good at it. --- class: center #### Hi, I'm Brit ##### I love Unattainable Earth .sm-image.left[![milosz](town-con/unattainable-earth.jpg)] -- One thing about me is "there is always a Milosz quote, even if it is Oscar not Czeslaw". -- The quote for the last 24 hours has been: `To wait for faith in order to be able to pray is to put the cart before the horse. Our way leads from the physical to the spiritual.` -- Another coming up as I write the talk, crying, and lightly edited: `I learned early that language docs not adhere to what we really are ... And every one of my efforts to say something realended the same way, by my being driven back to the enclosure of form, as if I were a sheep straying from the flock.` --- class: center #### Hi, I'm Brit ##### I love electronic music .image[![records](town-con/records.jpg)] --- class: middle, center #### Dangit, did I mess this up again? Let's try one more time... --- ## `#introductions` .headshot[![avatar](https://sbom.tilde.website/accounts/avatars/000/023/343/original/70df96ebb1ac63c3.png)] ### Hi, I'm ~kingcons -- So here are some things about me... --- class: center #### Hi, I'm ~kingcons ##### I `<3` common lisp .image[![lisp](town-con/lisp.jpg)] --- class: center #### Hi, I'm ~kingcons ##### I enjoy trying to make "readable" programs .image[![6502](town-con/cl-6502.png)] --- class: center #### Hi, I'm ~kingcons ##### I like NES emulators for some reason .image[![clones](town-con/clones-sprites.png)] --- class: center #### Hi, I'm ~kingcons ##### And I've had fun making some static site generators .image[![coleslaw](town-con/coleslaw.jpeg)] -- ##### And am working on another... .image[![collards](town-con/collards.png)] --- ### So, How did I get here? -- * Worked with ~vilmibm at CMGd -- * Taught for a few years at The Iron Yard -- * Became an Engineering Manager at Calendly -- ... Hang on a second. --- class: middle, center #### Dangit, did I mess this up again? Let's try one more time... --- ### So, How did I get here? Cut to me circa 2005 at a liberal arts school, fucking with Linux. -- .sm-image.left[![open-source](town-con/open-source.jpeg)] -- `Let me go out on a limb and suggest that those who see hints of a new class ideology developing around information technology are not nec- essarily wild-eyed.` -- Lol. -- `“Bit-twiddlers” are neither exactly proletariat nor bourgeoisie. They may not own the means of production in the sense that Marx argued, but they certainly do have significant control over those means, in a more profound way than the term “symbols analysts” or “knowledge workers” captures. As a rough generalization, they value science and technological problem-solving elegance equally at least with profit.` --- ### So, How did I get here? Cut to me circa 2008 after finding out dad had Stage 4 cancer, trying to teach myself to program. I am 22: -- .mid-image.left[![sicp](town-con/sicp.jpg)] -- `Thus, programs should be written for people to read, and only incidentally for machines to execute.` --- ### So, How did I get here? Cut to me circa 2011 graduating and going to work for a silly media company hacking Django/Python. --- count: false ### So, How did I get here? They had these ... tea time things though. People would give talks. .mid-image.left[![nate](town-con/nate.png)] --- count: false ### So, How did I get here? Sometimes they were very good. .image.left[![scifi](town-con/scifi.png)] --- count: false ### So, How did I get here? Very, _very_ good. -- .image.left[![think](town-con/think-big.png)] --- class: middle, center #### But predictably that great place didn't work out. -- #### I mean, it was a fucking Media company. -- .large[🤷] --- class: middle, center But it was great. -- I mean, y'all, it was really great. -- .image[![reunion](town-con/cmg-reunion.jpg)] -- Something really _happened_ there. --- class: middle, center And that wasn't the last time I found a special place. -- But it still feels unique. I have rarely been so happy and so _seen_. -- But I moved on from there and some other wonderful things did happen. --- #### I taught .image[![ironyard](town-con/iron-yard-crew.jpg)] --- #### A few times, actually .image[![flatiron](town-con/flatiron.jpg)] -- If you're inclined to try it, you definitely should. --- class: middle, center But now I've been working from home for 5 years and y'all it _fucking sucks_. -- My home is great. Seeing Norma and the dogs more is great. -- But I miss my community. -- That has been super hard. --- class: middle, center ### Okay. HOW DID I GET HERE? --- Ah, but this is how I got here. -- Isn't it? -- The point of the computers started changing. -- And suddenly, the question started becoming how can I find community. -- How can I build community? -- And what do I believe in about how we use these machines? -- What do I _want_ from computers? --- I've thought a lot about what I want from computers. What I believe about them. -- Part of the reason I've started working on a site generator is to write it all down. -- I thought about going to grad school for a while. But programs were about type theory, or proving programs correct, or making them faster, or making them scale more. Which is just tech industry line go up bullshit as far as I'm concerned. --- class: middle, center ##### So what do you believe in? --- #### Things I _Believe_ > Thus, programs should be written for people to read, and only incidentally for machines to execute. - _Gerald Sussman_, **SICP** -- > If a system is to serve the creative spirit, it must be entirely comprehensible to a single individual. - _Dan Ingalls_, **Design Principles Behind Smalltalk** -- > Reading things teaches people how to write. Analogous, if we are to place programming at the same fundamental level, using a program should teach how it works. But we don't see this. - _Tony-Garnock Jones_, birdsite -- > All software is an exercise in power dynamics. -- I've been toying with a name that encompasses these beliefs for me. Even if I can't yet build a thing that remotely embodies the name. I've been calling it "Inside Out" software. -- And there are people doing awesome work, maybe ask me later about gtoolkit or dynamicland or inkandswitch. Or, hell, the greatness of a [translucentweb.site](https://translucentweb.site) --- I lied, ask me more after, but I wanted to include a taste of the challenge I've recently encountered from reading about [dynamicland]. -- I think the core of the challenge is that I came into computing assuming access to source code is transformative but there is lots of evidence that isn't true. They said some things that moved me: -- > Source code in a git repo is not open to everyone. It’s open to the > select class of people who know what it means to clone a git repo. -- and > Realtalk is just one component of a culture, and downloading source > code does not download values, norms, practices, and tacit knowledge. > We intend the culture to spread in a manner similar to scientific > practices, trades and crafts, martial arts, spoken language, and so on > — in-person immersion in a community of practice, teachers teaching > teachers. This will take time, and it may appear that Realtalk is > “exclusive” during that time. But open-source software is also > exclusive, to those who find meaning in source code. And those people > already seem well-provided for. -- Separating the artifact that was built from the thing that happened in the world is a falsehood. I still haven't internalized what to do with that. --- Okay. So I've been working on a thing. And I thought the thing would be the point of this talk. -- The more talk I've written, the less sure I am that the thing even matters. -- But I came a long way, so I think I should talk a little about the thing. --- ### Collards So I'm building a static site generator. Again. -- In lisp. Again. -- And I'm doing it because I really want to share myself more openly on the web. -- Kind of like I'm doing today, just on a website. -- Ironically, HTML and CSS are things I have not learned terribly well. -- Also ironically, I did not use my new software for these slides. (But it does support generating them, it just was faster to bang these out manually.) --- ### Collards #### Goals -- * Support custom pages written in Lispy DSLs for HTML + JS * ([spinneret](https://github.com/ruricolist/spinneret/blob/master/README.md) and [parenscript](https://parenscript.common-lisp.dev/)) -- * Easy linking / wikilinking across content types. * E.g. `[[page:jurgen]]` or `[[post:clones-faq]]` -- * Support generating "collection" pages for tags, years, etc. -- * Be well tested and well documented! CI builds, etc. * gabor melis has written some great stuff I lean on with [try](https://melisgl.github.io/mgl-pax-world/try-manual.html) and [pax](https://melisgl.github.io/mgl-pax-world/pax-manual.html) * See also: https://git.sr.ht/~kingcons/lisp-template -- * Screw a plugin system, we do not need one. -- * Have CLI tools builtin -- * Use the filesystem for routing (the normal ssg thing) -- * User-created "content types" or collections relatively painless -- * Write "pretty" code 😅 -- --- ### Current status -- * Basic criteria above satisfied, with tests. -- * Current (leaf) content types: * Content: `post`, `page` * Collections: `recent`, `tag`, `year` -- * Docs are kind of half-there. No narrative or overhead view. * See: [collards.kingcons.io](https://collards.kingcons.io) -- * `collards build` command is done. TODO: `serve`, `help`, `setup`, `write`, etc -- * Personal site not yet ported to collards. * Blocker: Figuring out nginx url rewriting for blog subdomain. * Blocker: Figuring out how to integrate git annex for static assets. * A quick `du -h` check shows image assets for this talk are ~30M -- * I should probably give a _really brief_ demo of the app on a site repo, huh? --- ### Design Source Code: https://git.sr.ht/~kingcons/collards -- There's one interesting uhh .. personal quirk here. `JOURNAL.md` -- And the makefile is kind of nice. -- We should maybe briefly look at the defsystem / `collards.asd` * Explain what the dependencies are for. There aren't many. -- Let's have a look further via [collards.kingcons.io](https://collards.kingcons.io) Note that we can jump to the source via the links to the left of objects in the API. --- ### Next Steps There's plenty in the TODO file but building a `serve` command and some docs are probably highest on my list. And porting my _actual_ website to collards and then **overhauling it** and writing. where I left off on that front a few days back is templating and styling concerns for the basic content, especially the "Recent Posts" page which is unimplemented. Then I can do new, exciting pages, not backwards compat. -- I have rapidly arrived at the point where what I'm excited about, what I care about, is putting all my silly thoughts on the web. I care about these things too much to keep them to myself. I do not have the answers and I don't have to. I can [normalise sharing scrappy fiddles](https://www.todepond.com/wikiblogarden/scrappy-fiddles/sharing/normalising/live/). -- With any luck, that's what is next. --- ### Conclusions To borrow from Halt and Catch Fire (dope show if you haven't seen it, be patient with it): -- "Computers aren't the thing. They are the thing that gets us to the thing." - Joe -- and "The project brings us to the People." - Donna -- The things I've most enjoyed were community focused, were relational, were technical work that led to me knowing myself and others better. -- I guess if anything, I want to encourage us to remain ever becoming. -- I want us to keep sharing strange and beautiful things. -- May the town be town. --- class: middle, center Still here? Awwwkward. --- class: middle, center Well, we should end with a Milosz quote. There is always a Milosz quote. Remember? --- class: middle, center > _To find my home in one sentence, concise as if hammered in metal, > not to enchant anybody, not to earn a lasting name in posterity, > an unnamed need for order, for rhythm, for form, which three words > are opposed to chaos and nothingness._ --- class: middle, center # Thank you <3 ##### Any questions?