Friday, March 29, 2024

Reading Papers in Volume

I sat at my desk with a pile of academic papers next to me waiting to be read. I worked at a research lab and reading papers was part of my job. My colleagues amazed me by reading scores of academic papers, calling up the right paper at the right time. I couldn’t compete. I couldn’t even keep up. I had received my Ph.D. a few years prior and felt I should have been able to. I wondered if I just didn’t belong at a research lab.
 
Then I wondered if I was missing something. I searched the internet and quickly found I was. I found Steve McConnel’s How to Read a Technical Article and Greg Phillips How to read technical papers—in quantity! Steve McConnel’s article was itself based upon (and acknowledged) How to Read a Book, the classic by Mortimer Adler. I learned that efficient reading is a learnable skill, just like any other. Here is what I wish I had been taught when I started grad school.

First, a caveat. If you are in school, you need to learn to fully read individual technical papers, in detail and considering every aspect, before you can read them in volume.

A Close-Up Shot of Paper Clipped Documents
Image by Kindel Media



I am not an academic. While I have a Ph.D. and used to work in a research lab, I am not paid to do research or to publish papers. Yet I still find it valuable to read papers such as conference proceedings and journals, as well as blog posts and white papers. Reading helps me to stay up to date in my field and to do my job better. Adding other people’s ideas to my experiences helps me to come up with better solutions to my technical problems.


I am paid to solve problems, not to read. Therefore, I must make the most of my reading time. I cannot read everything. Instead, I read papers through the lens of my problems.

 
Selecting Papers to Read

I read papers in three different situations, all in service of doing my job better:
  1. I’m trying to solve a specific technical problem.
  2. I’m keeping up on a general professional interest.
  3. A colleague sends me something interesting.
When I try to solve a technical problem, it often involves a lot of very focused reading. I cast a wide net for papers, using keyword searches in Google Scholar, tracing references from other papers, and asking colleagues in person and beyond. I generate a large pile of papers that need to be thinned into a manageable collection.

For example, I collected and summarized papers on flaky tests for my colleagues. We run a very large number of correctness tests to ensure our software works properly and without bugs. Flaky tests—tests that sproadically fail—are a distraction. They slow development and they increase the risk of bugs slipping into our code base. Based on my reading, we reduced the pain of flaky tests.

Keeping up on general professional interests is a more continual background activity. I am an expert on performance testing of software. I follow academic literature on the subject, keep an eye out for relevant industrial papers, and look out for other resources, all so that I can remain an expert in the field. Important conferences are a rich source of academic papers in one place.

Finally, I enjoy new and interesting ideas. Colleagues forward things to me since they know I appreciate when they do so. These papers may be performance related, performance adjacent, or touch on other interests of mine such as peer groups, technical education, and DEI, among others.

I suspect that I could fill all my time reading the papers I accumulate and still not read all of them. I must be efficient if I want to get the most out of them.

How I Read Papers

When I have a set of papers to read I follow a specific process. I take the first paper and set a timer for 5 minutes. Within my five-minute limit, I proceed in the following order: I read the abstract, the conclusion, the introduction, and scan the figures in the paper. Doing so gives me the best opportunity to get a sense for each paper. I actively look for and record the questions that come to my mind as I scan the papers: questions to dig deeper on, questions about the parts that confuse me. “How do they do X?” “How do they prove Y?” “Could we use Z?”

At the end of the 5 minutes I review my notes. If I have no questions, I am done with this paper. If I have questions, I put the paper aside for a deeper read specifically to answer those questions. Then I pick up the next paper to scan. 

With this process I can scan 12 papers in an hour. That might not sound like much, but without my process in place, I could easily spend an hour or more fully understanding one paper.

A Deeper Read

After triaging the collection of papers, I have a smaller collection of papers, each with a list of questions to answer. I’ll pick up a promising paper. I review my notes and questions for it, then read the paper solely to answer those questions. The questions provide a focus, allowing me to read faster. If the introduction is not relevant to my question, I skip it. If I only have a question about the implementation, I go straight to the implementation section.

This all felt unnatural when I started doing it. I was not reading the paper as the author intended. That is okay. I (and you) do not owe it to the author to read their paper, nor to read it as it was “meant to be read.” Good readers and writers know this. We owe it to ourselves to get the most out of the papers we read. We only owe the authors our gratitude and an acknowledgement when we use their ideas. Sometimes I send a thank-you note to acknowledge ideas I find particularly helpful.

