RACH Profiles

Barbara Liskov: The Life Behind Software’s Hidden Promises

Barbara Liskov photographed by Kenneth C. Zirkel on May 29, 2010
Barbara Liskov MIT computer scientist 2010, May 29, 2010. Copyright: Kenneth C. Zirkel (Kzirkel) / Wikimedia Commons. CC BY-SA 3.0. Original file unchanged; CSS sizing, mild desaturation and display cropping only. Display adaptations share the same CC BY-SA 3.0 license. No endorsement implied.31, 32, 33

RACH Profiles · Technology

Barbara Liskov: The Life Behind Software’s Hidden Promises

From an unexpected programming job to data abstraction and fault-tolerant systems: a life spent making complicated software easier to reason about, with the collaborators, choices and limits left in view.

Current role
Institute Professor Emerita, MIT.1, 2
Focus
Programming methodology, abstraction and distributed systems.
Evidence boundary
Research results, historical recollections, team-reported adoption and public benefit are distinguished.

The achievement that became ordinary

At a public lecture in 2009, Barbara Liskov described an unusual response to winning computing’s most famous award. Her husband had been following the reaction online and found someone wondering why she deserved recognition for ideas that everybody already knew. In MIT reporter Larry Hardesty’s account, the story became a joke with a serious point: principles that once required invention had become part of the profession’s common sense.25

That is a difficult kind of achievement to photograph. It does not resemble a finished bridge or a machine displayed behind glass. Its traces are in how programmers divide responsibilities, define promises, replace components, and reason about systems too large for any one person to hold in mind.

Liskov’s career is a story about making that reasoning possible. It is also a story about changing direction: a mathematics graduate discovering programming through a job, an artificial-intelligence doctoral student becoming a systems researcher, and a language designer turning toward networks and failure. Her most durable contribution was not a single commercial product. It was a set of ways to make complicated software more understandable—and therefore more capable of being checked, maintained, and improved.

Mathematics before computers

Born Barbara Huberman in California in 1939, Liskov grew up in San Francisco, the oldest of four children. In her 2001 oral history with historian Janet Abbate, she remembered a home that did not discourage her interest in mathematics, but did not explicitly prepare her to imagine a professional career either. She took advanced mathematics while trying not to draw attention to herself. These are her recollections, not a reconstructed childhood scene.4, 5

At the University of California, Berkeley, she earned her mathematics degree in 1961. The Computer History Museum’s account places her entry into computing after that education, rather than in a childhood encounter with a home computer. Her first programming work was at MITRE, followed by a position at Harvard. In autumn 1963 she entered Stanford’s doctoral program, working with John McCarthy.4

The sequence matters because it resists a familiar technology biography: the prodigy whose eventual profession appears inevitable from the beginning. Liskov had mathematical ability before she had a settled professional destination. Paid work gave her access to a field that her undergraduate education had not yet revealed. Her career was not less consequential for beginning with exploration rather than a master plan.

A closed door and an unexpected profession

In an interview published by Ryan Peterman in April 2026, Liskov recalled applying to mathematics graduate programs and receiving a postcard from Princeton saying women were not admitted. She had an offer from Berkeley, but decided she was not ready to commit to a mathematics doctorate. A programming job became her route into computing. This is an attributed recollection of the early 1960s, not a description of present-day admission policy.6

Her eventual Stanford dissertation examined a program for chess endgames. As she told Quanta in 2019, McCarthy suggested the subject partly because she did not play chess; she approached the problem through written descriptions and algorithms. The episode offers a useful contrast with the mythology of artificial intelligence. One need not be a champion player to ask how a machine should represent a tightly specified problem.7

She completed her doctorate in 1968. It is enough to say she was among the earliest women to receive a US computer-science doctorate. Some institutional and popular accounts call her the first, but that broader claim depends on definitions and overlooks other early recipients. The historical achievement does not require an exaggerated superlative.4, 26

Learning to build—and learning to explain

After Stanford, Liskov returned to MITRE as a researcher. This was not simply a holding pattern before an academic career. Work on the Venus operating system gave her experience organizing a real system, and her later language work grew partly from those practical questions. MIT’s award announcement identifies Venus as an important source of the ideas that followed.24

Another contribution came from a person rather than a machine. In the Abbate interview, Liskov credited her supervisor, Judy Clapp, with reading and criticizing an early research paper so that she could reorganize it. The story places technical writing inside the history of invention. A useful idea must become clear enough for someone else to inspect; feedback on an argument can be as consequential as feedback on code.5

