075: Code and Witchcraft with Coraline Ada Ehmke

Support for the Greater Than Code podcast comes from the O’Reilly Velocity Conference. Join over 2000 developers and engineers in San Jose from June 11 to 14 to learn how to make your distributed systems more scalable, resilient and secure. Get the latest on microservices, cloud, DevOps, security, and more. Use discount code GTC20 to save 20% on most passes. Learn more at velocityconf.com.

Cloud City Development is happy to support our coding community and especially Greater than Code. The Cloud City team are expert software programmers and designers with a strong desire to see more diversity in tech, more kindness on teams, and better tools. Please let them know if you’d like their hard work, mentorship, or sense of humor. They’re a B-Corporation because they believe in sustainability and they’d like to build with you. Please reach out by emailing hello@cloudcity.io.


Panelists:

Jessica Kerr | Jamey Hampton | Coraline Ada Ehmke

Join Our Slack Channel!
Support us via Patreon!

Show Notes:

02:40 – Coraline’s Superpower: Boundless Energy

06:16 – Practicing Self-Care and Outsourcing

12:20 – Being a “Code Witch” and Perceiving the Construct of Reality

17:25 Evocation and Invocation

20:52 – Being Deliberate: Refactoring Your Code and Refactoring Your Life

32:13 – Documentation and Naming Things

38:48 – Writing Magic and Writing Code; Thoughtforms

Drood by Dan Simmons  

43:20 – Impressions and Personas; Sympathy and Empathy

Brené Brown on Empathy

51:58 – Acquiring Boundless Energy and Badassery

Transcript:

CORALINE:  Don’t argue with me over coffee. You know better. I want three-thirds full. I want six-sixths.

[Laughter]

JESSICA:  Support for the Greater Than Code podcast comes from O’Reilly Velocity Conference. Join over 2,000 developers and engineers in San Jose from June 11th to 14th to learn how to make your distributed systems more scalable, resilient, and secure. Get the latest on microservices, cloud DevOps security, and more. Use discount code GTC20. That’s GTC20, the GTC is for Greater Than Code and the 20 is for 20% off on those passes. Learn more at VelocityConf.com.

CORALINE:  Greater Than Code is largely listener-supported. And you can visit our Patreon at Patreon.com/GreaterThanCode to contribute and join our Slack community. We’re also very lucky to have sponsors.

And one of our sponsors is Cloud City Development. They’re happy to support our coding community and especially Greater Than Code. Cloud City team are expert software programmers and designers with a strong desire to see more diversity in tech, more kindness on teams, and better tools. Please let them know if you like their hard work, mentorship, or sense of humor. They’re a B Corporation because they believe in sustainability and they’d like to build with you. You can reach out to them by emailing hello@cloudcity.io.

JESSICA:  Good morning. Welcome to Greater Than Code Episode number 75 in which we interview one of our own. But first, I’m happy to be here with my fellow panelist, Jamey Bash Hampton.

JAMEY:  Thank you, Jess. I’m really excited to do this show today and interview one of our own, Coraline Ada Ehmke. And now I’m going to read her bio.

She is an open source advocate and developer with over 20 years of experience. She was recognized for her work on diversity in open source with a Ruby Hero Award in 2016. Coraline is the creator of the Contributor Covenant, the most popular open source code of conduct in the world with over 40,000 adoptions. She is a founding panelist on the Greater Than Code podcast. You may have heard of it. In her free time, Coraline pursues her interest in artificial intelligence and writes and records music in her home studio. Find her on Twitter at @CoralineAda or at the web at where.coraline.codes.

CORALINE:  Only the best vanity URL in the world.

JAMEY:  It’s really good.

JESSICA:  It is pretty good.

CORALINE:  Anyway, hi everybody. I’m really happy to be here.

JAMEY:  I’m so happy that we’re interviewing you. Yay.

JESSICA:  Yeah. Jamey’s been looking forward to this. Jamey, do you want to ask the first question?

JAMEY:  I do. I just came up with it right now.

CORALINE:  We’re not going to do the superpower question?

JAMEY:  The question is: What is your superpower?

[Laughter]

CORALINE:  You just came up with that? I think it’d be great if we had that question in every show. I think it’s so relevant.

JAMEY:  I know. I think it would be really great. We should start doing that.

CORALINE:  Let’s do that. My superpower. My superpower is – and I feel weird saying this in the presence of Jessica – but my superpower is boundless energy. I do my job. I run a D&D campaign that I do a lot of writing and art for. I am working on my fourth album in two years. I’m on the board of directors for Ruby Together and RailsBridge. I do my open source work. I never stop moving. And I pretty much go from the time, maybe an hour after I wake up, ‘til midnight every day. And my girlfriend’s like, “How do you not burn out?” I do burn out, just like every five years. So, I think boundless energy is my superpower. It lets me hyper-focus. I don’t get distracted easily but I’m able to context switch really easily.

JAMEY:  That’s a great superpower. Oh my gosh.

CORALINE:  Yeah. I think it powers me through all the things that I’m interested in doing.

JESSICA:  I like that you call that your superpower because it makes the rest of us feel less bad about not doin gas many things and we can just be happy for you and all the things that you do without feeling lazy.

CORALINE:  I think I developed it as a habit. I have severe bipolar disorder among other things. And before transition, my medication made me tend toward mania. And I think I developed some work habits while I suffered from mania. And since transition, my body chemistry changed. And now I’m more prone to depression. But I still have the work ethic.

JESSICA:  That’s interesting. So, you have manic work habits.

CORALINE:  Yeah.

JESSICA:  And that’s like one of the pluses of mania, I guess, so that’s not a bad thing to keep?

CORALINE:  It’s the only plus of mania. Yeah, luckily I lost the impulsiveness.

JESSICA:  Wow. That is sweet. Okay, so now we know how you acquired your superpower. You actually have like a coherent story for that.

JAMEY:  Yeah, this is like an origin story. Like, I’m ready to write this comic book right now.