Remembering Papers


My wonder at my colleagues’ reading ability was not just because they read so much, but also because they remembered details and made use of those details. I must take notes if I want to do that.

I use two tools to take, organize, and remember my notes from technical papers: Zotero and Anki.

I use Zotero to organize all my academic papers. New papers go directly into a triage folder in Zotero. Zotero supports highlighting PDFs and extracting highlighted text. It also automatically collects the bibliographical data for each paper.

In Zotero, I use folders to organize papers by subject. When I want to find details on a given topic, I look through the appropriate folder and review my notes on the papers. Sometimes I rescan papers. Each part of this process is so much faster and more efficient than when I photocopied papers and stored them in a filing cabinet in graduate school.

While I can find things quickly in Zotero, simply using the tool does not put the information at the tip of my tongue. For ideas and details I want to talk about or otherwise have available in my mind, I create digital flashcards in Anki. See The Nerdiest Thing I Do for more on my Anki usage.

Reading to Learn to Read

I am able to read much more efficiently since that day sitting at my desk overwhelmed by papers. There are still people who can read and retain much more than I can, but my reading is no longer a weakness. It’s a strength.

Wednesday, February 28, 2024

Writing (And More) That Was Useful to Me in 2023

Sitting at my computer recently, I looked back across my notes for 2023. I was following my annual review process, reviewing the goals I had set for myself last January and the notes accumulated since then. I had a good 2023, accomplishing many of the things I had set out for myself. Those accomplishments spanned changes to my job (new role), my writing, and how I take and organize my notes. 

Several resources helped me achieve those goals in 2023. These are the books, posts, videos, and tools that helped me change my world for the better. Maybe some of them will be useful to you.


Cover of the book "The Staff Engineer's Path" by Tanya Reilly. The lower half of the cover is looking up at the outline of a large support for a suspension bridge. Where the support should be is replaced with blue sky and leaves on a branch.
The Staff Engineer's Path by Tanya Reilly was one of the books particularly helpful to me in 2023. 

Wednesday, December 13, 2023

The Nerdiest Thing I Do

I stepped up to the end of a growing line of people at work. We were having an end-of-summer event and the line was for ice cream! To make the most of my wait, I introduced myself to the person in front of me. To my horror, he knew me and we had talked before. With prompting, I vaguely remembered our conversation. I wanted to crawl into a small cave and hide.
 
I have always been impressed with people with great memories: The people who remember others’ names, along with supporting details, after meeting them once. Those people are so dang thoughtful. To my continual disappointment, I cannot do that. I just can’t. Since I cannot remember those things naturally, I try to achieve the same effect through brute force, using flash cards.

Smartphone screenshot. White text on black background. The open app is titled Ankidroid. On the left side of the screen are bolded names of decks of flashcards. On the right are numbers showing the number of expected reviews for each deck.
Screen shot of my Anki decks before studying one morning. 

Wednesday, November 1, 2023

Should I Go to Grad School and Get a Ph.D.?

One of my favorite things to do is to formally and publicly address newly minted Ph.D.s with their title. “Congratulations Dr. Smith!” I’ve done it in person, on LinkedIn, and Twitter. Getting a Ph.D. is hard. It requires time, luck, and personal sacrifice. It makes me happy to acknowledge that person and their accomplishment.

I get to work with many extraordinary college students through my company's internship program. When I talk to them, some are deciding between going to graduate school or getting a job after graduation, but aren’t sure what to do. This post is my advice to those students.
David holding a small girl, both looking at the camera. David is wearing academic robes with blue academic hood around neck and going down back. David is holding a very small girl (toddler) who is wearing a purple dress.

Graduation day many years ago, holding my daughter after receiving my Ph.D., with my mother to the left. 



Monday, September 18, 2023

Hiking My Way To My Job

I got my current job because I hike. Rather, I wouldn’t have gotten my current job if I didn’t regularly hike.
 
Many people think that their success is solely due to their hard work. They planned, put in the effort, and achieved what they set out to do. They deserve credit for what they have done. However, I also think they benefited from a large helping of luck. More importantly, I think we do everyone a disservice when we claim complete control over and credit for our own success.

Man looking at camera in left foreground. Wearing a grey cap, glasses, and an orange shirt. 

Background is looking down over trees to  a partial view of a river with hills rising up from each side.
Me on a recent hiking group outing with the Hudson River behind me.



A Story of Success