Her systems research brought her to the attention of MIT, where she joined the faculty in 1972. The university would become the institutional home of her major projects, but her preparation crossed commercial and academic settings. She had programmed, maintained software, pursued doctoral research, and built systems before asking a research group to help establish a new programming discipline.4, 24

The first year was not a victory lap

Liskov’s Infinite MIT interview describes a difficult first faculty year. She was assigned a hardware course outside her strongest preparation and relied on a graduate student teaching colleague to help her stay ahead of the material. She remembered students testing her authority and people mistaking her for a secretary. She also recalled pressure to return to artificial intelligence when she wanted to pursue systems work. The account is hers; it does not establish the motives of every person involved.8

She persisted with the research direction she found compelling. In that same recollection, Jack Dennis helped her move to the systems floor, a practical act of support that changed her immediate environment. By the next year, teaching familiar material and finding a better research setting had made the situation easier.

These details complicate the phrase “joined MIT.” An appointment opens a door without automatically supplying belonging, suitable assignments, or a clear path for the work. The life story is not only about an institution recognizing talent. It is also about a new faculty member finding the conditions in which that talent could be used.

A boundary people could reason about

The central problem was how to build a large program without having to understand every detail at once. Dividing a file into smaller pieces was not sufficient. The pieces needed meaningful responsibilities and rules governing how they could interact.

MIT’s teaching material explains an abstract data type through its operations and behavior, with the internal representation kept behind a boundary. Imagine, as an illustration, a set of names. The rest of a program might need to add a name, remove one, or ask whether it is present. It should not have to depend on whether the names are stored in a list, a tree, or another structure. That choice can change without forcing every caller to change with it.11

This is not concealment for its own sake. The boundary lets different people reason about different obligations: the implementer must make the operations satisfy their specification; the user must respect that specification instead of reaching into private details. Independence is earned through a precise agreement, not achieved by ignoring complexity. That distinction connects Liskov’s mathematical instincts to the social reality of software built by teams.

Making an idea into a language

CLU gave the abstraction idea a concrete form. Its name came from the cluster, the language mechanism grouping a data representation with the operations allowed to work on it. The principal paper, by Liskov, Alan Snyder, Russell Atkinson, and Craig Schaffert, described support for procedural, data, and control abstraction. The work was not merely a request that programmers behave carefully: language mechanisms were meant to help enforce the separation.10

The paper also addressed incremental development with compile-time type checking. A large program could be assembled from separately developed parts without abandoning checks on their compatibility. The contribution joined conceptual clarity with the practical question of whether an implementation could make that clarity useful.

CLU should not be described as if it invented every feature associated with object-oriented programming. Its particular achievement was demonstrating a disciplined approach to abstraction. Other language traditions supplied other mechanisms and priorities. Treating those histories as one person’s invention would obscure precisely the collaborative, cumulative process that made later software possible.

Inside the design workshop

Liskov’s 1992 history of CLU describes weekly design meetings and a sequence of 78 internal notes, beginning in December 1973 and ending in July 1979. The details are revealing. Ideas were proposed, examined, reworked, and tested against both implementation and use. Liskov led the project and made final decisions; she also described the design as a group effort in which individual ownership of most features was difficult to isolate.9

Alongside Snyder, Atkinson, and Schaffert, the evolving group included Robert Scheifler and Eliot Moss. Stephen Zilles contributed to the early abstraction work. Naming them changes the picture from a solitary flash of insight to a sustained research workshop.

The group did not let a convenient implementation dictate the language’s meaning. Nor did it equate rigor with writing a formal definition of every tentative design. Liskov’s account emphasizes careful reasoning and explicit descriptions while ideas were still changing. This was a demanding form of restraint: make the meaning clear before polishing the notation, and resist adding a feature merely because it can be built.

A research success, not a mass-market product

In her 1991 interview with William Aspray, Liskov described CLU primarily as a research vehicle: a way to sharpen ideas and communicate them. She judged the language successful on those terms. She also acknowledged, looking back, that further work after the main design period might have helped its continuation, although that work would not have been the research she wanted to pursue.12

This was a consequential choice, not an incidental footnote. A language needs more than good ideas to become a widely supported product. The work of distribution, documentation, maintenance, and meeting users’ changing needs can outlast the initial research by decades. Liskov chose another set of questions rather than devote her career to making CLU dominant.

