>> I'm Christina and welcome to CodeStories.
I actually met our guest,
Dr. Sarah Kaiser in,
I think the most pandemic way possible.
We met playing Animal Crossing.
Sarah's one of the coolest people I've ever met.
She does so much great stuff,
and now we're going to go and we're going to talk with her.
[MUSIC]
>> Hey Sarah.
>> Hey, how's it going?
>> Good to see you.
>> Give our viewers your name,
what you do, and your backgrounds.
>> My name is Dr. Sarah Kaiser.
I'm a quantum computing technologists,
open-source developer, and now
I'm really excited about being able to
contribute to the open-source community
and doing community management there.
>> You have a PhD in quantum physics, right?
>> That's right.
>> All right, this might be a dumb question,
but I bet it's what a lot of people have,
what is quantum computing?
>> We're familiar with this model of
having a specialized hardware device
that performs and speeds up certain types of tasks,
but you can't run everything in your computer
on a GPU or I guess maybe you can, but it's not advisable.
Checking my email on my graphics card is not going to help,
but rendering graphics for videos
or for video games, definitely, its forte.
>> One hundred percent.
>> Quantum computing is similarly a hardware accelerator,
so it doesn't, necessarily, universally speed up everything.
It's not going to replace everything.
In fact, critically relies on classical computers,
so don't get rid of your regular computer yet.
But what's interesting is,
for things like graphics cards,
we know exactly what box of problems, we should say.
"All right, if it's highly parallelizable,
we know that's something we send off to the graphics card."
For quantum computers, we
don't really have the boundaries of that,
these are the problems that make sense for this.
We have good examples of points in that box,
but we're really trying to
explore what that boundary actually looks like
and really the best way to do it
at this point is to have the hardware,
have the tools, have the software,
and just mess around a little bit.
That's basically one of the things that I work on stream and with
the Q# community is we're just going around and
implementing stuff just to see what happens,
see if we find ways to leverage the language.
That brings us to Q#.
Q# is a domain-specific language for quantum computing.
Just like you have languages specifically for graphics cards,
like CUDA, you have languages for FPGAs.
Q# is a language for quantum computers.
The reason you want or why it's helpful to
have a new language as opposed to using something like Python is,
it's designed around what the hardware can and can't do.
We wouldn't really be getting a lot of advantage if
our quantum hardware behaved exactly like our classical hardware,
then it's just really expensive classical hardware.
Q# has a lot of features and design principles that make it feel
like it's a natural way to describe what you want to do
on that hardware and it's open source.
There's a ton of libraries already available.
There are things implemented
there like quantum machine learning that you
can just literally open the namespace and use.
>> From what I understand, you are the only Q#
MVP, and for the audience that is
the Microsoft Valuable Professional Program.
Talk to us a little bit about your journey,
about how you became,
as far as we know, the only Q# MVP.
>> I saw that there was a lot
of open-source Quantum Software projects that
were popping up somewhere in Python and I found Q#.
It seemed like a really
well-designed and something that would be useful
to me trying to write code for quantum computers.
Normally, I'd been writing code that was
closer to the actual hardware level.
But I started playing around with Q# and
then really saw that it had a lot of
value in this area, and so then I started doing
research projects with colleagues
and teaching people how to use it
and ended up applying for the MVP program.
>> How long have you been working with Q# at this point?
>> Basically, since it launched,
it's still a pre-1.0 language.
I'm always eager for
the monthly release notes and try to make rundowns
to see what is actually, and I've
made feature requests and have them accepted.
Was really exciting to me right now temporally,
about quantum computing and this technology in general is
that I have the opportunity
to actually participate in its development.
I really love hearing about like the 50s and 60s when we were
developing the first rounds of classical computing technology.
>> Yeah.
>> This feels like an equivalent time period for a new technology,
we're that early on,
taking research papers and research algorithms
and writing them in Q# because no one's done it before.
I love using Q# and I think it's a really
unique take in the space of trying to focus on this,
focus on a pretty high-level language.
There's not a lot of stuff specific
to the hardware that you're running on.
Programming and thinking about
what you're doing at the algorithmic level,
which is basically what we need to figure out right now.
To figure out the boundaries of that box
of the types of problems that we want to put on,
run on the quantum computer.
What is good about the hardware that we have
is it allows us to characterize it and
learn things about the noise on
their devices and really learn a lot more about the physics.
That's where the science,
there's a lot of science involved in this.
But where this really pairs well with industry and
why it was seeing companies like
Microsoft getting into this is cool,
is because they have the technical expertise to do
the signal processing and build
custom hardware that academics usually,
either don't have the skill or funding to do so
and so you actually can make progress.
Often as an academic,
we were stymied by either budget
or we didn't have you had a bunch of
grad students trying to figure out this task
that there's commercially available devices to do it,
or you have to re-implement everything from scratch.
These partnerships can be really productive, I think.
>> Yeah, I know for sure and I want to
touch on that a little
bit more because I think this is so interesting,
especially for someone like you who has the background and
both industry and in the science part,
why is it important that those two work together?
Especially, when we're talking about something like quantum that
is still in the development phase and is still evolving.
>> Academics, generally speaking,
I have very deep knowledge in
a fairly narrow area of quantum technology,
given the breadth of what's out there
and that makes it hard to when you're trying
to build up the stack that has so many different types of
technology and there's your actual cubits that you're building.
That's great. But then you have low temperature,
physics, and cryogenic that you need to keep it cold.
Then you need to figure out how to get
electrical signals through that.
Then you need all of the FPGAs and
processing to handle that, and then that'll eventually
translates up to an Azure instance that you
can just ping from your desktop at the coffee shop.
There's so many different skills included in
that stack and collaborations and academia are really great,
but it's hard to get that breadth of
skills involved and working on industry teams
where they have hardware device groups
and stuff that are working on everything in that entire spectrum.
They can walk up and say,
academics can say, "Oh, here's where we're stuck.
We need this plug to go to this widget."
Then everybody's like, "Okay, cool, we got that."
Everybody gets unblocked and in that way.
The scope of what we're trying to do here is just so large.
It's not tenable for any one party to be able or
even small number of parties to really do it
themselves. Which is really exciting.
>> Where are we, as Microsoft and within society,
within the state of quantum and
creating something that's going to look more fungible.
>> Yeah. As always,
what people call fungible is fungible
itself and truly that is where
most of the drama and discussion is happening right now is
how do we define what is the end goal here.
But in terms of where we're at,
I think we're at two different places.
One with hardware and software.
We have stuff that works really great and like small numbers,
we have maybe couple 10s,
20s, 50 cubits, things like that.
We need many orders of magnitude
more cubits than that to do things potentially.
People talk about Shor's algorithm,
like that's one of the holy grail things that people want to do.
That's going to take a lot more cubits.
>> What is Shor's algorithm?
>> Shor's algorithm is an algorithm that we know,
that we can factor large integers on
a quantum computer faster than any known classical algorithm.
>> Since you understand this correctly,
You basically have a situation where,
if Shor's algorithm could be run,
it could break any crypto that it basically exists right now,
what you're saying is you could
also reverse engineer that and say,
"But if we build our security infrastructure systems using this."
That would make it that much more
difficult to try to break those locks.
>> Yeah, that's exactly right.
>> Talk to me about how you make quantum
approachable and why it's important to do that.
>> Making quantum computing is assessable,
I think really important.
It was really challenging for me when I
first got into it because there wasn't a lot of good resources,
or at least they're mostly year to grad students.
But now that we can actually write quantum algorithms
and write Quantum programs in VS code,
in Visual Studio with
IntelliSense with all of these sorts of things that,
this really feels like this should be something
assessable to your everyday developers.
Finding ways to help people either
understand the devices well
enough that they can write code for them.
I certainly don't understand
the internals of how a graphics card works,
but I can look at the documentation for a package
and I can spin it up and, probably, figure out how to use it.
I am always trying to encourage
people to take that similar approach to quantum.
Just pip install or whatever,
install the software and just try it out.
I feel like there's a strong prevailing opinion
that you have to understand.
All of the physics to be able to understand
quantum computing and while obviously that would help,
I don't think it's strictly necessary and I
think you can still do some really cool stuff.
Just what I like to call programming experimentally.
Or you can just plug it in and
start changing stuff and see what happens.
Hi everyone and nice to virtually meet you.
My name is Dr. Sarah Kaiser and I love quantum technologies.
>> You also do live streams and you teach people how to do so.
Why do you teach this?
Why is this something that you think is
important to bring other people into?
>> Yeah, I think,
quantum computing has the potential to be
a really transformative technology for society.
I want to make sure that,
quantum computing or machine learning or any of
these really high-tech fields that everyone can be included.
That really starts with making sure that everyone is included.
When we're like teaching it,
being aggressive about that I think
is really important to make sure that
everyone can have a seat at the table when we need to
make important decisions about this technology.
>> Now if we start with that inclusiveness now,
then potentially more people be interested,
give their perspectives and
we might even be able to solve problems
we didn't even consider without that sort of input.
>> Exactly. If we want to find the boundaries of
that box of the problems that we can solve with this,
we need as many perspectives as possible and
being inclusive about that I think is our best chance.
>> Well, we just finished talking with Dr.
Sarah Kaiser and she's incredible.
Her story is amazing.
I love learning from her and you
definitely want to tune into the next episode because
we're going to dive into the code and Sarah's actually going to
show us how you can program with quantum computing and Q#.
It's going to be awesome.
Be sure to check it out.
[MUSIC]