The short version: I was a smart kid. I did well in school, and got into a good college and a better grad program. I earned a Ph.D., got a great job after graduating, and then an even better job several years later. Along the way, I published papers and patents and grew my network. I worked hard, charted my path, and succeeded. This is the story that teenage David would tell, of completing my destiny to have a great career in computing.

That story is short because it leaves out a lot of details. Let’s start with the easy omissions: I was born to two loving parents who raised me in a well-to-do neighborhood with good schools. I may have been an awkward child, but all the adults (and many of the children) expected and encouraged me to succeed. Unfortunately, many people do not grow up with that support. I was very lucky.

A Story of Chance

The long version includes a number of lucky breaks. I ended up at graduate school at the University of Illinois at Urbana-Champaign (UIUC) in part because my friend and classmate went there a year earlier. Seven years later I was hunting for a job as I finished my doctorate. The company and research lab I ended up with had a strong pipeline from UIUC. If I had gone to another school, I would have been less likely to end up where I did. Further, I was hired right before a hiring freeze. My hiring manager sped up my paperwork to make sure I got in. So, if I had been on the market a few months later, I would not have ended up with the same job. I loved working in that lab and got to know many amazing people, including IEEE and ACM Fellows, National Academy Members, and a Turing award winner.


Soon after joining the company, I joined a weekly hiking group at work. Many fellow hikers became friends. I know them solely because they also like hiking and worked at the same company.

A Second Chance


Moving forward several years, I had built a nice role for myself, in which I got to work on interesting projects and was well rewarded. However, my company was not growing and had gone through periodic layoffs. I didn’t worry about my job, but I did worry about how much I could accomplish in that environment. Then, across a year, several unrelated but important things happened.


Several members of my team had a side project that suddenly became successful. They and their project were moved to a new division. I was excited for my colleagues, but it also meant I needed to find a new team. Around the same time, my youngest child was finishing daycare and starting kindergarten. His daycare was located at the site of my office, and I had been dropping him off and picking him up every day. Finally, one of my hiking buddies had been laid off and started a new job at a startup I had never heard of before.

Because of the reorganization, I had to re-evaluate my job. Because of the health of the company, I was willing to look elsewhere. Because my son was done with daycare, I was no longer tied to my current office. Because of all these things, I decided to look far and wide for my new job.


One of the places I looked into was my friend’s startup. The one I only knew about because of him. The one he worked at because he had been laid off. I told him what I was looking for and described my skillset. It turned out that his company was looking for my exact skillset at that exact moment! I interviewed and was hired.

Let’s see all the small changes that could have happened and kept me from my current job. If my colleagues’ project hadn’t taken off, I’d have no need to look for a new job. If my son was younger, I’d still be tied to the daycare. If the company was healthier, I wouldn’t have looked outside it. If I didn’t hike or my friend wasn’t laid off, I’d be completely unaware of my current company. If all of this had happened a few months earlier or later, the company wouldn’t have needed me.



Poster. Title: "Tuesday Night Hiking Schedule May and June, 2010". Below the title on the left is a picture of several people climbing up a rock scramble. To the right is a heading "Hike Rating" with text descriptions for Easy, Strenuous, and Moderate. Bottom half of poster is a table with three columns. The categories are "Date", "Hike", and "Difficulty". The "Hike" column is the largest column and takes most of the space in the table. Below the table is text: "Join us for hiking and camaraderie ...."
Hiking group poster from 2010. The man in the yellow shirt is the friend who introduced me to my current company.

Do the Random Parts Matter?


At this point you may object: David, there may have been a lot of chance involved, but things would have worked out well for you anyway – the particulars were random, but your being successful was not by chance.

You may be right. But there are two important points to consider. First, my life would have been very different in ways I couldn’t have planned if I hadn’t ended up where I did. I had an acceptable competing offer in hand – I would have ended up at a very large company, instead of a small one. All my experiences would have been very different and I strongly doubt I would have become as well known in my field as I am. I may have been successful, but it would have been a very different version of success. It would have looked like a very different plan.

Second, I have the privilege of having a lot of opportunities. Yes, I have worked hard to provide myself with opportunities, but as covered above, I have benefited from many factors outside my control. Many people do not have all those opportunities or never get the right one.

Increase Your Luck


Hard work and planning matter: they are necessary for success, but not sufficient. So, by all means, celebrate your victories. You earned them. But also acknowledge your luck and be grateful for it. I am.