CORALINE:  Oh my god. That would be amazing. Colorists would have a lot of fun with my hair, I think. What color is that? And my eyes. Like, “What color are her eyes? I don’t understand.”

JAMEY:  How do you decide what things to do? You do so many things. How do you decide, “These are the ones that I’m going to put on this list”?

CORALINE:  Guilt.

JESSICA:  [Laughs]

CORALINE:  Seriously.

JESSICA:  Self-imposed, or externally imposed?

CORALINE:  Self-imposed guilt. Because whenever I have free time, I feel like I’m wasting my time and I should be doing something to make the world a better place. So, I look for those areas where I can maximize my impact. Not to say I don’t make time for myself. 2018 is my year of self-care, supposedly. 2017 was also my year of self-care but that didn’t go so well. And I enjoy spending time with my daughter and my girlfriend and talking to my boyfriend. So, I make time for those things. But yeah, I look for areas where I can apply some effort and try and leverage my privilege and try to make the world a better place. But it’s because I feel guilty when I’m not doing those things.

JAMEY:  That’s relatable. I can relate to that.

JESSICA:  So far in 2018, your year of self-care take 2, what have you done for self-care?

CORALINE:  Oh, I’ve actually been very good about it. Over Christmas I took a two-week vacation. I spent one week in Virginia with my family and one week in Sweden meeting my girlfriend’s family. And then just last week I came back from another two-week vacation spent in Iceland and Sweden and Norway. So, actually taking advantage of my unlimited PTO. Another thing that I did, and I feel kind of bad about this, I feel super bourgey, but I hired a personal assistant. Because I figure, I have a Silicon Valley salary and I should spend it to help other people out, which I do. And I should spend it on reducing stress on my own life. So, now I outsource housecleaning, I outsource meal preparation, and I outsource travel preparation. And it’s made such a huge difference for me, not having to do the things that really stress me out and giving me more time for the things that I actually want to do.

JESSICA:  Nice.

JAMEY:  That’s a great, great way to look at that.

JESSICA:  Yeah, because there are plenty of things that only you can do or no one else can do it as well or as quickly or the way you want it done. And if you can outsource the things that other people can do, then yeah, you get to do more of the things you feel guilty for not doing.

CORALINE:  Yeah, exactly.

JESSICA:  Yeah, I had a tough decision like that the other day. My Pluralsight course is up for updating and they asked me if I want to update it. And I’m like, “Oh, I love having that Pluralsight course. It’s like functional programming for Java.” And I’m proud of it. But it was in conflict with conferences and mostly with work. And I decided that someone else can totally write functional programming for Java for Pluralsight and no one else can do the work I’m doing right now. So, I let it go.

CORALINE:  Yeah. That’s important. And those are hard decisions, but kind of being honest with yourself I think is important and always worth it.

JESSICA:  And also, that feeling guilty for not doing something, I don’t feel guilty for not doing something that someone else can do just as well, or even half as well, you know? I may think my course is the best thing ever. But someone else can also make a good course.

JAMEY:  What I found really interesting about your list of things that you’re outsourcing is, it got me thinking about the differences in what stresses different people out. Because I love travel planning. I would never let someone else do that for me because I have so much joy in it. And so, it was interesting for me to hear you say like, “I outsource that because it stresses me out.”

CORALINE:  I’m fine with coming up with the things I want to do. But actually going to half a dozen websites and actually scheduling them and paying for them and trying to work out, “Okay, if the plane leaves from Reykjavik in the morning, can we catch our connecting flight in blah, blah, blah?” That’s the kind of thing that stresses me out about it.

JAMEY:  I totally understand that. But I like to do all of those things that you just said, still.

CORALINE:  Well, I’m sorry. You’re just wrong.

JESSICA:  But Jamey’s superpower is finding awesome things everywhere they go. So, the travel planning feeds their superpower. Whereas doing things that stresses you out is an opposition to your superpower of boundless energy.

CORALINE:  It’s almost as if Jamey and I are distinct people.

JESSICA:  You might even be like, good compatriots on the same superhero team.

CORALINE:  Oh, Jamey’s totally allowed on my superhero team, absolutely.

JAMEY:  I am?

CORALINE:  Oh, yeah.

JAMEY:  Oh, yes.

CORALINE:  So, that comic book is going to happen, right?

JAMEY:  I’m excited.

JESSICA:  Or at least a sticker. Can it be a sticker?

CORALINE:  Could be a sticker.

JAMEY:  We should get a new Greater Than Code sticker with all of our superhero personas.

JESSICA:  Yes.

CORALINE:  Yeah. Oh my god, that’s an amazing idea. We should totally do that. I know some good artists.

JESSICA:  Ooh, perfect.

JAMEY:  Yes, alright. It’s on.

JESSICA:  My superhero name is Jessitron. Bet you wouldn’t have guessed that.

JAMEY:  It’s just interesting to me. Obviously I know that people have different things that they like to do. But it’s interesting to me whenever I encounter someone that has a very polar opposite opinion about something like this than me.

CORALINE:  Yeah, and I know people who really enjoy cooking. And I despise cooking. I’ve been living on my own since I was 17 years old and I’ve never cooked a complicated meal. The best I ever did was like stuff in a slow cooker. It just…

JAMEY:  Slow cookers are magic.

CORALINE:  They are magic. But then you have to clean them.

JESSICA:  Especially when they’re also seals.

CORALINE:  Oh, Jessica and I were talking about my trip in Scandinavia and I shared this thing that they do in Greenland where they take this certain kind of bird and a dead seal and they’ll shove 500 bird carcasses inside the seal and let them ferment. And then that’s a tasty treat for people in Greenland.

JAMEY:  Oh my gosh. Oh, I’m not judging people. If people like that, I’m so happy for them. But it sounds so bad.

CORALINE:  I did eat fermented shark while we were in Iceland. And that was really interesting. It came out in a little sealed jar so as not to disturb the other patrons of the restaurant. And so, you open it up and jab at one of the little cubes of fermented shark with a toothpick and then eat it. And it smelled like something that had been rotting under the floorboards all summer. But it actually was quite tasty. It was good.