That boundary prevents two opposite mistakes. CLU’s limited commercial reach does not erase its intellectual influence; influence does not make it a hidden mass-market success. The language helped demonstrate an approach that others could take forward. Its biography is therefore partly a story of ideas leaving their original vehicle behind.

Teaching the discipline, not just the syntax

Research can reach people through a programming language, but also through a course. Liskov and John Guttag’s Abstraction and Specification in Program Development, published in 1986, organized a method for making software understandable, modifiable, and maintainable. The publisher describes material developed over a decade of teaching, with examples and exercises that asked readers to practice the method rather than merely admire it.13

The book’s concern with dividing projects into independent modules also made it a book about cooperation. Separate groups need more than permission to work separately: they need agreements strong enough that their results can be put back together. A specification is therefore both a technical statement and a way to coordinate responsibility.

Guttag’s bibliography records the later Program Development in Java, published in 2000 with Liskov. The change of language did not mean abandoning the underlying discipline.14 MIT’s later abstract-data-types lesson traces its course lineage back to their earlier teaching. That is a more concrete form of educational influence than claiming that every programmer personally learned from her.11

The promise behind a famous principle

The Liskov substitution principle carries one surname, but the mature technical account needs two. In their 1994 paper A Behavioral Notion of Subtyping, Liskov and Jeannette Wing examined what it should mean for one type of object to be a subtype of another. The relationship was behavioral: properties established about the broader type should remain valid for its subtypes.15

A simple illustration is a component that promises to accept a certain range of inputs and return results satisfying an agreed condition. A replacement cannot quietly demand more from callers or deliver less while expecting old programs to remain correct. Matching a name or a list of method signatures does not, by itself, fulfill the promise.

The principle is not a magic test that automatically catches every software mistake. Its force comes from making the agreement explicit enough to reason about. It also sets a limit on a seductive kind of reuse: a hierarchy that looks tidy in a diagram can still be wrong for the behaviors a program depends upon. Wing’s coauthorship belongs in that account, not in a footnote after the famous name.

When the program no longer lives in one place

Distributed computing widened the problem. A program spread across machines must cope with communication, concurrency, and the possibility that one part fails while another continues. Argus, developed by Liskov’s group after CLU, explored language support for that setting. MIT’s institutional account places it among her major projects, alongside the later Thor database system.3, 24

The human meaning of this shift is easy to miss. Someone using a service experiences one task, even if the task is divided among several machines. A partial failure is still their problem if it loses work or leaves them unable to tell what happened. Software organization must account for those possibilities before a demonstration becomes a dependable service.

This profile does not claim that Argus itself ran the world’s banking systems or search engines. Its significance lies in the research questions and mechanisms it explored, and in the larger body of distributed-systems work that followed. An experimental language and a deployed service are different kinds of achievement; recognizing the first does not require inventing the second.

Keeping copies in agreement

Liskov and James Cowling’s 2012 Viewstamped Replication Revisited explains a technique for services whose computers can crash. Maintaining multiple copies is only the beginning. The copies must agree about operations, change their organization when a replica fails, and let a recovered machine rejoin without confusing old information with the current state.16

The report also addresses changes to group membership and the number of failures the group can tolerate. Those are practical questions about a service that has to evolve, not simply a static puzzle about machines that never change.

The method’s boundaries are part of its value. A crash-failure model is not the same as a model in which a compromised machine sends contradictory or malicious messages. A protocol can offer strong guarantees under its assumptions without solving every threat. For readers outside computing, that distinction is analogous to understanding what conditions an engineering design was tested to withstand. “Reliable” is meaningful only when its scope is stated.

Taking arbitrary failure seriously

Miguel Castro and Liskov’s 1999 paper Practical Byzantine Fault Tolerance tackled a harder failure model. A faulty component might do something arbitrary, including behaving inconsistently, rather than simply stopping. The authors proposed a replication algorithm intended to make tolerance of such behavior practical in asynchronous network environments.17

They implemented a fault-tolerant NFS service and reported performance only three percent slower than a standard unreplicated NFS service in their experiment. That number belongs to that implementation and comparison. It is not a universal overhead guarantee for modern applications, nor evidence that any system adopting the technique becomes unhackable.

