Skip to content

Commit

Permalink
update talks page, add podcasts, add media page, ai page, and speaker…
Browse files Browse the repository at this point in the history
… rider
  • Loading branch information
hazelweakly committed Nov 18, 2024
1 parent b5cb66f commit 7f42f2e
Show file tree
Hide file tree
Showing 16 changed files with 393 additions and 1 deletion.
35 changes: 35 additions & 0 deletions justfile
Original file line number Diff line number Diff line change
Expand Up @@ -50,3 +50,38 @@ post title:
date: $(date '+%F')
---
EOF
podcast title:
#!/usr/bin/env bash
set -euo pipefail
slug="$(echo "{{ title }}" | iconv -t ascii//TRANSLIT | sed -r s/[^a-zA-Z0-9]+/-/g | sed -r s/^-+\|-+$//g | tr A-Z a-z)"
cat <<EOF > ./src/podcasts/"$slug".md
---
title: "{{ title }}"
event:
date: $(date '+%F')
abstract: |
event_site:
talk_page:
video:
audio:
---
EOF
talk eventdate:
#!/usr/bin/env bash
set -euo pipefail
slug="$(echo "{{ eventdate }}" | iconv -t ascii//TRANSLIT | sed -r s/[^a-zA-Z0-9]+/-/g | sed -r s/^-+\|-+$//g | tr A-Z a-z)"
cat <<EOF > ./src/talks/"$slug".md
---
title: ""
event:
location:
date: $(date '+%F')
abstract: |
slides:
talk_page:
event_site:
video:
---
EOF
14 changes: 14 additions & 0 deletions src/_meta/transforms.js
Original file line number Diff line number Diff line change
Expand Up @@ -276,6 +276,14 @@ rules.hr = (tokens, idx, options, env, self) =>
: self.renderToken(tokens, idx, options)) +
`</div>`;

const blockquote_open = rules.blockquote_open;
rules.blockquote_open = (tokens, idx, options, env, self) => {
tokens[idx].attrJoin("class", "flow");
return blockquote_open
? blockquote_open(tokens, idx, options, env, self)
: self.renderToken(tokens, idx, options);
};