JAMEY:  I don’t know if I could do it.

JESSICA:  That’s amazing, because…

JAMEY:  I respect you for eating that.

CORALINE:  I also ate whale and horse. And that was pretty cool.

JESSICA:  The shark thing is interesting, because in that experience your sense of smell and your sense of taste are in opposition? And that’s unusual. Usually, they’re closely aligned.

CORALINE:  Yeah, I had somebody ask me about that. But the smell did not affect the way it tasted.

JESSICA:  That’s amazing. Speaking of superpowers, in our Greater Than Code Slack channel, Craig asked you to talk about being a code witch.

CORALINE:  I once had a Q&A at a conference and someone at the end was like, “Why do you call yourself a code witch?” And I’m like, “I write code and I’m literally a witch. It’s very obvious.” So, I’ve been involved with occultism since I was 13 years old. And I’ve worked in a lot of different traditions. I did Golden Dawn. I did Thelema. I invented my own magical system based on a reinterpretation of ancient Egyptian religion and magic. And then I fell out of it for a while. And when I transitioned, I decided that I had room for that in my life and I wanted a spiritual component in my life again. So, I adapted what’s called Chaos Magic. So technically, I’m a Chaos Magician. But I find the word witch very empowering, so I use that name for what I do.

I believe in the plasticity of reality. I think I’m living in a hologram, which is informed by my five senses or more. And I have a construction of the universe inside my mind. And I can to some degree control the experience that I have in that universe. I can choose the sensory inputs to believe or disbelieve. I can choose how they affect me and I can choose my reactions to them. And to me, that’s what magic is all about. Magic is about self-transformation and about reinterpreting reality and looking for patterns that you wouldn’t ordinarily see and listening to your intuition. And those are all things that I think are really valuable. And with my transition, I achieved the ultimate magical transformation, right? So, it all makes sense to me. And I don’t see a conflict between being a rational human being and dealign with code all day, and then in my free time warping reality to my own desires. It’s all part of a creative process that drives me and everything that I do.

JESSICA:  This is fascinating. So, when you say you believe in the plasticity of reality and you can shape reality, you can affect it, you mean the reality of your experience specifically? That you have a lot of power over?

CORALINE:  That specifically, but also to a degree, the consensual reality that other people share.

JESSICA:  Oh, yeah.

CORALINE:  I’ve definitely observed ripple effects on the subjective reality that other people experience as a result of working with magic. So, I don’t think it’s simply limited to my own experiences, but that we have the ability to influence the way that other people are perceiving reality as well.

JESSICA:  We also do this with code.

CORALINE:  Yeah, we do. It’s all the same thing. Code is about creation and transformation. And that’s what magic is about. So, there’s a consistent thread. And I’m happiest when I’m creating. I’m happiest when I’m making an impact. And all of those things in my mind are of a single piece.

JESSICA: Yeah, because when we shape our experience, whether through magic or through software, through changing the physics of ‘What happens when I push this button?’ for instance, then that changes us. And then we go on to change reality further. And it affects other people.

CORALINE:  Yeah. And I’ve even taken it further. We mentioned in my bio that I do AI on the side. I have some AI passion projects. The main one is called Sophia. And my goal with Sophia is to make her comprehend metaphors and also create metaphors. And my data model is based on Kabbalah.

JAMEY:  Oh, that’s so cool.

CORALINE:  The ancient Jewish mystic tradition. And it makes sense to me, because for thousands of years, before the introduction of organized science in the 1700s or the 17th century rather, people have been studying the relationship between self and other and self and the universe and self and divine. And that’s not something that you should lightly throw away, just because the scientific method wasn’t applied yet. There’s a lot of really valuable insight and a lot of valuable work that’s been done. And it can absolutely be repurposed.

JAMEY:  When you were describing the way that you perceive the construct of reality, it was also making me think of code. Like you have an instance of this inside of you and inside of your head, and then other people can have separate instances of a similar object.

CORALINE:  Yeah. We are creating a map of reality when we write software. We are deciding what things are universal principles, which are like classes, and we’re deciding which of those to instantiate, which is a form of evocation. So, we’re absolutely modeling the world and we’re controlling interactions between these models that we have. And they have a ripple effect into our shared reality. So, code is definitely magic.

JAMEY: I love that. Yay.

JESSICA:  What’s evocation?

CORALINE:  There’s invocation and evocation. Evocation is causing something to appear in magical parlances, like summoning a spirit or a demon or an angel. And invocation is when you internalize an external presence. So, when you take on divinity temporarily or take on the powers and perceptions of an external being into yourself. That’s invocation. But we rarely do invocation as software developers, which is probably why we have problems with ethics and empathy. And we as a matter of course do evocation.

JESSICA:  Invocation is like composition.

CORALINE:  Yeah, very much so. Because it’s about identity as opposed to the [inaudible].

JESSICA:  Yeah, it’s about building up from parts that may be, may have an external source.

CORALINE:  Yeah. And adopting the powers and attributes of something else and internalizing those.

JAMEY:  I think about it a lot when I’m deciding what things about myself I like and I want to keep and what things about myself I’m not as fond of and I want to discard, I guess.

CORALINE:  Yeah. It’s interesting that you mention that Jamey, because when I made the decision to transition, I was reminded of this Winston Churchill quote: When you find yourself in hell, keep driving. And I decided that I would use the opportunity of hitting the big, red reset button on my life to weed out the things about myself that I didn’t like and to reinforce the things about myself that I did like and to take on attributes of other people that I respected and admired. So, it was a very deliberate transformation on every level of who I was, not just my gender, but actually who I was as a person. And that’s an ongoing process. I’m still a work in progress. But I am such a different person than I was even five years ago.

JAMEY:  We’ve talked about your transition before on this show and it’s really interesting to me how you had such a stark experience as one day this, and the next day this other thing. If that’s an okay way to describe it.