The important achievement was an implementable argument, supported by an experiment, against the assumption that stronger fault tolerance must always be prohibitively expensive. Castro’s role is inseparable from it. The result gave later researchers and engineers something specific to examine, improve, and challenge—a much more durable contribution than an unsupported assurance that a system is secure.

Practical does not mean effortless

Later researchers tested the distance between a protocol and an application. In a 2011 paper, Nikos Chondros, Konstantinos Kokordelis, and Mema Roussopoulos described their experience trying to use publicly available PBFT middleware for an electronic-voting application with demanding reliability requirements. Their subject was precisely the friction hidden by an attractive label: how practical was “practical” fault tolerance for application developers?18

This is not a claim that the original research was invalid, and it is not a newly discovered 2026 security warning. It is historical evidence that implementing a powerful technique in a real application introduces further questions. Protocol assumptions, application behavior, and the surrounding software must fit together.

A fair recognition of Liskov therefore leaves space for criticism of the work’s implementation and limits. The achievement is not that she ended software failure. It is that she and her collaborators supplied clearer tools for reasoning about failure—and tools that other researchers could scrutinize. A field advances when that scrutiny remains possible.

Safety without surrendering performance

The Thor project returned to a familiar tension: would protecting a program’s boundaries make it too slow to be useful? Its 1996 paper explored persistent objects shared by applications in a heterogeneous distributed environment. Encapsulation was central: applications were supposed to interact with objects through their methods rather than bypassing their rules.19

The paper reported techniques for safe sharing and client-side cache management, with experiments on OO7 benchmark traversals. Those experiments supported the authors’ argument that safety and performance need not be treated as an automatic either-or choice. They did not establish a universal performance advantage for every database workload.

The author list is itself part of the story: Liskov, Atul Adya, Miguel Castro, Mark Day, Sanjay Ghemawat, Robert Gruber, Umesh Maheshwari, Andrew Myers, and Liuba Shrira. Such a project is made from many interlocking contributions. A profile centered on its research leader should help readers see that structure, rather than turn the colleagues’ work into an anonymous extension of one person’s talent.

New settings, familiar obligations

In Cross-chain Deals and Adversarial Commerce, first submitted in 2019, Maurice Herlihy, Liskov, and Liuba Shrira considered how independent parties who do not trust one another could cooperate safely. Questions familiar from distributed data management—combining steps, recovering from failure, and coordinating access—had to be reconsidered when participants could be adversarial.20

This was a technical investigation, not a claim that commercial blockchains had solved trust or delivered a measured humanitarian outcome. It does not justify recommending a token, company, or investment. Its place in her life story is narrower and more interesting: the underlying concern with precise obligations continued to matter when the setting changed.

Across these projects, RACH sees a recurring intellectual habit. First identify what other parts of a system are allowed to assume. Then ask how those assumptions can be protected as the system changes or fails. The continuity is an interpretation of the published work, not a claim that Liskov began her career with every later application already in mind.

Changing the institution as well as the code

In 2007 MIT appointed Liskov and Wesley Harris to share the associate-provost role for faculty equity. Their remit included recruitment, retention, promotion, career development, and work-family issues. Liskov’s appointment took effect that July; Harris’s was scheduled to follow after his department-head service. This was a historical administrative role, not her current title.21, 23

MIT’s subsequent institutional report describes work on faculty searches, meetings with department heads about junior colleagues’ teaching and committee burdens, access to space and equipment, and work on parental-leave and tenure-extension policies. It also describes Harris’s parallel recruitment and career-support efforts.22

The record supports recognition of concrete institutional labor, while stopping short of assigning all later changes in faculty diversity to two people. An appointment announcement is not an outcome study. What it does reveal is a broader understanding of opportunity: admission to an institution is not the end of the problem. The conditions under which people teach, care for families, and sustain research also shape whose work becomes possible.

Why RACH recognizes Barbara Liskov

RACH stands for Recognizing the Achievements and Contributions to Humanity. We recognize Liskov for advancing methods that help people build understandable, reusable, and fault-tolerant software; for teaching those methods; and for work supporting a more inclusive research institution. The 2023 Franklin Institute citation likewise emphasizes reliable, reusable programs rather than a particular consumer product.26, 27

The benefit is enabling, not readily expressed as a count of lives saved or dollars recovered. Better ways to structure software can help the people who depend on it, but the social value of a particular application still depends on what it does, who controls it, and whether it works in practice. We have not calculated a personal share of the world’s software reliability.