async function imageShortcode(src, alt, sizes) {
const metadata = await Image(src, {
widths: [300, 600],
Expand Down Expand Up @@ -340,6 +348,11 @@ const footerPages = (api) => pages(api).filter((p) => !!p?.data?.footer);
const talks = (api) =>
api.getFilteredByTag("talk").sort((a, b) => +a?.data?.date - +b?.data?.date);

const podcasts = (api) =>
api
.getFilteredByTag("podcast")
.sort((a, b) => +a?.data?.date - +b?.data?.date);

export default {
markdownLibrary,
before: { generateCSS },
Expand All @@ -361,5 +374,6 @@ export default {
headerPages,
footerPages,
talks,
podcasts,
},
};
22 changes: 22 additions & 0 deletions src/pages/ai.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
---
title: Hazel on AI Usage
eleventyExcludeFromCollections: true
---

Nothing on this website, on my blog more generally, or any of my writings are written by an AI tool.
My talks are not AI, my posts on social media are not AI, my word are not AI.
If you see it by me on the internet, it was 100% non-GMO organically junk-food-fed written by yours truly.
I like being the voice behind my content, I like that everything I write is recognizable as "my voice", and I consider that to be one of the most valuable aspects of my writing process.

Now, it's _possible_ that I might eventually create a demo to show you what AI content does, or what it looks like, in which case it will be clearly marked with "I WROTE THIS WITH AI" or something to that effect.
Sometimes playing with things are fun, and I love teaching others, so it makes sense that I might eventually end up teaching people about AI.
But, as of now, I have no plans to do that.

I don't have a newsletter yet, but if I did, it also wouldn't be AI.
I mean, seriously, I don't even use tools to cross-post between platforms yet; all of my posts that appear both on bluesky and mastodon are literally manually copied over.
That... I'll probably get around to fixing eventually, mostly in the interest of saving time, but in an opt-in fashion, y'know?

Anyways, if I wrote it, it's coming straight from my brain, no filter, no generation.
You're welcome! I think?

PS: [Check out The `/ai` manifesto](https://www.bydamo.la/p/ai-manifesto) to learn more about why this page exists.
70 changes: 70 additions & 0 deletions src/pages/media.njk
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
---
title: Media Listing
order: 3
eleventyImport:
collections: ["talks", "podcasts"]
---

<h2 id="talks" tabindex="-1">
<a class="header-anchor" href="#talks">
<span>Talks</span>
</a>
</h2>

<ul class="flow flow-5">
{% for talk in collections.talks | reverse %}

<li class="bordered-box flow flow-2">
<p>
<a href="{{ talk.url }}" class="font-heading text-3">{{ talk.data.title }}</a>
</p>

<div class="cluster no-gutter">
<a href="{{ talk.data.event_site }}">{{ talk.data.event }}</a>
<time class="italic" datetime="{{ talk.date.toISOString() }}">{{ talk.date | postDate }}</time>
</div>

<div class="cluster">
{% if talk.data.slides %}<a href="{{ talk.data.slides | toAbsoluteUrl }}">Slides</a>{% endif %}

{% if talk.data.video %}<a href="{{ talk.data.video }}">Video</a>{% endif %}

{% if talk.data.talk_page %}<a href="{{ talk.data.talk_page }}">Program Page</a>{% endif %}
</div>
</li>

{%- endfor %}
</ul>

<h2 id="podcasts" tabindex="-1">
<a class="header-anchor" href="#podcasts">
<span>Podcasts</span>
</a>
</h2>

<ul class="flow flow-5">
{% for podcast in collections.podcasts | reverse %}

<li class="bordered-box flow flow-2">
<p>
<a href="{{ podcast.url }}" class="font-heading text-3">{{ podcast.data.title }}</a>
</p>

<div class="cluster no-gutter">
<a href="{{ podcast.data.event_site }}">{{ podcast.data.event }}</a>
<time class="italic" datetime="{{ podcast.date.toISOString() }}">{{ podcast.date | postDate }}</time>
</div>

<div class="cluster">
{% if podcast.data.slides %}<a href="{{ podcast.data.slides | toAbsoluteUrl }}">Slides</a>{% endif %}

{% if podcast.data.video %}<a href="{{ podcast.data.video }}">Video</a>{% endif %}

{% if podcast.data.audio %}<a href="{{ podcast.data.audio }}">Audio</a>{% endif %}

{% if podcast.data.talk_page %}<a href="{{ podcast.data.talk_page }}">Program Page</a>{% endif %}
</div>
</li>

{%- endfor %}
</ul>
111 changes: 111 additions & 0 deletions src/pages/speaker-rider.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
---
title: Speaker Rider
order: 6
---

## Intro

Hey there! I'm looking forward to speaking at your event, I really am.
I have thoughts, lots of thoughts, they never stop thinking, and they never stop thunking.
I love sharing information, I love growing communities, and I love inspiring others; nothing makes me happier than being able to see the smile on another person's face as the magic clicks for the first time.
That said: I have some requirements and standards for accepting an offered speaking slot, or engaging in any promotion for an event (including on social media, such as LinkedIn, Mastodon, or Bluesky).

> Note: I reserve the right to be a little flexible on some of the requirements if I'm particularly excited about a conference; I also understand the tightness of budgets today, particularly for conferences that prioritize practicioner talks and that do not recieve significant corporate sponsorship.
>
> This doesn't apply to the diversity requirements: while not every conference can afford an honorarium, making space for marginalized identities is [free as in basic-human-decency](https://en.wiktionary.org/wiki/free_as_in_beer).
## Code of Conduct

Your event must have an explicitly-defined, enforced Code of Conduct linked publicly on your event's website, preferably as a top-level menu item.
It should include a clear, readable description of what behavior is and is not acceptable, as well as at least one way for someone to report a violation.
A paragraph of legalese buried in the Terms of Use is not sufficient to meet this requirement.

If you're looking for inspiration, the [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/master/code-of-conduct.md) is a great place to start, and the Haskell Foundation provides a well thought out set of [Guidelines for Respectful Communication](https://haskell.foundation/guidelines-for-respectful-communication/).

## Speaker Diversity

Across your entire event, there must be adequate representation of races, gender identities, expressions, and abilities.
The exact requirements fluctuate a bit based on the size of the event, but generally, at least 30% of your total speaker lineup should be people who are not able-bodied cisgender white men.
I would strongly prefer not to see singular representation (i.e., only one Black speaker), and I would strongly prefer not to see a fully abled speaker lineup.
Making room for new speakers is also important to me; I want to see at least one slot reserved for a person who is not already well-known on the speaking circuit.

For panels, Birds of a Feather, or any other speaking arrangement consisting of three or more people on stage at a time, there must be at least one speaker who is not a cisgender white male.
All male or all white speaking groups are not acceptable.

I strongly prefer events that clearly communicate each speaker's pronouns, both on the conference website and on badges.

## Accessibility

All areas of the event (including any auxiliary events like official after-parties or co-located events) must be accessible to those who require mobility aids, including stages.

Captioning must be provided, ideally live by a trained professional.
If there is absolutely no other option, auto-generated captioning is not the greatest but will suffice.

Additionally, I am Deaf. Surprise!
Here's a few things that pertain to me, personally:

- While I don't need an interpreter, the captioning is necessary. Otherwise I simply will not understand anything that is said during a talk.
- If you want me to answer Q&A questions, I need either captioning of the questions, or I will answer them privately after the talk in the hallway (if I can).
- Please understand, my hearing relies very heavily on being able to guess words by knowing various linguistic quirks. Consequently, any accent that is not western american english (read: "hollywood neutral") is _very_ difficult for me to understand; I do my best, but if an auto-captioning system can't figure it out, I can't either.

For more information on how to make the event more accessible to me, there is a fairly comprehensive list of [Deaf and hard of hearing best practices](https://contribute.cncf.io/accessibility/deaf-and-hard-of-hearing/conference-best-practices/) made by the CNCF Deaf and Hard of Hearing working group (which I participate in).

## Costs for Speakers

No part of the cost of speaking at your event should lie with the speaker.
Despite this not being a primary aspect of my job, my employer will _sometimes_ cover airfare and hotel for an event, if the conference theme or attendee demographic is one that aligns with their goals.
If your event will not be covered by my employer, you must cover a hotel near the conference venue, airfare (preferably on Alaska Airlines or one of their partner airlines, as I do have status with them), and transportation between the airport and the hotel.
Regardless of whether or not my employer covers the cost of my appearance at your event, you must provide me with a full pass for the event.

If your event is a significant time zone change from me (US Pacific time), I do ask that my arrival flight be booked to arrive a day or two before my speaking slot.

## Speaking Fees and Honorariums

Speaking at events like yours is not a large part of my job; I enjoy it tremendously, but it takes a significant amount of energy out of my personal life to do so.
As such, I significantly prioritize events where a speaking fee or honorarium is provided.

I am flexible here as I understand honorariums may be difficult logistically and I believe in building and supporting communities.
I also understand this is especially true for non-profits, community events, or events where the cost of attending is heavily reduced.

For large-scale, corporate events where the organizing company stands to make a profit, or private internal corporate events: in both of these cases, my fee is negotiable based on the size of the event and whether or not I am a keynote speaker.

For smaller events, such as non-profits or educational institutions, I may choose to waive my speaking fee, or ask that any honorarium be instead donated to a non-profit that supports civil rights on my behalf.

## Intellectual Property

You may record or stream my event, but I retain ownership over the content of the talk and the right to give the talk at other events at my discretion.
If you record or stream a presentation, ensure that it is captioned.
Recordings cannot be paywalled (unless I give express, written permission, such as if you have paid me for a private corporate event or if you have a time-delayed paywall).
Additionally, I reserve the right to ask that any recording, audio or video, as well as my likeness, be taken down at any point in the future for any reason of my choosing.

You may not, for _any_ reason, use my photo, voice, or any piece of my presentation to mint an NFT.

## Location Policies

Your event must be held in a location that is safe for gay and transgender people to attend.
This is non-negotiable.

Your event should be held in a location that is supportive of women's reproductive rights and of all LGBTQI+ people's right to privacy and equality.
I _may_ elect to speak at events in unsupportive locations, though in such situations I am more likely to give talks the importance of diversity in open source communities.

## Cancellations

Cancelling a speaking engagement is something I try very, very hard to avoid; so far, I have fortunately never had to do so.
That said, the ongoing global pandemic means that a cancellation is more likely than ever before.
In the case of a viral surge, either globally or locally, as a result of a new variant or not, I reserve the right to pull out of your event for my own safety and the safety of others.
I also reserve the right to pull out of attending an event in person should sudden and unavoidable circumstances make it prohibitively unsafe to attend.
In that case, I will make my best effort to offer a remote presentation.
If that is not possible and it is appropriate to do so, I may suggest an alternate speaker take my slot.

## Contacting Me

Want to have me speak?
Awesome! Reach out to me via [email](mailto:[email protected]) with the name, dates, location, and website for your event, as well as any confirmed speakers and an idea of what you want me to talk about.
(You can also reach out via one of the nifty options on my [contact me](/contact) page).
If your event fits into the corporate events category, please also include your speaker budget.

Thank you! I look forward to working with you!

---

This Speaker's Rider was derived from and inspired by the riders of [Kat Cosgrove](https://github.com/katcosgrove/katcosgrove/blob/main/speaking.md), and [Aeva Black](https://aeva.online/media/speaker-rider/).
2 changes: 1 addition & 1 deletion src/pages/talks.njk
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Talks
order: 3
eleventyExcludeFromCollections: true
eleventyImport:
collections: ["talks"]
---
Expand Down
10 changes: 10 additions & 0 deletions src/podcasts/choose-your-own-adventure-manager-director-or-ic.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
title: "Choose Your Own Adventure: Manager, Director, or IC"
event: Day Two DevOps
date: 2024-04-24
abstract: |
What makes for a good manager, director, and independent contributor (IC), and how do you figure out which is the best fit for you? Hazel Weakly has had a whirlwind tour of all three and is ready to share her insight into each. We talk about the skill set needed for each, and figuring out what you’re good at versus what you’re world class at. We dive into her experience of effectively growing headcount (spoiler: no, return to office isn’t necessary). Plus we cover how to learn soft skills like empathy, the ability to ground yourself in stressful situations, and building adaptive capacity into your schedule.
event_site: https://packetpushers.net/podcasts/day-two-devops/
talk_page: https://packetpushers.net/podcasts/day-two-devops/d2c241-choose-your-own-adventure-manager-director-or-ic/
audio: https://packetpushers.net/podcasts/day-two-devops/d2c241-choose-your-own-adventure-manager-director-or-ic/
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
---
title: "Creating tech tools for humans – Interview with Hazel Weakly"
event: Compose Podcast
date: 2024-11-17
abstract: |
An interview with Hazel Weakly, a software developer, platform engineer, and advocate for building more humane technological ecosystems.
We start by discussing Hazel’s motivations behind a recent blog post calling for a more human-centered approach to technology.
The conversation explores themes like the role of AI, the impact of algorithmic bias, and the commodification of online interaction, which Hazel views as eroding genuine human connection.
This transitions into a discussion about how to create alternatives, including social networks and developer tools, such as programming languages.
Hazel contrasts the philosophies behind Rust and Haskell, emphasizing Rust’s balance between safety, usability, and developer experience.
She articulates her broader vision for technology—creating tools that enable collective actualization, where individuals and communities are empowered to achieve more than they imagined possible.
event_site: https://timclicks.dev/compose-podcast
talk_page: https://timclicks.dev/podcast/creating-tech-tools-for-humans-interview-with-hazel-weakly
video: https://www.youtube.com/watch?v=0VE6-7gs7Bg&list=PLwtLEJr-BkXZlcpHAA2Gnaowd72byussy&index=1
audio: https://timclicks.dev/podcast/creating-tech-tools-for-humans-interview-with-hazel-weakly
---
13 changes: 13 additions & 0 deletions src/podcasts/developer-productivity-it-s-not-speed-vs-quality.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
title: "Developer productivity: It's not speed vs quality"
event: Level-Up Podcast
date: 2023-09-20
abstract: |
Hazel Weakly explores what it takes to iron out a people-first approach for platform teams.
By focusing on building effective teams, streamlined infrastructure systems, and the proper set of tools and automation, Hazel has helped multiple companies improve how they build their products.
She knows how to strike the balance between the social and the technical.
event_site: https://www.opslevel.com/podcasts
talk_page: https://www.opslevel.com/podcasts/developer-productivity-its-not-speed-vs-quality
video: https://www.youtube.com/watch?v=m0sN3mqmiEo
audio: https://www.opslevel.com/podcasts/developer-productivity-its-not-speed-vs-quality
---
10 changes: 10 additions & 0 deletions src/podcasts/humans-of-reliability-get-to-know-hazel-weakly.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
title: "Humans of Reliability: Get to know Hazel Weakly"
event: Humans of Reliability
date: 2024-05-22
abstract: |
Behind every reliable software system, there are human beings working hard to keep it online. Get to know them here!
event_site: https://rootly.com/humans-of-reliability
talk_page: https://rootly.com/humans-of-reliability/hazel-weakly
video: https://www.youtube.com/watch?v=xlvp1nt43OY
---
5 changes: 5 additions & 0 deletions src/podcasts/podcasts.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"layout": "talk.html",
"tags": "podcast",
"permalink": "/podcast/{{ page.fileSlug }}/"
}
16 changes: 16 additions & 0 deletions src/podcasts/software-development-as-collective-learning.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
title: "Software Development As Collective Learning With Hazel Weakly"
event: The Beautiful Mess
date: 2024-04-28
abstract: |
> Back in late February, Tom Kerwin and I wrote a post titled How Capable Leaders Navigate Uncertainty and Ambiguity. The post listed 18 competencies—things like Accept We are Part of the Problem and Blend Diverse Perspectives—along with sample questions you could ask yourself or someone else to reflect on each competency.
>
> A couple of days later, Hazel Weakly shared a deeply introspective post in which she used our post as the basis for a personal retrospective. I, like many others on LinkedIn, was completely blown away by the depth and thoughtfulness of the post.
>
> In this episode, we talk about Hazel’s journey from individual force multiplier to focusing on collaborative learning and scaling that up. We talk about emergence and systems, developer productivity, architecture as a catalyst for coherent autonomy, migrations, being Done, Done Done, Done Done Done, and how being explicit about values, culture, and collaboration enables more graceful and continuous change. We end by discussing how leaders can’t wait for outcomes to introspect and get feedback (hence Hazel doing that deep dive personal retrospective).
>
> -- John Cutler
event_site: https://cutlefish.substack.com/
talk_page: https://cutlefish.substack.com/p/software-development-as-collective
audio: https://cutlefish.substack.com/p/software-development-as-collective
---
Loading

0 comments on commit 7f42f2e

Please sign in to comment.