CORALINE:  Yeah.

JAMEY:  But I think that that’s not…

CORALINE:  There was an in between period. There was a period where I was socially transitioned and so whenever I wasn’t at work, I was presenting in my true gender. It was a horrible way for me to live. It was very jarring. But yeah, when I made the decision, I had a date and it was March 1st. And the night before, I took all my boy clothes which were completely useless to me to Goodwill and gave my favorite pair of boots and my leather duster to a dear friend. And the next day, it was 100% Coraline forever.

JAMEY:  That’s so interesting to me. It’s really cool in some ways. It’s so interesting to me to listen to you be like, “This is the date of my transition,” because I can’t even tell people how old I was when I started transitioning. It was so sneaky, like it had been happening for months before I even realized that it was happening in a way that’s just very nebulous for me to describe, like a the very opposite way from the way you describe.

CORALINE:  I think it highlights the fact that there’s not one way to be trans.

JAMEY:  Absolutely.

CORALINE:  And there’s no one experience.

JAMEY:  I like hearing about other people’s experiences.

JESSICA:  I’m kind of fascinated by the decision to be different, the decision to move toward certain characteristics that we choose to have and away from ones that we don’t. And…

JAMEY:  Can I ask you a question? Before you continue.

JESSICA:  Yeah.

JAMEY:  When you say choose to be different, are you referring to choosing to be different from other people or like what’s common in society?

JESSICA:  Oh, good question.

JAMEY:  Or like, are you choosing to be different from your past self and how you used to be?

JESSICA:  Yeah, from my present self.

JAMEY:  Okay.

JESSICA:  I can choose to move in a direction – I mean, it’s not usually sudden. Occasionally it’s kind of sudden. But usually it’s a gradual change of habits that become intuition. I could chose to move away from my present self. And our culture especially as kids, you’re told, “Be yourself.” Well, what is yourself? Yourself is, you can be more yourself by being less your present self and more your consciously chosen self. As opposed to the societally imposed definition of who you’re supposed to be, I guess.

CORALINE:  Yeah. And I think it’s better when we’re deliberate about it, because people will naturally change over time. And you can control it or you can be subject to external forces and let those shape you. And I think we’re much better off when we’re deliberate about the changes that we make in general, and especially the changes we make in ourselves. So for me, it was a matter of I knew that I would have to relearn communication and I knew that I would have to relearn how to experience and express emotions because I didn’t allow myself to do that before. And I knew that I would have to learn to be more empathetic. So, what I did was I looked around and I looked at the people that I admired the most and I tried to figure out what characteristics they demonstrated that I admired the most. And I was like, “Okay. I’m going to do that. I’m going to become those things and I’m going to master those things and I’m going to practice those things.”

JESSICA:  Was the part where you made this huge change anyway, did that work out to be an opportunity to change other things? Because everybody’s expectations were already…

CORALINE:  Yeah, exactly. That’s what I was alluding to earlier. Yeah, I decided since I’m making this one major change, I’m going to make all my major changes at the same time and just power through it. And deal with the fallout and the consequences and try and learn from it and try and be a better person as a result of it. I didn’t want to smear it out across different years. I wanted to get all the hard stuff done so I could move past it and just be.

JAMEY:  Refactoring.

CORALINE:  Yeah. I did the major refactoring. I did not iterate. I made that mistake. I opened a pull request. I was 10,000 lines long.

[Laughter]

CORALINE:  But luckily, nobody had to do a code review for me. So.

JAMEY:  I’m interested in how we’re talking about the length of time that it takes to make changes, because this is something that I struggle with. And I’d love to get your thoughts on it. Which is this: there’s this decision that we’re talking about where we’re making a choice. Like, this is how I want to be. And then there’s a future where we become more like that and those things are very clear to me. But there’s this nebulous area in the middle which Jess was kind of alluding to where you’re gradually changing habits in order to get towards this ideal. And I have a really hard time with that, because once I decide I want to be a certain way or do a certain thing, or have a certain hobby or anything like that, I want to do it immediately. And I have a really hard time with, “Okay I have to take steps. I have to make habits. I have to do this gradually in some ways.” And I’m wondering if you have any insight on how to do that and how to make peace with that time, that transition time that that’s happening in.

CORALINE:  Yeah. I can definitely speak to the former. I have struggled with the latter. It’s a couple of things. One is you measure stages in your development or your evolution as a person in cycles of attention. So, when you make a decision, you have to pay attention to what you’re doing to support that decision and pay attention to the changes you’re making. But I don’t think that we have – I’m like objects. We don’t have attributes, I think. We have things that we do. So, instead of outer accessors, we have methods. And…

JESSICA:  So, we’re like real objects in the original sense of behavior and messaging.

CORALINE:  Yeah. Exactly. And yeah, behavior and messaging. Exactly. So, it’s not like you have empathy or you don’t have empathy. It’s that you practice empathy or you don’t practice empathy. And those deliberate steps you’re talking about, that’s just following the process and paying attention to it. In terms of dealing with shortcomings, every night when I go to bed, I remember all of the terrible things that I’ve ever done in my life and all the mistakes that I’ve made and all the friends that I’ve lost and all the bad things that I’ve ever said to someone and all the times that I’ve not demonstrated compassion or empathy. And those things haunt me. And I wish I knew how to deal with them. I try. But yeah, I’m haunted by failure.

JESSICA:  Well, we change, I guess. That’s how we deal with them. And I have to forgive my past self over and over for that stupid crap.

CORALINE:  I have a very hard time with that. It’s like, I want there to be a continuity of who I am and there’s ever a continuity of who I am.

JESSICA:  Because we’re always changing?

CORALINE:  Yeah.

JAMEY:  I think about that a lot. I totally agree.

JESSICA:  Can I make a code analogy? Another one.

CORALINE: Yeah.

JAMEY:  I feel like that’s what we’re doing at this point. I think you should just go for it.

