Quantum careers: The coder who used 90 programming languages — then invented one for quantum computers
As a kid in Ukraine, Mariia Mykhailova wrote code on paper. Now she writes books on quantum computing.

Growing up in the ‘90s in Kyiv, Ukraine, Mariia Mykhailova wrote her first software programs by hand, on paper. Then, she would type them on the family desktop computer — which couldn’t run them. Young Mykhailova was reading a book on an obscure programming language, and she “didn’t have a compiler for it,” she said. “So I tried to just figure out what it would look like.”
Software programming was the family trade. During Mykhailova’s childhood, her grandmother worked as a programmer for an architecture and urban planning institute in Kyiv, which developed computer models to design public buildings. Her mother was a software engineer at the National Bank of Ukraine, where she helped create the digital systems that all banks in Ukraine used to exchange payments. Following in their footsteps, Mykhailova went on to study programming at the National Technical University of Ukraine, eventually earning a bachelor and master’s degree in applied math.
Today, Mykhailova doesn’t just write code. She invents programming languages for an emerging technology: quantum computers. Beginning in 2017, Mykhailova worked with a team to create Q# (pronounced “Q-sharp”), Microsoft’s programming language for quantum computers. “When I started, Q# didn't exist,” says Mykhailova. “We pretty much came up with it and implemented it.”
Earlier this year, Mykhailova left Microsoft for PsiQuantum, a Palo Alto-based quantum computing startup, where she is creating quantum software development tools for PsiQuantum’s photon-based qubits. As hardware specialists work to construct the qubits, quantum software developers like Mykhailova work in tandem to build the virtual infrastructure for users to eventually demonstrate a commercial use for the technology.
Mykhailova took a circuitous path into quantum computing, as the technology barely existed when she was in school. She had learned some quantum physics in her academic studies, “but they inconveniently omitted the fact that you can do computing using it,” she said.
So she started as a conventional software programmer, working for a bank in Ukraine on customer-facing software. For fun, she participated in programming competitions organized by the U.S.-based company Topcoder. While she occasionally competed, she preferred to write problems for the competitions, which were both online and in-person. Through Topcoder competitions, she met a friend who worked at Microsoft in the U.S. The friend tipped her off to a Microsoft recruitment effort in Moscow. She got the job, and in 2012, she moved from Kyiv to the Seattle area, where she has lived ever since.
She pivoted to quantum computing in 2017. Prior to that, Mykhailova worked on Microsoft’s search engine Bing and its cloud service, Azure. A friend working for Microsoft’s quantum team told her they were looking for conventional software engineers without a quantum computing background to join the team. “I don't think I had heard about quantum computing before that,” says Mykhailova.
She jumped at the opportunity to build a programming language for quantum computers. By then, she was already accustomed to new, weird programming languages; in the 2010s, she experimented with some 90 programming languages in her spare time and documented these projects in a wiki called Progopedia. One memorable language was “minimalist,” consisting of only eight commands. The language, dubbed “ungodly” by one internet user, has no English characters and works better as a brain teaser than a practical coding language.
“It helped me to completely abandon any fear of new programming languages I might have harbored,” she says. “None of the languages you use for real-world programming is as bad [as that one].”
With these experiences under her belt, Mykhailova and her team developed and released the first version of Q# released the first version of the language at the end of 2017.
Superficially, Q# resembles classical computer code. It uses English words, and a user encloses arguments in parentheses and denotes comments with pairs of forward slashes. But a closer look reveals the distinctive math that quantum computers are designed to perform. For example, the fundamental unit of quantum computation is the qubit, which encodes information as a linear combination of 1 and 0 rather than a binary 1 or 0.
In addition, reading information encoded in qubits is fundamentally different compared to reading classical information encoded in transistors. In a classical computer program, you can ask the computer to retrieve data stored in memory. The act of reading classical bits doesn’t change the information. In contrast, measuring a qubit inherently alters its state, and thus, its information. So the act of reading a qubit becomes a mathematical operation itself that can be used in an algorithm.
“You cannot do a classical computation by just looking at the data in the right way,” says Mykhailova. “But in quantum computing, it is possible to look at the data the right way.”
For those looking to transition from classical coding into quantum, Mykhailova recommends identifying your strengths and looking for ways to apply them. “I discovered that I'm really good at explaining things so they are accessible to learners, and also how to make learning interesting,” says Mykhailova. While at Microsoft, she also worked in outreach and education projects. She currently teaches a fully remote quantum computing course at Northeastern University.
She also translated her experience writing coding problems into writing quantum computing textbooks. The publisher O’Reilly Media, known for its coding books, asked her to write what became Q# Pocket Guide, published in 2022. More recently, Mykhailova noticed that, while many books cover basic concepts, few intermediate-level texts existed. She decided to bridge that gap, publishing Quantum Computing in Depth this year. The book emphasizes exercises where learners implement quantum algorithms and estimate their efficiency, an important skill as near-term quantum computers have limited computational resources.
It’s tricky to design code for a fast-evolving technology. “We don't know exactly yet what the hardware of fault-tolerant quantum computers is going to look like,” she says. Quantum software developers need to create tools that fit what users want, from simulating chemical reactions to optimizing financial models. “The challenge is how to anticipate the needs of the end developers.”