Mackenzie Morgan

Well, that's a Friday

This past Friday, I spoke at Code Beam America, and The Quaker World was published. I haven’t spoken at many conferences in the last decade. I did the Elixir Wizards one virtually last year, and this is the first time in person since 2011. It’s just a surprising coincidence that the book was published the same day. I wrote that chapter two years ago!

Tips & Tools for Learning Spanish

I’ve studied a silly number of languages in my life, starting with Spanish from age 6 to 14. I returned to studying Spanish in 2017, when I was working with an Argentine client. We spoke primarily in English (I was far too rusty for the alternative), but I quickly became frustrated with not knowing how to speak in the past tense in Spanish. I hurriedly crammed “yo …é, tú …aste, él …ó” into my head and tried to keep up.

Byzantine Easter

Like much of Pittsburgh, I am ethnically Rusyn. I was raised mostly Roman Catholic (because my dad is). At Easter, though, I always attended Holy Ghost Byzantine Catholic Church, where my mom’s family belongs. Byzantine Catholics have very different Easter traditions than many other Christians, but I didn’t notice until I experienced culture shock the time we took our basket to be blessed at the Roman Catholic parish where I grew up, and my basket was decidedly different from the others.

How's the Gender Ratio?

I recently completed a job hunt. I was a lot more intentional this time about having a list of questions to ask the companies I was interviewing with. I highly recommend Key Values for generating a list of questions to ask. They explain why they’re worded the way they are, too. I did ask one thing in a way they didn’t suggest, though. Diversity, equity, and inclusion (DEI) is a hot topic, and I know that asking specifically with those words is likely to get me a canned answer.

Advent of Code 2021

In general, I regard myself as pretty bad at algorithms. I’m comfortable enough doing the Elixir track on Exercism (that’s how I learned Elixir), and I’ve used HackerRank some, but the reason I used HackerRank was because TripleByte said algorithms were my weak point. (It said architecture was my strong suit, and I’m quite pleased with that, as I did put effort into improving on that front.) I really dislike white boarding in job interviews (both because of the nerves factor and because the problems are usually totally unrelated to the job) and so much prefer take-homes.

Pretty Waterfalls in Honeycomb for an Absinthe app

When first setting up the Absinthe app I work on, someone added OpenCensus Honeycomb package. The way it was set up was very basic: each top-level query had tracing attached. :object queries do field :getStuff, :stuff do meta :trace, true arg :input, :string resolve &Resolver.stuff_resolver/3 end end This got us information on how long each query took, so we could see which query needed to be optimized and do some debugging when performance issues hit.

Reusable Django Admin Filters

It’s fairly common to have a many-to-many connection to a User model. But sometimes, you have a lot of users in that table. Problem 1: relations to large tables are unwieldy If we let the Django Admin load every single user into the dropdown in the Django Admin, it’s unusable. The dropdowns are too long. The page takes too long to load. We need to filter it in advance. Dig around a bit online, and you’ll find some code of this form:

How to Network

Maybe you’re about to graduate, just graduated, or have been teaching yourself to code for the last few years, and you don’t know how to get your foot in the door with that first job. You see all those “entry-level” jobs that expect a year or three of experience. Networking is incredibly important, especially if you don’t have any professional experience in the tech industry yet. We’ve all heard it: “it’s not what you know; it’s who you know.

Elixir Wizards Talk: "Dealing With a Monster Ecto Query"

Last month, I spoke at the first-ever Elixir Wizards Conference. It was a lightning talk walking through a refactor I did before the 2020 US Presidential Election, titled “Dealing With a Monster Ecto Query.” I work for a news company, so the presidential election is a huge deal; we can’t have downtime. I knew which query was our bottleneck, so I optimized it right before the election. This took advantage of a few Elixir features, like atoms, the pin operator, and concurrency primitives.

Quakers & Forced Assimilation of Native Americans

Quakers were heavily involved in the forced-assimilation of Native Americans. Today, through the Friends Committee on National Legislation (the Quaker lobbyist), we advocate for Native rights and Native sovereignty. FCNL employs Portia Kay^nthos Skenandore-Wheelock, a member of the Oneida Nation to run its Native American Congressional Advocacy Program. It was previously run by Kerri Colfer of the Tlingit Nation, and before that Lacina Tangnaqudo Onco of the Shinnecock & Kiowa Nations.