JESSICA:  Well, yeah. That’s kind of the premise of this show is, “Let’s talk about life with software analogies.” So Jamey, you were talking about when you can’t do it all at once and you need to proceed in steps. And then Coraline you talked about how that’s like cycles of attention. You pay attention to it this much. I’ve been thinking about something very like this in my code at the moment.

So, in the app that I’m working on, it’s pretty young. And we’re still finding the core concepts and the architecture of it. And as I recognize an architectural shift, for instance this app, it’s a software delivery machine. And it looks at a code push and it creates a bunch of goals that we want to reach. And we started out persisting these goals as GitHub statuses. Because that’s easy. We can put them on a commit. It exists already. We don’t have to build anything new to store those. And they show up on our notifications in Slack. So, we started out with that. And once we decided, “Yes, this is awesome. We actually love seeing this series of goals that we’re going to carry out and then we see them turn green gradually,” we wanted to move to a custom event stored in our database. So, this is an architectural shift that’s happening in the code that we’re in the middle of. And I can’t do it all at once because that would take a week. And the merge conflicts would be ridiculous. I can’t make that many changes at once on a branch. So, I have to change. I change it to, “Okay, when it creates the goals, it creates them as custom events. And then we react to those custom events by creating GitHub statuses.” I’m gradually shifting things over, but in the meantime the code is confusing as heck.

So, I figured I have to write an architecture document that says, “Look, we’re in this transition.” And then in all these halfway places, I can reference that. So, because more than just me is working on the code. It’s like Coraline said. Nobody has to review her pull requests. And I think that is true with us but sometimes, we feel like it isn’t. Because I feel like I’m reluctant to change myself because I perceive that other people have these expectations of me, that they’re going to be disappointed if I don’t meet. I think it’s actually my perception of other people’s expectations, not their actual expectations that hold me back. But in the code at least, I can do this consciously and document it. And it’s hard. But I give it attention in cycles, just like you said, Coraline, with this refactor.

CORALINE:  Yeah. I think the important thing when refactoring is paying attention, having a sense of where you want to go, and doing the work to get there. And that’s no matter what you’re doing, if you’re refactoring your code or refactoring your life. There’s this concept in Thelema of connecting with your true will. And true will is distinguished from your whims. Your true will is the thing that you’re supposed to be doing and it takes work. It takes a lot of work to discover what your true will is. And then to align your actions with your true will. But once you have that connection, your true will guides you in every decision you need to make in your life. And I think that’s true of any kind of goal. You have to separate out what are goals that are imposed on you by external forces and what things you actually want to do and that are actually going to be good for your soul. And try to align yourself to those things and try to minimize the impact of externally imposed goals or deadlines or activities. You have to focus on what’s important. And the most important thing I think is self-development.

JESSICA:  To find your target architecture, which is constantly shifting because you’re always discovering new things.

CORALINE:  Yeah.

JESSICA:  But that guides you as you make future editions and stuff like that, continually moving toward this architectural direction. And in a week or two I’ll be able to delete all the old code and it won’t be confusing anymore. But in the meantime, it’s about consciousness, about doing this deliberately.

CORALINE:  Exactly.

JESSICA:  And being able to see where I’m headed at the moment.

CORALINE:  Yeah. And you have to introspect in order to see where you’re trying to go. And some people document that. And some people just keep it in their heads. And both of those things are fine, depending under what context.

JESSICA:  Right. Who else has to know?

CORALINE:  Yeah. And how do you communicate about it?

JESSICA:  Yeah. I didn’t realize that I wasn’t communicating this well until someone else started making changes in the code and copying the old way. And I was like, “No! Not more of that.” So, I either have to get all the new way in or document, “Don’t do this. Do this.”

CORALINE:  That brings up an interesting point. Change is easier to affect when you have allies, right? So…

JESSICA:  Yeah. Ooh, that’s great. Ooh, yeah, yeah.

CORALINE:  When you write that documentation, you’re trying to make allies.

JAMEY:  I feel like there’s a million more things we could say about change being easier to affect when you have allies, but I haven’t quite put my finger on what it is yet. I’m thinking.

JESSICA:  At least big change. Small change, it’s easier to do by yourself. When you don’t need review on your pull request. But your impact is limited there.

CORALINE:  I don’t know if I agree with that. Small changes can have ripple effects beyond their intended consequences.

JESSICA:  Good point.

JAMEY:  And I think that anything that’s intensely personal, there’s an aspect of it that you have to work on yourself. But being able to allow yourself the space that you need to make that change and really focus with yourself in a meaningful way, that space is easier to make when you have people around you that are being supportive of almost holding that space for you. Does that make sense?

JESSICA:  Yes. And in software, since you can think about it as if the people who are maintaining adjacent systems know your direction and support you in that, sometimes those APIs that feel like external constraints, they can relax those, too.

CORALINE:  It’s interesting. The people around us do put constraints on us. But they also enable us to do things that we couldn’t do independently. We are all interconnected systems, aren’t we?

JESSICA:  Yeah.

CORALINE:  And we’re complex and we have documented and undocumented APIs.

JESSICA:  Lots of them.

CORALINE:  And sometimes you have to make a breaking change.

JESSICA:  Yeah.

JAMEY:  I have known bugs.

JESSICA:  And we test in production.

CORALINE:  Yes, yes we do. We always test in production.

JAMEY:  I’m going to start using more of these software metaphors in my normal life. When my fiance’s like, “Jamey, you didn’t do the dishes after you cooked.” And I’m like, “That’s a known bug. Sorry.”

[Laughter]

JESSICA:  Won’t fix. Pull request accepted. Good luck with that. Did he sign the contributor’s agreement? Yeah, documentation gives you allies. And documentation, it’s not just writing up an issue. It’s talking to people. And it also requires you to put words around what you’re trying to do.