Recognition also belongs to the students, coauthors, teachers, programmers, maintainers, and publicly supported research communities named throughout this account. Liskov’s story is especially valuable because her work makes those dependencies visible: good systems do not ask every component to do everything. They make responsibilities clear enough that separate contributions can work together.

What she is working on now — October 7, 2026

MIT’s central directory lists Liskov as Institute Professor Emerita; EECS uses “Institute Professor (post tenure).” CSAIL’s profile still describes leadership of the Programming Methodology Group and interests in programming methodology and distributed systems, but its displayed update is from November 2024. We do not turn that undated research agenda into a claim that a particular new project launched this week.1, 2, 3

Her April 2026 Peterman interview is a recent, verifiable public contribution: she explains modularity, distributed computing, and choices in her research career. It is an interview about work across decades, not a newly published scientific result. No new 2026 paper authored by her was verified in this reporting pass. Her personal MIT homepage and the group site could not be reached, and no personal social feed could be authenticated from the accessible official pages.6

A timely development comes from other engineers. On September 28, Apache Iggy’s Grzegorz Koszyk reported that its clustering implementation used the Liskov–Cowling version of Viewstamped Replication. He described the team’s design choices, benchmarks, remaining performance questions, and a recovery-related qualification that led them to persist view information. This is the project team’s account, not an independent reliability audit, and Liskov is not presented as an Iggy developer.29

That distinction preserves the real news: researchers’ work can remain useful long after its original publication, while new teams deserve credit for adapting it and exposing its limits. The current chapter includes the continuing life of her ideas, without pretending that every descendant project is work she personally performed.

Leaving work that others can inspect

MIT Libraries’ archival repository preserves CLU files from 1976–1989, most from the language’s earlier development period. These are materials from the Tapes of Tech Square collection, made available so that an early version can be studied and reconstructed. They are not a newly announced programming language or evidence of a current commercial launch.28

The archive supplies something a prize citation cannot: an opportunity to examine artifacts rather than rely only on recollection. Libraries, archivists, and software historians make that possible. Preserving source files is another form of collaboration across time, connecting people who built a system with readers who were not alive when its design questions were open.

In her 2009 MIT interview, Liskov emphasized finding work that fits one’s abilities and interests, and declined to predict the exact form computing would take over the next half-century.30 That combination suits this life: confidence about methods, curiosity about problems, and caution about forecasts. The systems change. The obligation to explain what they promise—and what they cannot promise—remains.

Methodology, disclosure, and corrections

This independent public-record biography was researched, written and internally checked with AI assistance. No interview, outreach, subject approval or separate human-editor review is claimed. Recollections are attributed; explanatory examples and interpretive connections are RACH’s. No private scenes, dialogue, motives or emotions were invented. Reporting cutoff: October 7, 2026.

Official MIT institutional profiles, the central directory, available research records, archival materials, public interviews and current project reporting were reviewed. MIT’s personal and Programming Methodology Group sites were inaccessible. Searches did not establish an authenticated personal social feed or a new 2026 paper authored by Liskov; no exhaustive current bibliography or social audit is claimed. Historic profiles sometimes use obsolete titles or broad priority claims. The central directory’s emerita title is used here. Paper summaries are not claims of independent replication; the full 1986 book was not reviewed.

No payment, partnership, endorsement, interview or other arrangement with the subject or organizations was arranged. This profile does not endorse a software product, investment or security guarantee. Public research funding, collaborators and institutional context are part of the record; this is not a complete financial-interest audit.

The portrait’s creator grant, file history, photographer account and embedded copyright and camera metadata were checked. The image and display adaptations are CC BY-SA 3.0; that license does not apply to this article. Send documented corrections to info@rachorg.org. Material revisions will be dated. Narrative count excludes navigation, citations, methodology and sources.

