This blog focuses on tech. We talk about the implementation of tech, and we talk about the tech industry.
Occasionally I share a personal experience. I did more of that recently by hosting an “Ask Me Anything” (AMA) session in a Slack community to which I belong.
How it works: you have a time slot (30 minutes or an hour usually) in which people can ask you any question they want, and you give an answer off the cuff. I had more fun than I thought I would, and I’d absolutely do something like this again.
My answers include some techy ones, so I thought I’d show you the text of the AMA. Since all answers were off the cuff, you’ll notice that my replies are less polished than the writing you usually see from me. Please excuse the verbosity :).
I have included the questions that I was asked, but to protect the askers’ anonymity, I have not included their names.
Here we go.
What is your greatest technical accomplishment to date that you are most proud of?
I wrote an in memory database in four hours that was fully test-driven, fetched records in O(1) time, and supported nested transactions, with solutions in place to keep down the database footprint even while transactions were open. (Here’s a series I wrote about that project). I did it as a code challenge for a company that rejected me.
I was proud of it because a) yay testing, b) allowed me to think creatively about time and space efficiency, c) the sheer speed with which I had to do it (4 hours), and d) it was in Ruby, which is not the programming language I use in my day to day right now (I write chiefly Python and Swift at the moment).
As far as big projects, I managed to solve a whole bunch of business problems by re-imagining their data in a graph schema rather than a relational one, and porting the whole thing to a graph database accessed through an API. Again, fully test driven, and ended up being a useful tool for other team members to learn testing, REST APIs, and cypher (the SQL of graph databases).
What is your greatest leadership or coaching or mentoring accomplishment to date that you are most proud of?
I don’t know, but I have a mentor who has expressed to me that, of all his technical accomplishments, his biggest contribution to the field, he suspects, will be that he kept me in it at a time when I almost left.
I want to do that for someone else. I write in hopes that that person finds me.
How are you leveling up these days?
This year I accepted a host of guest lectures and keynotes, and I started teaching a class in the Master’s Program for Computer Science at the University of Chicago.
I spend a lot of time leveling up right now on how to share the magic of programming with my audiences. I send them a lot of surveys about what’s working and what isn’t, and I look to actual magicians for inspiration of how to make the material exciting. I also do a lot of deep diving into Swift source code. That codebase is beautiful, and I’ve learned a lot from it.
What are the top 3 places or things you would recommend to a tourist in Chicago?
2. The Russian Tea Room (similar to the Russian Tea House in Manhattan, but the afternoon tea service is half the price.)
3. A show at the Chopin Theatre. Truly outdoes theaters three times its size on sheer creativity.
^ If you’re going to the Chopin, pop into Alliance Bakery afterward. Best pastries in the neighborhood.
The tone of your blog is a perfect balance of confidence and fun (e.g. the portion on “do you want to hire me?” is brilliant). Have you deliberately worked on this tone? Or does it come to you naturally?
Hahahaha—SO. MUCH. WORK. I’d say I have gotten much better over the past two years. The earlier stuff is still up, and you can see in it that I hadn’t nailed this yet. For example, here’s a post from the first year of this blog about learning Golang. The writing is fine, but the voice isn’t there the same way it is now.
I take inspiration from several folks’ voices: Bill Bryson, Ira Glass, Valerie Aurora, Natasha Lyonne, Grace Hopper, Ryan Ashley, Michael Lopp, and the little child who lives in my head who still gets so excited every single time the code does what she wants.
For reference, the question refers to this page on the blog.
If you had to choose between writing, speaking, writing code or mentoring, which would you choose and why?
I’d write code. But I’m so glad I don’t have to choose 🙂
What was the most surprising or interesting thing about writing a book?
My first book was about coaching coxswains, and I was shocked at the way it firehosed onto the page. That’s not a common occurrence for writers, though, as I understand it.
Would you consider doing podcasts? or being a guest on a podcast? I love reading, but I find podcasts very accessible when I’m out and about.
I would absolutely consider being a guest on a podcast. In fact, I have guested on one podcast called Greater than Code in the past. I would also consider hosting a podcast, but not alone: instead I’d aim to join the team of a podcast that is already established.
Do you feel you have a specific audience that you write for? Or do you write for everyone?
I write chiefly for a technical audience, since a lot of my writing is about code. Over time that has shifted, as more managers and directors of technical teams have found value in my work on remote strategy, building technical teams, and crafting a tech team’s culture.
Could you talk a bit about your path to writing: do you find it easy? Have you always been a writer?
I wrote from a pretty young age. I kept a journal while traveling as a teenager and a young adult, and I wrote a blog and a book about being a coxswain while I was doing that.
I’ve also written a few lesbian romance novels which are technically available on Amazon, but I did it under a pen name that I do not give out :). I started blogging about tech after I started my professional journey in the field. I wouldn’t say I find it easy, but I enjoy it enough that I don’t mind drafting and workshopping pieces (most of the time).
What sorts of mentorship / guidance have you received and have been valuable to you over the course of your career?
I took some programming classes in college: one awesome one, and one horrible one that convinced me I wasn’t smart enough to code. After college and a failed career experiment, I found my way back to code.
I had a mentor who helped me get started by offering me the chance to TA at his bootcamp. Then I went to Pivotal, and I had a mentor there who had made rapid programming skill development his personal mission, and I learned a lot from him. I have not ever had a writing mentor or a publishing mentor, but I did have a teacher who recommended I keep a blog. Best piece of professional advice (for me) that I ever received.
Have you ever dealt with burnout?
I have. Dealing with it right now, in fact. I have been fortunate: my burnout comes from the energy expense associated with the friction of getting work done in the absence of team trust or functioning processes.
The magic of code has never left me: I have never seen something work, onscreen, from code I wrote, and not felt thrilled about that.
What’s fun for you?
I love writing, and I love teaching. I teach an iOS course at a university right now, and I’m having an absolute blast.
I also like to work out. I do
crossfit functional fitness and olympic weightlifting. My gym friends are a huge part of my social circle.
I also like to read, to draw, and to travel. I’m working harder right now on making deliberate time for these things.
Do you track traffic on your blog? What do you use? Do you feel like you have a good handle on what made it start to take off?
My blog is on WordPress, and it has some built in metrics. The blog started to take off after I had been writing for about four years.
I don’t really know what did it: the initial purpose of the blog was for me to record my progress and have a place to share my perspective without being interrupted. I’m grateful that people like it, though :).
For a long time, the most-visited post was about how to do a card flip animation in Android (it used to be a rather arduous and poorly documented process). In the past year and a half, some of the other posts have eclipsed it: the remote work ones, and the rubric for an inclusive culture. People also really like “Anger and Sadness in the Workplace.”
How do you have time for all doing all of these exciting things?
Writing does not take me as much time as it takes most people, so that helps. The rest I find that I have to plan in waves: this time slot each week for teaching, this one for conference prep, this one for socializing, et cetera.
The more I do it, the more material/previous work I have handy, so things are less “from scratch” than they used to be. I think the biggest thing for me has been learning to repackage stuff from one format into another format. I used to think people would feel like I were cheating them if I did that, but it turns out that sometimes people really like having the audio summary version on hand, for example.
I’m also very cognizant that I owe my success to several people who have stepped in at important times to help me out. I leave wiggle room in my schedule to make sure that, if they ask me for a guest lecture or an intro or whatnot, I can do it.
What is/was lunch today?
Cauliflower florets, brussels sprouts, sweet potato, and pork sausage, plus a yogurt parfait (I have a protein number I’m supposed to hit)
Also you mentioned working mostly in python and swift these days. What do you really like about each and what do you really wish were better about each?
Python: I love python for data analysis and data science tasks. The Jupyter notebook is a great way for presenting findings from a data science experiment. I also think that Python’s commitment to its conventions makes Python written by people of all levels more legible to people who are just learning.
I don’t lean into Python for tasks that need to be especially performant, due to the global interpreter lock. Also, if I’m writing a web app, I’ve tended to go Ruby or Java, but Django for Python is pretty awesome and lately I’d be more inclined to do that instead in some cases. Some of Python’s string manipulation syntax is odd and unlike all the other languages of its aesthetic, so I wouldn’t mind if that changed.
Swift: I love Swift. I write iOS apps in it mostly, but I know there are efforts afoot to build web frameworks for it and to port it to Android. First of all, it’s open source. That’s important to me, and spelunking the Swift codebase has helped me learn new things. Second, it’s designed with both imperative and functional paradigms in mind, which makes it a great teaching language. The flexibility of protocols (relative to traditional interfaces) demonstrates a lot of creativity on the part of the developers.
I’m happy it’s developing quickly, but I’d say the frequency of upversions and backward breaking changes make it a poor choice right now for teams without the bandwidth to be stopping development to make the language upgrade on an annual basis. I expect this to mellow out as it matures.
What advice do you have for people (possibly URM) that are discouraged from participating and taking leadership roles in tech?
I would tell them that it will be hard. That they’re not obligated to do it, if they don’t want to. That they’ll have more responsibility than authority, probably always. That things will happen to them that are out of their control. But that is no different than any path they could take, and in a leadership role they have the opportunity to make it better for the next one.
What would you tell a 2.5 year old girl (I have a daughter this age) about the future?
Oh gosh. I wish I knew. I know that my grandma (a holocaust survivor) came to the U.S in the hope that nothing like that would ever crop up for her family again. Yet here we are. So it’s tough.
But when I was a child, my mom taught me about stars and rocks and animals and plants. She taught me about the scientific method, and she taught me Spanish, and she took me to museums. She made sure I knew that science was for me, the same as it was for everybody else. And she encouraged me to speak up for what I thought was right. And I think that those lessons have galvanized me to do what I can to move us toward the future I think my grandma wants.
Grandma is still alive by the way. 94 years old, eats nothing but strawberries and Chips Ahoy cookies, and spends her time looking out her window, busily outliving every last Nazi.
Update, February 2020: Grandma has made her exit. She was an absolute badass and you’d have been lucky to know her. To that end, I wrote a piece that’ll help you do just that, a little bit 😊
And what would you tell her dad?
My answer to this one is based not on my own experience, but on the experience of a friend of mine who is about 80 years old, who has been a women’s counselor for about 50 years.
Terry told me that many dads spend time doing projects with their daughters when they are small.
But sometime around when the daughter hits puberty, that tends to stop. Terry believes that so many women’s lives, and their dad’s lives, might have benefitted in those years from the two of them having an activity that they regularly enjoyed doing together.
It’s hard to make time for things, but that one is important.
I can say, having been a daughter, that some of my best memories from childhood involve making saddles and other accessories for my model horses with my dad.
As a leader what’s one thing you wish you had learned earlier?
How to apologize and own my mistakes. I learned it when I was 19 from a truly egregious fuckup while coxing a race. I lost the boat the race. I felt awful.
I had to learn how to own up, apologize, and move forward with a team that no longer trusted me…to rebuild their trust. I got lucky and learned this lesson early. I wish I had learned it even earlier. And I always, always wish it were easier.
Do you have any communication tips for remote teams spread across timezones?
Absolutely 🙂 In fact, I have a series on this!
This was the end of my AMA.
I answered questions for one hour, but I went back the next day and answered a couple of straggler questions, too. As you can see, short answer format. I had a lot of fun.
If you’re interested in doing something like this, I highly recommend starting out in a Slack community or another group you’re in with some social accountability. I hear that people sometimes do these on Twitter or Reddit, but I can’t speak to that experience (yet!)
If you enjoyed reading this, you might also like:
This post about anger and sadness in the workplace (not related, but it has really helped a lot of people)