CORALINE:  Yeah. In traditional African religions and magical practices, there’s this notion of something’s true name. And there’s a really cool story of the goddess Ast, Isis in ancient Egypt. She started her life as a sorceress and she wanted to be a goddess. So, she waited for Ra, the sun god, to pass across the sky and for his barge to get to the gates of the underworld in the west. He would start the day as a new born and end the day as an old man. So, she collected his drool for when he was an old man and used it to fashion clay serpents which she then placed at the gate of the dawn in the east. So, the snakes bit Ra and he would be impervious to anything external but because the snakes were of him, he fell ill. And she went to him and was like, “I can cure you if you tell me your true name.” And he’s like, “Oh, easy. I’m Ra. I am the god of the sun. I am the god of this. I’m the god of that.” She’s like, “No, no, no, no, no. I know all that. I mean your true name.” And he whispered his true name to her and that filled her with divine power. If we don’t name things, we don’t have the ability to change them. We don’t have the ability to recognize them or communicate with them. And that’s why naming things – and documentation is just an elaborate form of naming things – that’s why it’s so important.

JAMEY:  Can I ask you a really personal question and if you don’t want to answer it, you can tell me you don’t wanna?

CORALINE:  Sure.

JAMEY:  How did you choose the name Coraline?

CORALINE:  Oh. That’s an interesting question. My dead name was Cory. And for a while I thought that I would just change the spelling of it. But I didn’t actually like that very much. So, I wanted to keep a C name because I didn’t want my initials to change. I didn’t want my first and last initials to change. So, in naming myself I went and looked for the most badass women I could find. And I think Coraline from the Neil Gaiman book was pretty much a badass. For my middle name, I thought it would be nice if I let my parents choose my middle name, because I wanted to kind of involve them in the process. So, I talked to my parents and I was like, “You did a really poor job of giving me a middle name the first time around.” My middle name had been Dale. And when I told my daughter when she was like four years old, she was like, “What’s your middle name?” I said, “Dale.” She said, “Oh, I’m sorry.”

[Laughter]

CORALINE:  So I was like, “If you want, I’m happy to give you the ability to choose my new middle name.” And about a month goes by and my mom calls me and she’s like, “Yeah, we have some ideas for you. We were thinking Raven or Phoenix.” And I was like, “No. I think you guys just suck at middle names. I’m not going to accept either of those.” So, I decided on Ada from Ada Lovelace who was the world’s first programmer and also the first open source programmer, because she published her source code in her letters and journals. So yeah, Coraline’s a badass. Ada’s a badass. And I aspire to be a badass.

JAMEY:  I think you’re a badass.

JESSICA:  Totally.

CORALINE:  Well, thank you.

JAMEY:  My middle name is Lovelace. So, we went through a similar…

CORALINE:  Nice.

JESSICA:  You match.

JAMEY:  We’ve talked about this before. We do match.

JESSICA:  What was Ada Lovelace’s middle name?

JAMEY:  Ooh, I don’t know. Well Lovelace actually…

CORALINE:  She had a bunch of names and Lovelace was not her last name.

JAMEY:  Yeah. Lovelace is like, she was the countess of Lovelace. It was like a title.

CORALINE:  Yeah.

JESSICA:  Oh, right.

CORALINE:  And she’s the best thing that ever came from Lord Byron.

JAMEY:  That’s true.

JESSICA:  We talked about naming as magic. And Coraline, earlier you talked about the ripple effects of some of the small changes we make. And I think naming something, creating vocabulary that becomes part of the language, which changes everyone’s brain and the way we think because we have a new word, and the way we reason – that’s definitely one of those ripple effects.

CORALINE:  Yeah. And that’s magical, because you’re changing the way someone’s framing their perception of reality and framing what is possible within the bounds of the reality that they’ve accepted. And naming things in software is often a repurposing of an existing word. And giving it a new frame of context, which is a transformation. Metaphors are transformations of ideas and transformations of words. And that is a magical process.

JESSICA:  Hey. Did you say earlier that you created your own magic system?

CORALINE:  Yeah.

JESSICA:  Is that like writing your own programming language?

CORALINE:  It very much is writing your own programming language for your spiritual self. I did it all under a pseudonym, which I kind of regret. But I was actually quoted in an encyclopedia and there’s a role-playing game that took my writing. So, I was reading this book by a guy name Dan Simmons who’s like a really, really amazing writer. And he has this book called ‘Drood’ which is historical fiction about the last year of Charles Dickens’ life. And then it has like occult undercurrent. So at one point, they’re dealing with this Egyptian cult that operates literally underneath London. So, he has some dialog between a couple of occultist and they call Azar, Osiris, the god of our fathers. And I was like, “Yeah, I used that same phrase. That’s cool that someone else thought of that.” And then they get into this ritual and I recognize it. And I’m like, “Wait a second. This is my ritual. I wrote this.” And I got really pissed off. And then on a whim, I turned to the back of the book and sure enough, my website which I put up in 1998, was listed as a source. And I was like, “Oh, okay. That’s kind of cool.”

JESSICA:  Cool.

CORALINE:  So yeah, I had a lot of impact with my writing in terms of my Egyptian magic. And the site is still up. I think it’s merm.idlehands.com. Or egypt.idlehands.com. I don’t remember which of the two I went with. But yeah, it was like I taught myself to read hieroglyphics and I read ancient texts and tried to transpose them into the modern framework of reality. And make them relevant to modern practitioners. And it was very much creating a vocabulary and creating a programming language and creating a syntax that you need to string together these concepts to effect change.

JESSICA:  I have a question about an occult concept that came across my radar the other day. It was an egregore.

CORALINE:  I have no idea what that is.

JESSICA:  Okay.

CORALINE:  Oh, but it does remind me of something else.

JESSICA:  Right.

CORALINE:  A really interesting idea from Thelema which was Aleister Crowley’s magical system is this idea of thought forms. And thought forms also come into play with Chaos Magic. And definitely related to programming, because thought forms are basically the embodiment of a desire or an idea. And you concentrate so much on a certain ideal or a certain emotion or a certain consequence that you want to happen that you give it a temporary external existence. So, you’re basically creating a living thing just based on your own intentions. And you’re giving it a subset of your own free will and a subset of your own power to effect some kind of change. And you’re essentially cloning. You’re creating a shell clone of some aspect of yourself for a very specific purpose and for a very short duration.