Sources

  1. Institute Professors directory, MIT. Checked October 7, 2026; lists Institute Professor Emerita.
  2. Barbara Liskov, MIT EECS. Current departmental page says Institute Professor (post tenure).
  3. Barbara Liskov, MIT CSAIL. Institutional research interests; page last updated November 2024, not proof of a new 2026 project.
  4. Barbara Liskov, Computer History Museum. Historical biography and education chronology.
  5. Oral history, 2001, Barbara Liskov interviewed by Janet Abbate / IEEE History Center. February 8, 2001 recollections; briefly paraphrased, no transcript quotation reproduced.
  6. Turing Award Winner: Data Abstraction, Dijkstra, Distributed Systems, Barbara Liskov interviewed by Ryan Peterman. Published April 27, 2026; historical recollections and current public discussion, not a newly dated technical result.
  7. The Architect of Modern Algorithms, Susan D’Agostino / Quanta Magazine. November 20, 2019 independent interview; views dated and attributed.
  8. Barbara Liskov oral history, Infinite MIT. Historical interview transcript; not presented as a 2026 interview.
  9. A History of CLU, Barbara Liskov / MIT. 1992 author history, especially design meetings and collective credit.
  10. Abstraction Mechanisms in CLU, Liskov, Snyder, Atkinson and Schaffert / MIT. Primary paper manuscript; journal version appeared in 1977.
  11. Reading 10: Abstract Data Types, MIT 6.031. 2020 course material; technical explanation and teaching lineage, not current enrollment evidence.
  12. Oral history, 1991, Barbara Liskov interviewed by William Aspray / IEEE History Center. August 6, 1991; research-versus-product choices and public funding. Paraphrase only.
  13. Abstraction and Specification in Program Development, Barbara Liskov and John V. Guttag / MIT Press. 1986 book and publisher description; full book not reviewed.
  14. Publications, John Guttag / MIT. Primary bibliography confirms the 1986 and 2000 books.
  15. A Behavioral Notion of Subtyping, Barbara Liskov and Jeannette Wing. 1994 paper; behavioral guarantees and coauthorship.
  16. Viewstamped Replication Revisited, Barbara Liskov and James Cowling / MIT. July 23, 2012 technical report; crash failures, recovery and reconfiguration.
  17. Practical Byzantine Fault Tolerance, Miguel Castro and Barbara Liskov / USENIX. February 24, 1999 paper and reported NFS experiment.
  18. On the Practicality of Practical Byzantine Fault Tolerance, Nikos Chondros, Konstantinos Kokordelis and Mema Roussopoulos. October 21, 2011 research critique; historical implementation experience, not a current vulnerability report.
  19. Safe and Efficient Sharing of Persistent Objects in Thor, Liskov and eight coauthors. 1996 research paper; experimental results and full team credit.
  20. Cross-chain Deals and Adversarial Commerce, Maurice Herlihy, Barbara Liskov and Liuba Shrira. 2019 paper; technical framework, not endorsement of cryptocurrency investments.
  21. Liskov, Harris to share new leadership position for faculty equity, MIT News. September 7, 2007 appointment record; historical role only.
  22. Diversity and Inclusion: Report to the Corporation, MIT. Historical institutional account of recruitment, retention and work-family efforts; not an independent outcome evaluation.
  23. Two Professors Fill Associate Provost for Faculty Equity Post, Keone D. Hon / The Tech. September 28, 2007 independent student reporting on the remit and institutional context.
  24. Barbara Liskov wins Turing Award, MIT News. March 10, 2009 announcement of the 2008 award; sweeping impact language not taken literally.
  25. Reporter’s Notebook: Inventing language, Larry Hardesty / MIT News. November 10, 2009 witnessed account of a public lecture; humorous story attributed.
  26. Barbara H. Liskov, Ph.D., The Franklin Institute. 2023 medal citation; information dated March 2023.
  27. Liskov named Franklin Institute Awards Laureate, Alex Shipps / MIT CSAIL. January 30, 2023; corroborates emerita status and historical equity work.
  28. CLU files, 1976–1989, MIT Libraries Department of Distinctive Collections. Archival software repository; preservation is distinct from a new language release.
  29. Apache Iggy’s migration journey to clustering powered by Viewstamped Replication, Grzegorz Koszyk / Apache Iggy. September 28, 2026 project-team account; adoption and caveats attributed, no independent field-outcome audit.
  30. Q&A with Institute Professor Barbara Liskov, MIT News. March 10, 2009 interview on the field, career fit and uncertainty.
  31. Barbara Liskov MIT computer scientist 2010, Kenneth C. Zirkel / Wikimedia Commons. Own-work grant, original 2014 uploader, May 29, 2010 EXIF and embedded creator copyright checked.
  32. Photographer account, Kenneth C. Zirkel. Creator identity and longstanding photography account corroborate file provenance.
  33. Attribution-ShareAlike 3.0 Unported, Creative Commons. Portrait license; attribution, change disclosure and share-alike.