Table of contents
For easy reference, here are links to each section of this article.
In December 2024, I graduated with a Master of Arts in Interaction Design from the University of North Texas. Now that I had a chance to catch my breath, I figured it would be a good time to jot down a retrospective while the journey is still fresh in my mind.
The purpose here is twofold. Firstly, from an archival standpoint. I can eventually look back on this and refresh my own memory. But also, in an era of SEO — and wanting to be a good alumnus — this might help spread the word about the degree program. Perhaps it could be of interest to those who are considering enrolling themselves.
My experience was somewhat atypical. I started during the COVID-19 lockdown and gradually chipped away at completion as a part-time student. I also began during a spring semester, whereas most folks tend to start in the fall.
The following is a list of classes in the order I took them. All courses prefixed ADES were core curriculum, whereas others were taken as electives: INFO, LTEC, TECM.
Human-Centered Interaction Design 2 | Cassini Nazir
Interaction Design Maker Lab 1 | Brian Sullivan
I have grouped these two classes together because (when I took them) they were taught as a dyad. Homework and research from one informed the other. This involved a fair amount of reading, with proof of work in the form of sketch notes.
The semester culminated in a group project that served as the final for both classes. We worked with Walmart and Sam's Club on ideas to increase customer satisfaction and decrease shrinkage. This included several concepts: computer vision to itemize shopping carts, making bar codes more scannable, AI age verification for alcohol purchases, and strategies to deter shoplifting.
Artificial Intelligence Applications | Dr. Demetria Ennis-Cole
This was a doctoral level class that I took as an elective. I mention that because it was enlightening to have discussions with students for whom it was a core class for their PhD program. Several were career educators, interested in emerging methods of engaging with students.
We postulated applications of AI in a learning setting, such as a campus classroom or distributed university environment. Additionally, we dove deeper into various topics of our choosing. I opted to research the use of AI with robotics, and how practical applications of such tech could aid those with disabilities.
Storytelling for Information Professionals | Dr. Tonda Bone
This class revolved around studying and perfecting — or at least, attempting to improve upon — the art of storytelling. Beyond simply writing or public speaking, it was meant to connect with that tickle in the brain humans experience when a friend says:
😉 "Hey, I have a story to tell you."
It was as much about engaging audiences as presenting raw information. It forced me out of my comfort zone, because it required recording myself telling stories audibly. As someone who would rather present live than do multiple retakes to eventually get something perfect, it made me slow down to carefully measure the delivery of my words.
Data and Information Visualization and Design | Keith Owens
The crux of this class could be most succinctly described as infographics via learn-by-doing. The entire semester was highly collaborative. We individually produced several pieces per week, then critiqued each other's work during class. That feedback loop was a great way to learn what did/not resonate.
The final was split across several group projects, showing interactive presentations and defending our design choices. It was an exercise in finding the balance between visual appeal and data fidelity. aka: How do we make info digestible.
Designing Technical Documents | Dr. Erin Friess
This was one of my favorite electives, and was the first class I had with Dr. Friess. We learned about how the presentation and readability of content is fundamentally a usability concern. The curriculum covered design principles of ratio, contrast, and legibility. Assignments ranged from font-finding missions (in the real world) to redesigning materials in practical and/or purposefully inventive ways.
We used the Adobe Creative Suite — especially InDesign — but the fundamentals are applicable to any design software. I have since allowed my Adobe subscription to lapse, yet still apply the knowledge I gained when using Affinity apps. The semester culminated in a portfolio doc which included highlights from this class; plus a few others.
Foundations and Frameworks of Interaction Design | Cassini Nazir
Normally, this would be an intro to the MA program. As mentioned before, I joined during an off-beat cadence. During this semester, I toyed with ideas for additional features in LinkedIn. For example, a built-in notes feature that allows for jotting down factoids about connections: how you met, common interests, industry event attendance.
For our final group project(s), several teams of students presented their riff on what a self-driving trailer might look like. It was part of a hypothetical Toyota prototype. Instead of needing a 4x4 vehicle with a hitch, an autonomous AI-powered cargo chassis could be virtually tethered to a lead car. I prototyped what this interface might look like, within an automobile dashboard.
Measuring Usability and User Experience for Professional and Technical Communication | Dr. Erin Friess
This was another elective taught by Dr. Friess. It centered around practical application of qualitative and quantitative research methods. I became adept at using Qualtrics to create surveys and crunch the resulting data. We worked on group projects to get familiar with the process, and then produced a final solo project for the semester.
At the time, I was working for Microsoft Casual Games studio. I conducted a survey to gauge people's interest in various forms of video gaming. It uncovered that while respondents said they would prefer playing board games with friends, most of the time they end up playing video games instead.
➡️ Note:
Technically, this elective was not necessary in terms of credits. I would have enough to graduate regardless.
I was wishfully hoping I could substitute this class for ADES 5420, which would have allowed me to finish the MA a year earlier.
My idea was to free up the fall semester for the capstone class (ADES 5460 = six credits), not wanting to overload my schedule with nine total credits.
Ultimately that request was denied because core classes cannot be swapped for others. I still decided to take TECM 5750 anyway.
Human-Centered Interaction Design 1 | Omari Souza
Similar to other classes, this one had a combined group project. It involved all students in the class coauthoring a collaborative paper; approximately 30k words. We researched the relative under-representation of Black designers in the field.
This was another class taught as a dyad (with ADES 5410). Meaning, my classmates were taking both simultaneously. However, at this point I only needed one of the two core classes. The result was quite a bit of "extra" homework, so to speak.
We collectively listened to podcast episodes spanning over a decade — from Design of Business | Business of Design and Revision Path — with a total airtime duration in the hundreds of hours. We divvied up the listening work, and each distilled our findings into notes which were shared among all students.
We also did additional secondary literary research, and conducted first-party interviews with minority designers. We had the opportunity to attend a one-day State of Black Design conference hosted by UNT. For those like me — obviously not the target demographic — it grew our capacity for empathy and understanding.
For example: Being taught all the classics of art/design throughout human history originated from European aesthetics. Whereas there are myriad contributions from many different geographies and cultures, all of which can be appreciated.
Interaction Design Inception-to-Pitch Capstone Project | Brian Sullivan
Cue the song "Final Countdown." Whereas all previous courses were three credits each, this last capstone class accounted for six. As such, it involved a significant amount of effort.
At the beginning of the semester, we were told to expect at least 20 hours of homework per week. For each of the first four weeks, I read one book and wrote several essays consisting of around 5000 to 6000 words. It was essentially a mini-MBA overview, to get us thinking about the business value of our possible ideas.
Week 2:
Value Proposition Design: How to Create Products and Services Customers Want
Week 3:
Business Model Generation: A Handbook for Visionaries, Game Changers, and Challengers
Week 4:
Testing Business Ideas: A Field Guide for Rapid Experimentation
The rest of the semester shifted into a workshop mentality: proposing, presenting, and refining our respective pitches. Unlike other classes, there were no group projects. Though we did share and receive critiques, the entirety of one's capstone was a solo effort.
Our professor wanted us to focus on practical and/or aspirational ideas. More importantly, we had to articulate a logical path for execution. Based on feedback, several students pivoted away from their initial concepts and pursued alternate research topics.
It went beyond scenarios of: "Presupposing ideal conditions, then…"
Instead, we were pushed to explain: "This would only work if…"
Reframing our thought processes helped to keep us grounded. We also had to think about possible pathways to failure. For example, if an established incumbent decided to compete in a field: How would a relatively new entrant hold their ground?
Additionally, we got coaching about how to put together a compelling résumé. We were instructed to frame our job histories in terms of demonstrable impact to the business, rather than mechanically listing rote skills.
Less emphasis on: "Photoshop and Figma…"
More emphasis on: "I drove this outcome…"
We were given permission to "brag" a bit, and mention how that personally affected the bottom line. I have to admit, it felt a bit uncomfortable attempting to write with deliberate swagger. However, the result was a succinct two-page PDF that makes a strong case for employability.
At the time, I was working in the Microsoft Teams org. Ideally, I wanted my capstone to be a twofer; beneficial to my day job, while also satisfying an educational requirement. I posited a scenario in which Teams for Home had a plugin architecture. I envisioned an untapped "mass niche" consumer market could be unlocked.
I built a prototype using Panda CSS, Solid JS, TypeScript, and Vite. Wherein, I had demos of various third-party apps: soccer, ministry, charitable giving. I made the code available as open source.
Video:
https://youtu.be/HhU4oE5Ob-M
There you have it. A few years of scholastics condensed into a blog post. For me, I feel like it was a worthwhile endeavor. I know it probably seems a bit biased, given that I speak with the benefit of 20/20 hindsight. Still, I believe that I grew professionally; striving to be versatile and well-rounded.
I have always enjoyed designing, tinkering, and building things that can help people accomplish tasks in their daily lives. Prior to the MA in IXD program, I had gone all-in on the "how" and "what" but was a little light on the "why." I have since learned more thoroughly about the theory behind the practice.
Hopefully this academic summary was helpful to anyone mulling over the possibility of grad school. Not to be overly prescriptive, but if you are on the fence I would say it is at least worth investigating further. Check out the official "how to apply" page for details.
For context, here is the one-pager site from when I applied.
I would be happy to answer any questions. Feel free to reach out via my contact page.
Note: This is not prescriptive advice. It is not meant to be read as: "How to land a job at Microsoft." It simply covers my meandering path which led there, and what I have been up to since. I honestly think my experience was probably a bit of an outlier; right place, right time. But hey, we all play the cards we are dealt.
A few weeks ago, I was catching up with Nate Klaiber over Zoom when he asked me how long I have been at Microsoft. I started to say: "I am coming up on year two," then I realized: No. Actually, I am nearly at the three-year mark. Given that I originally intended to chronicle my experience after having been on the job for one year, I figured this was as good a time as any to write a recap.
So, where to begin?
Initially, I was a bit incredulous when Rob Eisenberg — whom I knew from working at InVision — pinged me about the possibility in April of 2021. I would describe it as being asked: "How would you like to be considered for the first human mission to Mars?" As cool as it sounded, I considered myself woefully unqualified. I told him he could throw my name in the hat, but honestly did not expect anything to come of it. I was generally contented working for Reaktiv at the time.
Shortly thereafter, I found myself interviewing with Darren Laybourn. He was heading up a newly formed incubation team that reported to the Office of the CTO (OCTO for short), working on special projects that could possibly become real shippable products. At the time, they were ramping up efforts for multiplayer games within Microsoft Teams calls.
Darren struck me as someone who did not take himself too seriously, but was committed to ideation and moving fast. I recall a part of our conversation went something like this.
Nathan: "So, you are currently building Teams games. How many people work on the team?"
Darren: "On any given day, probably half. Because the rest of the time we are play testing."
His jovial attitude set me at ease. I shared with him the story of Stacey King, who as an NBA rookie came off the bench and made 1/2 free throws. It just so happened to be the same evening when Michael Jordan had scored 69 points himself. King was quoted as having said this after the game.
"I will always remember this as the night that Michael Jordan and I combined to score seventy points."
— Source
I told him that I was not certain how much value I would be able to add to the team — by way of level-setting expectations — but that we could metaphorically combine our efforts to accumulate points. That must have resonated because after interviewing with a few other would-be coworkers, I was eventually offered the job.
When I initially joined, I had the opportunity to work on Microsoft Teams itself. This was due to some creative accounting, where our roles were partially funded through OCTO and the rest of the budget was covered by the Teams organization. A deal had been struck to provide two principal engineers at 50% allocation for several months, but the arrangement ended up morphing into one principal dev (me) for twice as long. That freed up another coworker who was more integral to our incubation project, whereas I was fresh on the team and more easily distributed across the two organizations.
It was an interesting induction into a large codebase. I am not at liberty to get into specifics, but suffice it to say it is one of the more complex apps I have dipped my toes into. The sheer number of feature flags being tested at any given time was staggering to think about. I know that enterprise apps tend to be the punchline of usability jokes — some of which I have made myself — but there were plenty of hardworking folks doing their level best. Teams might not be a perfect app, yet the uptake in usage has been astounding.
There was one rather humorous moment that hopefully is okay to share publicly. I had been writing up internal wiki pages, documenting how I thought things worked — as best as I could surmise by reverse engineering the existing code — and then running that by the other devs who worked full-time in the Teams org. Sometimes they would offer correction, and would occasionally say I had uncovered areas that could be refactored.
The funny incident was this. A dev from a tangential team reached out to tell me that one of my "spec" documents seemed incomplete. They wanted to schedule a chat, because they had questions about how a new feature should be implemented. During that call, I came to learn that due to the thoroughness of the documentation I had been writing — simply for my own edification, to formulate my thoughts and check for accuracy of understanding — that other devs within the Teams org had begun to circulate the URL as a resource to explain the inner workings of the functionality.
In terms of the job I was hired to do, it was a mixed bag of endeavors. Initially, the team had begun by building turn-based multiplayer games. These were written using React. That approach worked well, as long as only one player was making changes to shared game state at a time. React is "good enough" when creating interfaces that do not need to be highly performant. But I digress, we will come back to that.
In addition to refactoring and perf tuning a few existing titles, I built multiplayer video game versions of several tabletop games. Here are a few highlights.
This game is best described as 3D tic-tac-toe. Up to four players have three circular pieces of each size.
S
= SmallM
= MediumL
= LargeThis game could be won by accumulating three pieces, in a variety of arrangements: columns, rows, or diagonally.
S S S
= All smallM M M
= All mediumL L L
= All largeS M L
= AscendingL M S
= Descending^ For the ascending and descending cases, those could be achieved by stacking all three sizes in one area of the board. Meaning, concentric circles count as completion.
I partnered up with Chris Kahrs who was on another OCTO team, incubating the Bonsai AI project. The idea was to have some cross-team knowledge sharing to see what might come of it. This was an interesting foray into the fascinating world of machine learning. We ended up teaching a "Bonsai brain" how to play Otrio.
I created a Node.js version of the game, which could run with UI or headless. Chris bundled that into a Docker container, which could be deployed to Azure cloud. We eventually pitted adversarial AI playing against itself, where a previous incumbent would face a new challenger.
We realized that the AI was exhibiting a "lazy brain," in that it was settling for a tie when a win was within reach. We adjusted the weights for rewards, to further incentivize the AI to play better. I implemented action masking to aid in reinforcement learning. Eventually, the AI got to the point where if it was allowed to play the first move it was nearly impossible to beat. It exhibited a preference for playing a medium-sized piece in the center of the board, the best way to maximize options.
This is a self-deprecating, satirical "inside baseball" game about being a Microsoft employee. You could think of it a bit like Apples to Apples, but specifically for corporate America.
This game was created as a physical card deck by KC Lemson, who was one of the product managers when I joined the team. One of the first things she did was send me a set of playing cards, to welcome me to the company.
Unlike the real-world game — instead of there being one judge who picks their favorite of all the cards proposed by each player — the video game version democratized the process by allowing each player to vote. With the caveat that one could not vote for their own card.
A React version started as a hackathon project, and was where we first began to uncover concurrency issues with multiple players updating their own "participant state." These updates were triggered by users playing cards from their hand, voting for a card, and changing their vote.
Eventually, I rewrote the game in Svelte. It is a modern JavaScript framework, unincumbered by React's "virtual DOM" and state queuing update model. This worked noticeably better than when the game was first built. So much so, that we decided to move away from React for newer games going forward.
Believe it or not, until working at Microsoft I had never received a promotion. All other career progression had essentially come from being stolen away by another employer. Don't get me wrong, I have been given incremental raises. Yet at most companies where I had varying degrees of success, the paths available for promotion invariably led towards a management track. I would jokingly tell my managers: "Just pencil in that Nathan has no discernible climbing aspirations." This quote from the movie Heat says it well.
"For me, the action is the juice."
— Source
During a 1:1 chat with my manager — the aforementioned Darren Laybourn — he casually broached the subject. At first, I was worried.
Darren: "Have you checked your bank account lately?"
Nathan: "No, why. Is something wrong with direct deposit?"
Darren: "Oh, I was just wondering if your promotion has been processed."
The short of it is, he felt like I was under-leveled relative to the amount of throughput I was producing. He made the case that I should be bumped up to the next pay band tier. Though my job title "principal software engineer" remained the same, it was nice to be serendipitously recognized with a promotion for which I did not even know I was eligible.
In October of 2022, we reached a crossroads. As far as OCTO was concerned, our project had matured to the point where we had "graduated" beyond the incubation stage. It also happened to be a tumultuous time in the tech industry with many companies doing layoffs, including Microsoft. We had a re-org reduction in force, and several team members opted to disperse to other available roles within the company. Thankfully, a subset of our team landed within the Xbox organization under the banner of Microsoft Casual Games Studio (aka MCG).
In preparation for launching the app we had been incubating, we pared down the number of titles we had in progress. Sadly, neither Bedlam nor Otrio fit the "massively single-player" criteria and have since been discontinued. We had referred to the overarching app as Arcade internally but it was dubbed Games for Work when released.
The app shipped with four total games, including one I built called IceBreakers. It was the brainchild of our product manager Nadia Fortini. She had the idea to crowdsource content from fellow employees — writing a good chunk of it herself — in exchange for getting one's name in the game credits. That is honestly one of my favorite aspects of IceBreakers, the fact that so many people came together to author its many witticisms.
If you are curious, here is a Washington Post article and an official video clip.
I had first built IceBreakers using Svelte but later was convinced by my coworker Cody Lindley to try SolidJS. About two weeks into building another game using Solid, I basically said: "Dang it, you were right. Solid is objectively easier to work with than Svelte." After the launch, I rewrote IceBreakers using Solid. That is now our JavaScript framework of choice for building new apps. I also rewrote the game launcher from React to Solid as well. That resulted in an app that was not only more performant, but a codebase that was far less complicated.
Kudos to my designer coworker Cameron Cowles for doing a great job making IceBreakers feel fun and engaging. These static images don't quite do justice to the animations he cooked up. They were a bit tricky to implement but worth it in the end.
Beyond what I have already covered, here is a quick rundown of other things worth noting.
We use Vite for localhost development and builds, paired with Vitest for unit testing.
For end-to-end integration tests we use Playwright. This allows us to scale up tests with hundreds of fake users via Selenium Grid.
Recently, we have begun using Panda CSS for styling apps built in SolidJS. It is sort of "Tailwind in reverse," in that it generates class names once for each key/value pair of an object literal. Meaning, there would only ever be a single definition of something like font-weight: bold
. The result is more terse CSS file compilation than repetitious style rules.
For word lookup from within the Games for Work version of Wordament, I built a little micro site that uses the Oxford Dictionaries API. This is the same API that is used in Bing results when searching for a definition.
I have become somewhat familiar with implementing Xandr advertisements. When we eventually launch more game titles outside of Teams — which has a moratorium on in-app monetization — this will likely be an important factor.
Each of the devs on our four-person team takes a turn in the on-call rotation. This has stretched me beyond my normal UX and front-end comfort zone, occasionally jumping into telemetry logs to ascertain the cause of alerts.
We are currently working on a few things that I cannot share yet. One of my server-side dev coworkers spent the past few months building a really cool flat-file API that allows our team to make requests to JSON endpoints for potentially thousands of files. We are using it for a new in-progress game. It has the dual benefit of costing less than cloud computing, as well as being extremely fast down the wire. Plus, this means we can deploy single-page apps to CDN edge servers.
From a career standpoint, I am not exactly sure what the future holds. For now it seems that my job at Microsoft is relatively safe. It has been a blast so far, and I am glad to be somewhere that offers an individual contributor path.
If you feel so inclined, follow me on LinkedIn where I occasionally post other tidbits and updates.
Firstly, if you want to skip to the crux of it: Inclusive Design Communities is well worth your time. Read on for my personal take, and how I viewed some of the lessons through the lens of my own life experiences.
I have been following Sameera Kapila on social media since early 2013, and over the years I have enjoyed hearing her perspective on our industry. Broadly speaking: design, development, usability, etc. When I heard about her book Inclusive Design Communities, I made a mental note to check it out once it became available. Having recently finished reading it, I must say that Sam's writing is simultaneously easy and difficult to read.
Easy, in that she communicates with a certain fluidity that makes engaging with the content feel like having a natural conversation. Difficult, because it shines a light on some of my underlying assumptions around design and our collective use of exclusionary language. It can be sobering to reckon with the knowledge that something you have said in casual conversation actually has more pernicious roots. Consider the following example.
Identity is sewn into the very fabric of our language. American idioms I've heard my whole life often have a troubled past — like the term "grandfathered," which shows up in conversations from everything about phone and internet billing plans to leasing agreements and laws. It originated with the "grandfather clause," a group of statutes in the 1890s that granted voting rights to direct descendants of anyone who have been eligible to vote prior to emancipation — automatically registering white men while requiring newly enfranchised Black men to pass tests or pay poll taxes in order to vote.
(page 8)
The following are a few of the overarching themes that stuck out to me, but this list is not exhaustive. There is more quality content than I could adequately summarize.
Reading the section on microaggressions (page 10) brought to mind an interesting story that I have not shared publicly before. It was not terribly hurtful, but reinforced in my mind that some otherwise well-intentioned individuals are simply products of their environment. I will depart slightly from the book review here and share that briefly.
When I was in grad school for my MDiv, a friend's parents were visiting from out of town. I ended up dining with them at the school cafeteria one evening, where the conversation went from general pleasantries, to me opening up more specifically about my life and upbringing.
I shared that my family has the last name Smith because my dad was adopted. He was born in Japan and through a series of circumstances he and one of his sisters found themselves in the care of an American military family. My dad eventually joined the military too. As such, I grew up all over the continental United States and consider myself pretty well-rounded in exposure to its various walks of life.
All of this was conveyed to my friend's parents who seemed genuinely interested in our dinner chat. So, it came as a mild shock to me that after they had left campus, another student told me this.
When his dad heard you singing, he said to the rest of us: "Nate can carry a tune pretty well, for a Chinaman."
I was not terribly offended. Yet it struck me as an odd thing to say, considering these facts.
He knew that I am half Japanese. If you are going to use a cultural slur, at least make it accurate.
We had a conversation about me being born and raised in the US. Obviously, I am fluent in English.
I do not think he meant any harm, nor said it with malice in his heart. He probably assumed he was making a joke at my expense amongst like-minded thinkers, aka: in the safe company of other white folks. Such is the subtle nature of racism, even (especially?) good Christian people can harbor deep-seated prejudices.
But I digress. Suffice it to say that Sam gives several comparable examples that I am sure will seem familiar to anyone who has received backhanded compliments about their abilities.
Several years ago, a long-time friend and I parted ways after reaching an "agree to disagree" impasse. At the time, I lacked the vocabulary to explain to him what I meant. That is something I think back on from time to time, and regret not being able to better articulate my point.
He insisted that white privilege is not real, because he worked hard for everything he has. I was trying to help him realize that I was not accusing him of accepting a handout, rather that the metaphorical wind was in his sails whereas people who did not look (or sound) like him had to paddle upstream against the current.
Sam said it even better.
For example, every time I get coffee or tea at a shop nearby, I don't have to worry about whether I'll encounter stairs. But for someone in a wheelchair or who uses crutches after an injury, stairs are physical obstacles that put them at a disadvantage if there isn't a ramp available. In this scenario, I have privilege; the coffee shop isn't as accessible to others as it is to me.
You might find yourself feeling some level of guilt because of the privileges you have. We must confront such guilt head-on and acknowledge that it exists, rather than letting it pull us back into self-absorption and hinder us from doing the critical work of self-improvement. It isn't helpful to feed the narrative that you can't help what you were born into. Instead, understand that guilt is a powerful motivator, telling us where we have opportunities to make things better. Use your privilege (or guilt) to elevate others who have been historically marginalized and oppressed. At work, you might intervene in a tense meeting or shine light on others who get spoken over frequently, asking the interrupting party to let the other person complete their thought.
(page 21)
I have heard it said that being a good listener means more than just waiting for your turn to talk. This is something I can be guilty of, as I am occasionally — let's be honest, most of the time — too eager to throw in a one-line zinger or bad pun.
Sam outlines key tenets that are important to being an active listener. Hear what others are saying and resist the urge to interject your own opinions into what they are conveying. Also, repeat and rephrase what is being said. It helps avoid misunderstandings and shows them that you are absorbing the essence of the discussion.
This is a recurring theme in conversations with my wife. Paraphrased:
"I am telling you what happened, but that does not mean I need you to solve it for me."
Sometimes, perhaps more often than I am aware, being present in the moment is enough.
This is something I had honestly not really thought about before reading this book. Namely, that much of the curriculum offered in formal courses of design (and art) presuppose that all the best ideas stem from a particular culture and aesthetic. This is not to take away from some of the great art and design philosophies that originated in Europe, but that is a slice from the overall cross section of what humanity has to offer.
As a product of the US public education system myself, this squares with my experience. My grade school memories are foggy, but as I recall our concept of history could be summed up as: Europeans sought to colonize North America. They did. Then the colonists decided to become a country unto themselves. Oh, and we reluctantly entered the fight in World War II. You're welcome, Europe.
Sam describes her experience thusly.
At some universities or colleges, design programs exist within an art school. Students are taught how to use design software, explore foundational concepts like layout, color, and typography, and undergo periodic portfolio reviews. Like their fellow art students, design students often take drawing, painting, ceramics, photography, and art history classes. Starting around 2010, some programs added courses focusing on user interface and web design.
Art and design history classes are one of the few environments where we learn how art, design, and culture connect. In my experience, however, those history classes focus on a small aspect of art and design history: art celebrating empires, colonization, and European perspectives. The movements taught in most design programs — Modernism, Postmodernism, the Swiss Typographic Style, Gestalt, Bauhaus, and Constructivism — are all based on European culture.
(page 42)
Sam gives some examples of design beyond that scope, including a few of her favorites.
Bobby Kooka and Umesh Rao, who were responsible for Air India's branding in 1946.
The decades-long ad campaign by Amul Butter.
Stunning historical infographics by W.E.B. Du Bois.
Queer Design Club, a directory of LGBTQ+ designers around the world.
She also talks about keeping curriculum — in the form of course descriptions and required learning materials — flexible enough to adapt to new paradigm shifts in the design industry. That is, to structure a class with enough leeway to allow for updates to one's teaching workflow without having to go through reapproval due to somewhat rigid accreditation guidelines.
Additionally, she gives some great tips on how to best keep a classroom engaged. I think many of these also have applicability in conference speaking and/or communicating with coworkers as well. For example, allow time for note-taking and consider those for whom English may not be a primary language. When interpreters are involved, ensure there is adequate delay for translation. Also, make learning materials available in formats that best suit those consuming them.
I especially liked Sam's anecdotal story about being creative on her feet.
I once taught a class on HTML and CSS in which some of my students were deaf or hard of hearing due to being injured in combat overseas. The students, their interpreters, and I had to work as a team to translate HTML and CSS into plain English and American Sign Language, and vice versa. We made up a language we dubbed HTSL: HyperText Sign Language. We came up with new hand signals for some HTML tags, and they spelled out CSS lines each time, including punctuation. It may seem unconventional, but we were translating among four languages, and through our collective creativity, we made it work.
(page 51)
➡️ Aside: Whenever I give a talk, I always try to upload my slide deck a day before so that attendees can grab the PDF in advance. One time, this saved me because I forgot to bring my laptop to the venue. I ended up presenting my PDF from another speaker's computer. Phew!
Sam calls to task companies who try to blame their lack of diversity on a "pipeline problem." She points out that so much of what is attributed to a lack of viable candidates is actually businesses inadvertently putting up walls that impede others from feeling welcome to apply. Such as, hiring only for "culture fit" — Would I share a beer with this person? Do they even drink alcohol? — or insisting that applicants be rock stars or ninjas.
Or worse yet, implying that hiring someone who is unlike the rest of one's employee demographic would somehow be compromising on quality. That perpetuates an insular culture. It can be bad for business because true innovation — and hedging against unforeseen competition — often relies on a collective diversity of thought. Likewise, we need to be cognizant of the fact that "talent is equally distributed, but opportunity is not." Therefore, hiring managers ought to be willing to look anywhere and everywhere, beyond what has worked in the past.
Staffing a monoculture can have unintentional and potentially deadly consequences.
Women are 47 percent more likely to be seriously injured in a car crash than men, and 17 more likely to die. Why? Crash test dummies were built to represent average male bodies. Differences in male and female stature translate to differences in how close or far our feet are from the pedals, where the back of our car seat has support against whiplash, where seat belts cross over us, and on and on. It's not that male engineers were purposefully excluding female bodies; their implicit bias simply created a fatal oversight.
(page 73)
In addition to talking about leveling the playing field when it comes to pay, often by being more transparent about pay bands across job functions, Sam also covers what might be considered intangible perks.
Remote-first companies can attract working parents with caregiving responsibilities, those seeking a healthier work-life balance, and those with far commutes, high transportation costs, or long shift hours. Work flexibility can help keep many women in the industry who've had to quit during the pandemic to take care of their families and other dependents. At the same time, don't assume that one way of working is a catch-all. Many people like going into the office, needing in-person collaboration or a quiet setting that their workspace at home just can't provide.
(page 86)
One aspect that is huge for me is remote work. Due to my own life circumstances, I would prioritize that as one of the top factors when considering a new job. My wife had a stroke (2019) and brain surgery (2020). She has since fully recovered and is adjusted to the new "normal," but has permanent hemianopsia; 50% vision loss in the left of each eye. That leaves me as the one driving parent in our household. Many of my evenings are spent shuttling our kids to/from their various extracurricular activities.
Having worked remotely for a few years prior to the COVID-19 lockdown, I cannot imagine going back to an in-office job. Each workday from 2:45 to 3:15pm, I step away from my desk to pick up my son from elementary school. My coworkers know that is a time slot I will not be at my computer, and everyone is cool with it.
Sometimes I chat with them via Teams on my phone, while I wait for his school to release all the students. My son always runs out at full speed, trying to sneak up on me if he can. Every time, he asks me: "Hey dad, how's work?" It always brightens my day. I would not want to give that up. We work hard for our kids, but what they will remember most is the time we spent with them.
This is a common thread throughout the book, but I think it deserves a specific mention. Sam reminds those of us who benefit more from societal stereotypes — for example: "white passing, cisgender males are natural leaders," or "Asians are good at STEM" — need to speak up for others who are not given the benefit of the doubt.
The responsibility of setting a cultural tone is on company leadership, but employees at every level have the power to improve the workplace for themselves and others. Even if you can't change certain processes, you can advocate for others, ask questions, and model behavior.
(page 82)
➡️ Aside: This is a topic for which Microsoft has specific training, and as a team we tend to be pretty good about inoculating ourselves against overriding dissenting voices or misattributing ideas from marginalized people to others. To the point where we will gently rib each other, in cases where it could be interpreted that way.
I was in a meeting recently where a (female) project manager made a suggestion as to the cause of a bug. I halfway dismissed it, not on the basis of her gender, but because looking at the code I did not see how it could be the root issue. Later on, a (male) software developer suggested in a roundabout way that perhaps it could be related.
Hilarity ensued. Paraphrased:
Her: "Wait, did you just totally revisit my initial idea and restate it as your own?"
Him: "Oh, sorry. I did not realize that. But it might be worth looking into."
Me: "You know, now that he said it… Maybe it has some merit?"
Her: (jokingly) "I hate you all, you're the worst."
I then went on to genuinely apologize. I explained that the reason I had not initially given credence to her input was because I had the project on my screen and could not fathom — at that particular moment in time — how the symptoms could have stemmed from that logic path. Yet by the time my developer coworker brought it up, the notion had ruminated in my head as a possibility.
Ultimately, it ended up not being a front-end related problem but data missing from an API. Still, we were all able to pause and take stock of our interpersonal interactions. Often, the best way to diffuse the specter of conflict is to introduce humor. She rightly stood up for herself, pointing out that the rest of us were not doing our proverbial jobs as would-be allies on the team.
In addition to looking out for people within your own workplace, Sam recounts how as an instructor she encouraged professionals to help the next generation of students in their career pursuits. She reached out to practitioner peers in software design and development, inviting them to speak to her students.
I brought my advisory board members into the classroom in various capacities. Many wanted to get public speaking experience and enjoyed being able to guest lecture in my class or the department. They'd stay longer to answer questions and get to know some students by name. They'd recognize those students at meetups and continue to guide them as they prepared for graduation and their first job search. Others liked to come in for portfolio reviews, sit with students individually, and assess their résumés. This demystified so much of the working world for the students.
It benefitted the design professionals, too. Talking about their work with eager audiences rekindled their enthusiasm. They learned from students how difficult the path from school to career had become… They also saw first-hand how motivated and talented the students were, and hired many directly after graduation.
(page 112)
I had a ministry mentor who was fond of this Peter Drucker quote: "There is no success without a successor." Meaning, it does not matter what crowning achievement one accomplishes in an illustrious career, if it does not ultimately benefit those who follow in our footsteps. I appreciate that Sam showed the duality of how academia and industry influence one another. In exchange for sharing their time and expertise, those further along in their careers were able to scout talented up-and-coming individuals.
Buy this book. The end.
In all seriousness though, this was an excellent read. I would recommend it to anyone who aspires to a position of leadership, or considers oneself to be a seasoned and respected individual contributor. Though it is couched in the language of design — we all view the world from our own vantage point, so inevitably it would reflect Sam's life journey — it transcends being applicable to any single occupation.
In today's increasingly polarized social and political climate, being cruel is easy. For some, it has become almost second nature. It is base human instinct to selfishly look out for ourselves. But life is not a zero-sum game. Even if one person were to "win" by decimating everyone else, the outcome would inherently be a lonely Pyrrhic victory.
If only in the interest of our own longevity, I think it would behoove us all to be a bit more inclined towards inclusivity. Yet that outcome is not a predetermined eventuality, it will not just happen on its own. It costs nothing to be kind, but it requires intentionality to strive toward a more equitable future. I am thankful for luminaries like Sameera Kapila who light our way along that path.
It has been a while since I last reviewed SwordSearcher. Quite a bit has changed since then, so I figured it would be good to dive into version 9.0
and cover some of the new functionality.
Brandon Staggs was gracious enough to provide me with a review copy, and I have to say I was pleasantly surprised that it still feels familiar and approachable, while also bringing new features to the table. Though perhaps surprised is the wrong word, since his work has always been impeccable. I will dive into a few of my favorite aspects in this review.
New as of version nine, there is a new dark mode which is nicely done. According to my teenage son, it feels like a code editor for the Bible. The first thing he did was configure his SwordSearcher installation to match the Dracula theme, so it looks like his preferences for Vim and VS Code.
I would have to agree with that assessment. Even with previous versions of SwordSearcher, the layout reminded me of an IDE with multiple ways to look at a particular topic. With the dark theme, it feels more conducive to longer reading sessions and the colored text helps words and subjects to pop off the page. Initially, the app loads the traditional light theme. Clicking the bottom-left icon will switch to the dark theme (and back again).
Note: For the sake of simplicity, I will feature dark mode screenshots for the remainder of this article. Just be aware that all the things I mention are available in both modes.
To say that the search feature is fast would be an understatement. Overall, the speed of UI responsiveness is one thing that has always impressed me about previous versions of this app. When searching, results are nearly instantaneous and there is a tasteful bar chart that shows the frequency of results across the entire Bible.
This screenshot shows a search for the phrase "son of david"
, with the Bible view on the left and search results on the right. The orange (and blue) rectangles in the image show how often this string of text appears in the various books. As can be seen in the chart, there are more instances of this search result in the Old Testament than in the New Testament. Clicking any of the bars will jump to the first occurrence of the term in its respective chapter.
I have achieved this layout by:
It is difficult to explain with a static image, but there are hoverable regions that appear when dragging a pane. Drop the rectangle you are dragging onto that representative area, and voila you have an individualized layout. If you want to revert to the default, you can do so by going to the "view" menu and clicking "restore layout (Bible on the left)." Or, you can simply press Alt-A
at any time.
One aspect I missed from previous versions was the "single slant" tabbed UI, but I was thankful to find this too is customizable. I tweaked a few aspects, such as highlight and link colors to suit my needs. I have to say that level of personalization and attention to detail is a nice refinement.
In fact, nearly every aspect of SwordSearcher can be tweaked to some degree via the preferences menu. This includes choosing a specific typeface, font size, as well as making changes to UI colors. What's more is that this can be done separately for light and dark mode. So, if you find yourself switching between modes, each one can be specifically tailored to your liking.
You can also choose which tabs you want to be rendered, depending on which versions and translations of the Bible you are interested in. That can be toggled quickly from the tabs menu at the top of the app, by choosing either "show all tabs" or "show only my selected library tabs."
One of the tougher parts (for me anyway) when reading the Bible is attempting to visualize what is being described in my head. I am appreciative of the image viewer feature, because it removes a lot of the guesswork and estimation of measurements. There are numerous supplementary images, ranging from historical plant life, to temple floorplans, and diagrams of dispensations.
For example, depicted here is a map showing the expanse of the Roman Empire when ruled by Alexander the Great. It is helpful to visualize just how much territory Rome had conquered, which gives one a sense of scale when thinking about awaiting a messiah for deliverance.
Here is another illustration, which is a cross section of ancient Zion from west to east. It shows the vertical walls of the city, relative to the underlying elevation. There are also subterranean details included, such as the Siloam_tunnel. This is an interesting perspective (no pun intended) that is not readily apparent when reading about the location in the text.
I am a data viz nerd, so I appreciate the ability to see various passages presented in a visual format. The word cloud view makes words larger that occur more often and can optionally be set to include (or exclude) common words such as "the." In this screenshot, we see the book of John chapter 3. At a glance, it is easy to see the major names and themes that appear throughout.
The word tree view is also helpful. It is a more exacting view of key passages, breaking down the sentence structure and relationships between words. It allows one to see the recurrence of words, in conjunction with other repeating patterns. In this example, the word "unto" is mapped to its usage alongside other phrases with commonalities.
I suppose that value is in the eye of the beholder, but to me SwordSearcher feels reasonably priced for the sheer amount of literature and supplemental materials it contains.
Also, bear in mind that some other academic Bible software will run upwards of $10k+ for their most full-featured version. That strikes me as cost prohibitive — and perhaps a bit overkill — for someone wanting to dive more into the daily study of scripture.
Perhaps needless to say, I am a fan. The dedication that Mr. Staggs has put into this app over the years definitely shows. It has been a personal labor of love since he began building it back in 1994. He continues to add more enhancements and quality of life improvements to this day, which is a testament to his craftsmanship and devotion to the product.
In terms of bespoke, indie software I would put it on par with apps such as:
For context — if you are not a developer who uses those apps — this comparison is high praise.
So, I guess the real question is:
"Should I buy SwordSearcher version nine?"
It depends. If you are a Windows user who wants to dive more into learning about the Bible, I would answer resoundingly: Yes. I consider it to be an app that is consistently best in class.
For the past year and a half, I have had the privilege of working alongside the kind and talented folks at Reaktiv. During my time there, I was able to work on interesting projects for a variety of clients.
We also redesigned and rebuilt the company site, while rebranding from ReaktivStudios.com
to Reaktiv.co
in the process. Kudos to Lauren, Robby, and Cory for all their hard work.
Plus, I can say without reservation that Josh is one of the best bosses I have ever had.
To tell the story of my time at Reaktiv, it must be understood against the backdrop of some family struggles we were going through at the time. It is not an exaggeration to say Reaktiv was a lifesaver.
We had known about my wife's brain AVM for years. For her doctors weighing options, it was always sort of a "watch and wait" scenario. Essentially, the risk of operating would outweigh simply living with it. That changed on October 29, 2019.
As luck would have it, that was coincidentally the same day I had a skip-level meeting scheduled with my manager's boss. Since we had gone to the hospital for my wife's bad migraines in the past, I took my laptop with me to get some work done while in the waiting room. Usually, the scans would reveal there was nothing to be worried about.
Unbeknownst to us, that day would be different. While waiting for a doctor to come into the room to evaluate her, I stepped out for my scheduled meeting. I walked to another nearby, empty hospital room and got situated for my work-related call.
I am paraphrasing here, but it went something like this.
Manager: "Are you sitting down?"
Nathan: "Oh, I am sure she will be fine. They are running some tests now."
Manager: "What?"
Nathan: "We are at the hospital, because my wife is having a bad migraine. I thought you were referring to that."
Manager: "Ugh, I am sorry. That makes this so much worse. We are doing layoffs. I have to inform you that today will be your last day with the company."
When I walked back into her hospital room, my wife told me the diagnosis. In turn, I told her about my brief video chat. We nervously chuckled — with tears welling up in our eyes — at the random absurdity and timing of the one-two punch we had been dealt.
Olga: "The doctor came by while you were outside. He said I had a stroke."
Nathan: "Well, I was laid off. But yeah, your bad news is definitely worse."
Long story short, over the next few weeks — sometimes while in my wife's hospital room — I treated searching for employment like a full-time job. Thankfully, posting a tweet got the ball rolling. Friends and former coworkers sent referrals. My philosophy at that point was to follow up with any/all job leads.
I narrowed down the list of potential employers to companies I thought would be remote friendly, and tracked my interview progress with a spreadsheet.
All told, I ended up with 48 viable job leads and applied to 27 of them. I had at least a first round interview with every company to which I applied. Some progressed to a second round as well.
There are a few factors worth mentioning.
This was before COVID-19, and several of the companies I spoke with did not allow for remote work.
Some of the interview processes would have taken longer than I felt comfortable with, due to the immediate need for health insurance continuity. Those in the US know what I mean.
I respectfully bowed out of any interview process that would have culminated in an on-site interview. I did not want to be out of town, in case anything else happened with my wife's medical situation.
I wrote more about my job hunt on LinkedIn.
Also in the back of my mind — as we progressed into November of 2019 — was the tendency for larger companies to go into a hiring "freeze" during November and December. The thought of not having gainful employment lined up before then was daunting.
After interviewing with Josh (Reaktiv's CEO) and three other team members, I felt like I had found my people. They officially brought me aboard, knowing full well that my wife would need brain surgery shortly thereafter. I will forever be indebted to them, for graciously allowing me to spend time with her in the hospital as she recovered.
This became my default, boilerplate reply to recruiters.
{name}
:I appreciate the interest, but I am happy in my current role. I started with Reaktiv in December (2019), after having been laid off from a start-up.
This probably sounds cliché, but it is a company that feels like family. Meaning, I feel like that is where I belong.
Reaktiv initially hired me to "the bench." That allowed me to have health insurance continuity and spend most of January (2020) in the hospital with my wife, who was recovering from brain surgery.
It was a crazy whirlwind of being laid off, the same day my wife was diagnosed as having a stroke, and then interviewing frantically (with 25+ companies) to make sure I landed somewhere quickly.
I wrote more about that here.
Again, I appreciate the interest. Never burn a bridge, etc.
But I feel like I am where I should be.
— Nathan
I know that the phrase "unlimited PTO" gets thrown around, and is sometimes blamed for making people feel guilty about actually taking time off. But in the case of Reaktiv, they encouraged a healthy work/life balance. Honestly, it was unlike anywhere I have ever been.
When COVID-19 hit the United States in early 2020, I (like so many of us) unexpectedly found myself with some "down time" between billable projects. As a company, we took that opportunity to get ahead of work that we would need later. To that end, I built the RKV Component Library.
It housed a set of internal React components, for use on client facing projects. I also built vanilla JS versions of those UI elements, to be used with flat HTML. This versatility allowed us to apply the same markup and styles for single page JS apps and/or CMS generated content.
Additionally…
Along with my coworker Cory Webb, I was interviewed for the React Wednesdays live stream. You can view an archive of the video here.
I created training curriculum about Jest, Next, and React. I led video calls for devs at partner agencies. On retainer, I would periodically do code reviews of their projects. Some devs needed help moving from classes to React Hooks. I created comparisons, built using both approaches.
Working at Reaktiv afforded me the autonomy to craft solutions, while also allowing me to lean on the collective wisdom of my coworkers. It was a positive and uplifting environment. I truly feel their company culture is something special.
I may eventually write more, in terms of "What's next?" on my career path. But for now, I wanted to jot down my thoughts while they are still fresh in my mind. I sincerely wish the best for the folks at Reaktiv, and will emphatically cheer on their continued success as a proud alumnus.
Though I will no longer be there, I cannot overstate how thankful I am for having been a part of it. I believe that I am a better person because of the friendships I made. Josh especially was (continues to be) wise, kind, and gracious. Time and again, he extended undeserved patience to me.
The entire team was impactful — in a "positive force multiplier" sort of way — during an especially difficult time in my life. If anyone else is looking for an agency that treats you like a human first (whether employee or client), I would encourage you to consider Reaktiv.
Depending on when you are reading these words, I bet that Reaktiv is hiring.