JESSICA:  For me, that relates to code in the sense that a lot of the stories around magic wind up saying to me that as humans, we really want our will to directly affect the universe. But just like your reality is influenced by your senses, we influence the universe indirectly, not through direct concentration of our intention but by expressing that in code. And then we can create a little clone of an aspect of ourselves. For instance, Rod really likes issue titles to start with a capital letter. So, he made an automation that runs in Atomist that if an issue is created with a lower case letter, it capitalizes it. Poof. I mean, that’s a trivial example, but with code we really do impose our will on the universe indirectly.

CORALINE:  Yeah. And we have background processes that we then call daemons that affect that will for us, don’t we?

JESSICA:  Oh, yeah.

CORALINE:  And that’s from the greek and it means exactly what you think it means.

JAMEY:  I think something that both of you have kind of been getting at during this episode and it’s like, on my mind now, is the difference between people’s perception and what is actual. Especially about people’s perception of me versus the real me kind of thing. And people’s perception is an interesting thing to think about in my opinion, because to some extent, you can’t control it. People are going to perceive however they want to and they have different things that are weighing on them and their kind of baggage that’s going to affect how they perceive you. But to some extent I think you do have control over the way people perceive you. Because when we’re talking about changing things about ourselves, it’s hard to change the things that are way down in there at the core of you. But it’s easier to change things that are closer to the surface of you.

And I’ve thought about this before, because I play a lot of ‘Vampire: The Masquerade’. And now we’re getting nerdy – characters in ‘Vampire: The Masquerade’ have a nature and a demeanor. And your nature is like the core and then your demeanor is like how you come across to people. And I used to think when I first started playing when I was like 18, I was like, “Oh, so like your demeanor is like when you’re being fake. Like what you want people to think about.” And a lot of times, there’s a lot of political intrigue and stuff in this game, so I was like, “Yeah, it’s like what you’re lying about.” And I feel like more and more I’ve been realizing it’s not necessarily something that you’re lying about but it’s something that you’re trying to broadcast, something about yourself that can be very true but that you’re trying to broadcast to other people.

CORALINE:  Yeah. I’m currently writing a book with my friend, Naomi Freedman, about the practice of empathy in software development. And we’re about halfway through the first draft at this point. We have an outline for what we want to write. And it pretty much tracks the career development of someone in technology. So, it starts out with getting hired and being an early career developer. And then it tracks you through. And the third part of the book is empathy in the community. So, we talk about open source and leading a project and conferences. The last thing that we have in the outline is managing your public persona. And I think we all have a public persona. And it’s a result of the API that we expose to the world. We say, “These are the ways that I will interact with you. These are the kinds of inputs I will accept. And here are the kind of responses that I will give.” And we have that API whether we’re deliberate about it or not. And we can definitely shape people’s impressions of us by interacting with them or not interacting with them and by governing the way that we interact with them to highlight those things about ourselves that we want to be public, or that we want to emphasize, or that we want to develop. And to deprecate those things about ourselves that we don’t want to interact with the world in that way.

JESSICA:  Sometimes – like you said Jamey, that people’s impressions of you, they’re not just about you. They’re also about them – and sometimes, what feels like broadcasting the most straightforwardly and honestly doesn’t give people the correct impressions. And sometimes, you can convey the truth indirectly better.

JAMEY:  Can you give me an example of what you’re saying?

JESSICA:  If my daughter skins her knee and what I want is for her to feel better, I might be like, “Here is the Neosporin. Here is the bandaid. We have to wash this right now,” with the intention of making her feel better. And that’s like what feels most direct and honest to me. But yet, for her to feel my intention of wanting her to feel better, what she needs is definitely not me to wash it off right away because that’s going to hurt. She needs me to say, “Oh my gosh. That looks like it hurts so much. I remember skinning my knee and that hurt so much.” And once we’re in alignment on how much it hurts, then I can offer water and a bandaid and she will experience that as wanting to help. But before that, my direct intention to help would not give her the impression of my intention to help.

CORALINE:  That’s the difference between sympathy and empathy. There’s this great animated short which talked about that very thing. So, you have person A who’s walking along and falls down a deep hole. And person B comes along and looks down and says, “Wow, sure is dark down there. I feel bad for you.” That’s sympathy. Empathy is jumping down to the bottom of the hole and saying, “I’m experiencing this darkness with you. Should we light a lantern?”

JESSICA:  So, it’s like empathy is step one: make it about them. Step two: communicate. As opposed to communicating directly from yourself outward.

CORALINE:  It’s a matter of what you’re centering. Are you centering yourself, which is not empathy? You can by sympathetic while centering yourself, but it’s still a form of narcissism. Or are you co-experiencing something and only solving the problem when the person is looking for help in solving the problem?

JESSICA:  If you want to teach functional programming, you can’t just say, “This is what idempotence means. This is what a monoid is.” You have to assume the perspective of the person you’re talking to. And start making metaphors and stuff to where they are, which is not like your natural [you-ness]. “I am a functional programmer in this story. And so, I will just use monoids.” That’s not going to give my coworker the impression that I want, which is, “Hey, this is a useful way to do it.” I have to go in between and use something that they can understand and move toward monoids. And that’s my demeanor. And I can adjust my demeanor to my audience. And the effect is conveying more of my original intention. They actually perceive more of what I wanted to say than if I had just said it.

CORALINE:  I think social media runs counter to that. I think you’re absolutely right. That’s the way to teach and that’s the way to establish rapport with someone. And social media is turning us to be very direct and not consider our audience and be declarative.

JESSICA:  Because there’s so many audiences in that.