Finally, consider what you can do to increase your luck. You can put yourself in good situations where things are likely to go your way. I did that by working hard in school. I did that by applying for many jobs so I could compare multiple offers. I also did it when I chose to do something I love – hiking – which happened to introduce me to many people who would become friends.

Friday, July 21, 2023

Book Review: Nine Lies About Work

A few years ago, I read a New York Times article that changed my life. That may sound overly dramatic, but the effects of it show up repeatedly in my blog posts, including My Yearly Reflection and Planning and Writing and Labeling in a Journal. It’s why I knew Cookie Club was so important to me and it’s why I knew I should stop being a manager.

While writing one of those posts, I discovered that the article was based on a book. I was more than a little embarrassed to realize that I wasn’t crediting the ultimate source, and worse, that I hadn’t read that source.


I have finally rectified my mistake by reading the book Nine Lies About Work, and I’m so happy that I have. In this post, I share some of my notes from the book. Nine Lies About Work is nominally aimed at managers, but I think it is also useful for anyone who has a manager. Most importantly, I encourage everyone to read chapter eight about love in work.


Cover image of the book "Nine Lies About Work". The cover has 9 crumpled pieces of paper arranged in a 3x3 grid, followed by the subtitle: "A Freethinking Leader's Guide to the Real World". 

Below the subtitle, is the title: "Nine Lies About Work". Followed by the author's names Marcus Buckingham and Ashley Goodall.

Wednesday, July 5, 2023

Making Good Decisions

A few summers ago I got to work with a wonderful intern. It was a pleasure to work with him, as it always is with our interns. He was a rising senior, and at the end of the summer, we extended him an offer to return as a full-time employee after he graduated the following year. He was excited to receive the offer, but then, over the next couple of months, he tortured himself and everyone else over this offer. The problem was that he had too many good options, and he couldn’t choose among them.

This post contains my advice to that intern and to many interns since. However, I suspect (and hope) that it will be relevant to many people in addition to interns. Specifically, this post focuses on the importance of making good decisions, rather than trying to make perfect decisions.

Large piece of paper with hand written notes comparing three job offers. Across the top are the headings "Factor", "MegaCorp A", "Large Co B", Late Stage Startup C". Down the left side of the page are the factors "Salary", "Change to Get Rich", "Stability", "Growth Opp", "Interesting Role", "Work/Life", and "Commute". The rest of the table is filled out with plusses, and minuses, and some notes and questions.
Hypothetical comparison of three job offers


Wednesday, June 7, 2023

How to Work With David

Everyone is different, with their own unique interests and quirks. If you can tailor your interactions for each of your colleagues, you can get more out of them. If you make it easy for your colleagues to understand and adjust to you, they can get more out of you. In both cases, you end up with a more productive and enjoyable environment.

This post is my attempt to make it easier for my colleagues to understand and adjust to me. I wish to provide to anyone who works with me, the tools to get the most out of me. It builds upon (but does not depend upon) my previous post on learnings about myself. Additionally, I hope that this post may provide you with tools to work with anyone who happens to be like me, as well as the inspiration to share your own guide so that I may adjust to you.

Teenage boy standing on a newly constructed, short wooden bridge in the woods. The boy is holding a hammer and wearing work gloves.
My son standing on a wooden bridge on a hiking trail. He built the bridge with my help.


Monday, May 8, 2023

Learning About Myself

Two years ago I was hiking with two friends in the pouring rain on the side of a mountain in New Hampshire. We were a few hours into a two night backpacking trip and we were soaked through. For many people this experience would be hellish. It wasn’t for me. I knew we were well prepared and we were doing something that I love. It was the start of a great trip.
 
I spend a lot of time reflecting. I do this to work towards being my best self. I structure my life based on these learnings, making sure I satisfy my basic needs, do more of the things that give me energy, and limit my exposure to the things that steal my energy. Today, I would like to share what I have learned about myself. Maybe it will help you understand me a little bit better. Maybe it will inspire you to reflect on how to work towards your best self.

Panorama of a mountain scene. In the foreground are a line of rocks with short pine trees behind them. Behind the pine trees is looking out over a large valley, with a string of mountains off in the distance. To the left are three greenish peaks. In the middle there are bluish ridge in the very far distances, and to the right is another ridge of peaks that are closer than the ridge in the middle, but further than the peaks on the left.
Our view from Zealand Cliff in the White Mountains, several hours after hiking in the rain. Photo by Jay Doyle.