CORALINE:  Yeah, you don’t know who’s paying attention. I think it’s helpful to have personas, just like you do in UX where you’re like, “Okay. I have end users with this set of characteristics. How is the software going to serve them? I have another person over here with a different set of characteristics. How is the software going to serve them?” And you actually name those people. I think we could be a lot better with our social media if we did personas for the people that we want to read our tweets or read our Facebook posts and try to understand not only what we want them to hear but how we want them to hear it.

JESSICA:  That’s a good point. Yeah, I mean that’s a lot to ask for every tweet. Not everyone’s going to do that. But if you really do want to broadcast your meaning to lots of people…

CORALINE:  That’s something you can do once and just say, “Oh, this tweet is for Alison. This tweet is for all the Alisons out there. Or this tweet is for all the Chads, because Chads do tweets, too.”

JESSICA:  So yeah, you could specify your audience. There’s a lot of things that I’ll only post in specific Slacks. So, I’ll post in work Slack.

CORALINE:  Yeah.

JESSICA: Or I’ll post in Greater Than Code Slack. Because I know who my audience is there, so I can communicate as lot more. Because I don’t have to worry about what the other personas are getting out of that.

CORALINE:  Yeah.

JESSICA:  So, you should join the Greater Than Code Slack. Speaking of which, support for Greater Than Code comes from listeners like you who, if you contribute even a dollar to our Patreon, you get to join our Slack and it’s really nice and friendly and low-volume and everything is wonderful. And the Greater Than Code Slack is my favorite.

So Coraline, if our listeners want to be more like you, how can they do acquire the superpower of boundless energy and badass-ery?

CORALINE:  No. You don’t want to be like me.

JESSICA:  Oh, oh. That’s true. That’s true. Don’t copy the answers. Copy the questions.

JAMEY:  I feel like I’m copying Coraline all the time. I feel like every major really cool thing that Coraline has done, I try to go and do it right after her. And I feel really bad about it.

JESSICA:  Why would you feel bad?

CORALINE:  Yeah, that shouldn’t [make you feel] bad.

JAMEY:  I just always feel like I’m turning to Coraline and I’m like, “Look, I did the same thing as you.” I don’t know.

CORALINE:  That makes me feel good, though. That means I’ve inspired you to action.

JAMEY:  Okay.

CORALINE:  So, that’s really cool.

JAMEY:  I’m glad that it makes you feel good.

JESSICA:  Or at least a guilt.

[Laughter]

CORALINE:  So, in order to acquire my superpower, what could someone do? I think being deliberate is probably the first step. Deciding who you want to be, or what you want to do, and paying attention to it and being deliberate about affecting a change in your life. When you’re deliberate, you don’t let life happen to you. You influence your own evolution and the evolution of the world around you. And just like in software, the only way to affect change is by paying attention.

JESSICA:  Sometimes, I think the only thing we really control in ourselves is our attention. And control is a strong word there, too.

CORALINE:  We certainly decide what to pay attention to. And if we don’t make that decision, that decision will be made for us.

JESSICA:  Video games.

JAMEY:  That’s true of lots of decisions. You don’t often get to go, “I’m not making a choice on this,” and then a choice never gets made.

CORALINE:  Yeah.

JAMEY:  Non-action.

CORALINE:  And you also have to deal with choices that are made for you. I’d mentioned Naomi Freedman. I was having a rough time at one point and Naomi said that a technique that she uses is pretending that whatever is happening to you on a given day is something that you have chosen and acting accordingly. That’s about taking control back, right?

JAMEY:  Yeah, I think inaction, people think that they’re not making a decision when they do inaction. And inaction is a decision.

CORALINE:  Yeah. And it comes from a place of apathy.

JESSICA:  Or helplessness. But when you take control like you said, when you’re like, “Let’s just act like I chose this,” then you’re not helpless. You had another action item, Coraline, that I think would help me have more of your superpower, which is to offload tasks that stress me out. I traded my husband. I do all the laundry if you do all the grocery shopping, because grocery shopping being a zillion million decisions is really draining and laundry is calming, even though it takes a lot more time.

JAMEY:  When you first were like, “I traded my husband,” I was like, “For what?”

CORALINE:  For this magic bean.

[Laughter]

CORALINE:  Yeah. And that’s an example of Jessica being deliberate, right? Of not allowing yourself to be put into a situation where you’re going to be overwhelmed and taking control of the things you can control and collaborating with people to affect a change in your life that even though it’s small affects your quality of life. And it’s all small things.

JESSICA:  Yeah. And having more people on our superhero team with different superheroes.

CORALINE:  Yeah.

JESSICA:  Because we could totally offload travel planning to Jamey.

JAMEY:  Yes. Actually, when I said that, Coraline was like, “Sorry that you’re wrong for liking travel planning,” I wasn’t offended. But I was just thinking like, “Well, someone better like it. No one’s going to do it.”

CORALINE:  Exactly, yeah.

JESSICA:  When we have Greater Than Code offsite, you’re doing the planning.

JAMEY:  Alright.

CORALINE:  No, not the offsite. The conference.

JAMEY:  Yes.

JESSICA:  Yeah. We can invite everybody.

CORALINE:  Cool. Well, thank you for all the wonderful questions today. I had fun. And I hope you had fun, too. And I hope people know now all of the meaning that I pack into those two words, code witch.

JESSICA:  Dun-dun-dun!

JAMEY:  I did have fun. Thank you. That was awesome.

JESSICA:  Yes, thank you. I have plenty to think about that makes me happy. So, we should say thank you to our listeners and we said thank you to each other. And see you in Slack.

 

This episode was brought to you by @therubyrep of DevReps, LLC. To pledge your support and to join our awesome Slack community, visit patreon.com/greaterthancode.

To make a one-time donation so that we can continue to bring you more content like this, please do so at paypal.me/devreps. You will also get an invitation to our Slack community this way as well.

Amazon links may be affiliate links, which means you’re supporting the show when you purchase our recommendations. Thanks!

Leave a Reply

Your email address will not be published. Required fields are marked *