## Catherine Holloway Shooting Photons Into Space and Landing in Software Engineering

19 Aug 2019

"The more experimental the technology you are working on the less rewarding I find it, because it was unclear if the technologies we were working on were ever going to be useful to anyone."

Listen to this episode on iTunes/Apple Podcasts

Player by Podigee

### Show Notes

Topics: Academia, Blogging, Education, Interviewing/Interview Questions, Quantum Cryptography, Sewing Machine Control Software

Companies and Organizations

Introduction

Catherine Holloway spent years on a quantum cryptography Ph.D., toiling on custom quantum telescope hardware and driving around Ontario trying to entangle subatomic particles miles apart. Eventually, she realized that the field, and academia itself, were not the profession she wanted to pursue. Leaving behind years of work without reaping the reward, she pursued a career in software engineering, landing roles as a test engineer in robotics and commercial cryptography, and then a senior engineering role at Bloomberg, where she is now an SRE. Along the way she started an engineering blog and pursued interesting side projects like writing software to create and optimize digital sewing-machine patterns. In this episode we talk to Catherine about quantum cryptography, the differences between working in academia and industry, and the hard problem of making sewing machines do what you want them to. It all adds up to a story of a circuitous but ultimately satisfying career journey.

Guest Bio

Catherine Holloway almost completed a Ph.D. in experimental quantum optics at the University of Waterloo’s Institute for Quantum Computing but dropped out to work at a few robotics and quantum computing startups. She currently lives in Manhattan and is an SRE in electronic trading systems at Bloomberg.

### Transcript

Host
Hello and welcome to Using Reflection, a podcast about humans engineering. And we’re here today with Catherine Holloway. Catherine, why don’t you introduce yourself and then we’ll get into the conversation.

Catherine Holloway
Hi, my name is Catherine. I am a senior Python engineer at Bloomberg, but my career has taken many different routes. I studied physics as an undergrad and did a master’s degree and most of a Ph.D. in experimental quantum optics at the Institute for Quantum Computing. And I eventually ended up as a software engineer because I did not like academia.

Host
So, I guess the first big area or topic I wanted to talk to you about was this background in quantum physics and maybe you could start by giving kind of a high level idea of what exactly quantum computing is. And you know what your area of study was to try to explain it to those of us with less background.

Catherine Holloway
Quantum computing is based on the a few properties of quantum mechanics. So quantum mechanics is the physics describes things that are really small. And when you get to really small scales, there’s this phenomenon called the Heisenberg uncertainty principle, which states that, well canonically people talk about that. You can’t measure both a really small particle’s position and velocity with high accuracy simultaneously, but there’s a whole bunch of other properties of that particle that also have Heisenberg uncertainty. We just talk about the position and velocity most commonly in popular science. So because of this you end up with states that are sort of probability distributions over a specific position. So you can imagine you have a particle and if it’s up, it has like a, it’s like a coin for example. And if it’s facing up you can assign that to state zero and if it’s facing down, you assigned that to state one, since you can’t measure its position with perfect accuracy and then also predict what it’s going to do next.

It’s always going to be in this sort of probability blob between being partially in state zero or partially in state one. And having a certain amount of velocity in one direction and certain amount of velocity in another direction. And if you imagine that the zero and one states are like the on and off settings of the binary bits in a classical computer, you could imagine doing calculations with them and building a whole computer out of them. And this allows you to, to a whole bunch of algorithms that with classical complexity would be greater than NP in complexity. But in with a quantum computer, they would be more in a different complexity class. So there are certain algorithms that are believed to be exponentially complex, like they take an exponential amount of time with the number of steps. Whereas on a quantum computer, they would take a quadratic number of steps, a quadratic amount of time for the number of steps.

In popular media I think they kind of dance around this. And to a lot of people it just sounds like, well, this is just a probabilistic classical computer. Like you could write a computer simulation where all of the bits are in some sort of probability distribution between zero and one. But the real difference between a quantum computer and an, an probabilistic classical computer is that you have a phase difference between the zeros and ones. And this allows for another property called quantum entanglement, which allows for even more sort of exotic probability functions over particles. So what you would end up with is you have two coins and when you measure them, no matter what happens to them, they are always going to be both zero or both one. And it’s impossible using just the laws of classical physics to create two coins that will always be both zero or one.

Host
So That’s interesting. So what is the, what is the phase difference? If you could explain that?

Catherine Holloway
It’s really hard to imagine because it requires complex numbers and, and we don’t really have a lot of good physical analogies for complex numbers in our everyday life when we walk, walk around and in, in our classical world, you can kind of imagine that when you first start out learning about electronics or something you learned about like DC current, and this makes sense because it’s kind of like water. You can kind of imagine the electrons flowing around in a circuit. Like they’re like water,

Host
Right? Or some sort of particle idea in your mind. Like little things flowing one after another.

Catherine Holloway
Exactly. But then you learn about like AC current and suddenly they start putting complex numbers into describe the flow of electrons and it’s really confusing. One way to think about it is that each particle is both a point particle and also a wave at the same time. So it’s like both sort of a wave on a, on a surface like water, but it’s also a little balloon so or so on the surface of the water at the same time.

Host
Right. So then there’s some properties of this that are a, we would think more of discrete phenomenon, some more of continuous phenomena. Right? And they’re both, they’re present at the same time.

Catherine Holloway
Yes, yes. And the phase is a property of it being a continuous phenomena.

Host
That’s probably as deep as we were able to go in the context of this non-physics podcast, that gives people some idea. And so then the relationship of this to the work you were working on is that this entanglement is related to cryptography, right? So you did work related to quantum cryptography, is that correct?

Catherine Holloway
Yes, I was building new entangled photon sources and then I’m either shooting them through the sky at different receivers or like a satellite or putting them on fiber optic cables to do public key distribution. So with RSA right now, the way that you change you exchange public keys or private keys rather over a public network is that you use math problems that are really easy to do, but really difficult to undo. And what I was working on was something called quantum key distribution, which is an alternative to that using quantum physics. So the idea is that I send you one half of an entangled photon pair over a public channel, like a fiber optic cable or through the air. And if someone with malicious intent is in between and trying to catch these entangled photons as they go through our public channel you will be able to detect it because our photons will no longer be correlated with each other.

So we can send many entangled photons, share many entangled photons over this channel than you would give up half of them to do an error correction check to see if someone is in the middle trying to siphon off these entangled photons. And if the error rate on the half of the photons that we’ve revealed is low enough, we can be guaranteed that we are the only people with access to the information in the remainder of the photons. And we can build a private key from this with which to encrypt our, our information.

Host
I see. So the, it’s, it’s impervious to tampering by a third party, but it requires two trusted parties

Catherine Holloway
Yes. You still need two trusted parties.

Host
So it’s analogous to like public key cryptography the way it’s used today, right? And is there the same notion of public and private keys and all of that?

Catherine Holloway
The point is to generate a private key that you can then use to encrypt your data. We don’t do any sort of like signing of some certificates or anything. There’s not really any good quantum analogs to that. And that’s actually a huge problem I had with quantum key distribution as a technology. There’s three different ways that you could exchange private keys. You could put it on a USB key and run it over to that person and share it with them that way. Or You could do RSA, which is the way that most people do a private key exchange, or you could do quantum key distribution.

Host
I see, I see. So this is to transmit the key securely.

Catherine Holloway
Exactly. Yes.

Host
It sounds like there’s a lot of technology that you are working with that would be certainly out of the norm for almost all of us. Right? So shooting photons through space, for example. So maybe are, is there anything interesting there that you get into, in terms of the technology you’re using and you know, maybe some of the challenges that you, you ran into with the implementation? It sounds like this was a very applied, right, that there were very hard actual physical engineering problems to solve here. A lot of it sounds not software engineering related as well, right?

Catherine Holloway
Yeah. So I mean, at the base there’s a lot of optics. You have to get a laser out putting lights that is coherent at a particular wavelength and you have to shoot it at these special types of crystals that are non linear. Basically, you’re turning one photon into two smaller photons at, through the, in order to entangle them. And that’s what most physicists in the field were doing. Or people who work in experimental physics are doing. But because I was working in a very applied lab, there was a whole bunch of other technologies. So for example, we would be building our own electrical circuits in order to build a single photon detectors and hooking them up to FPGAs in order to get extremely precise timing information about when the photons arrived for the, for the satellite project, we had to actually build two telescopes that could point at each other with sub-micron accuracy.

So that involves a lot of, you know, hardware hacking in addition to the FPGA programming there, there would be a lot of controlling motors and taking cameras and extracting the information off of the cameras in order to track where the other, other telescope is. So this telescope system, it had an outgoing infrared laser at a different wavelength than the entangled photons that were being sent and a camera and the two telescopes basically just looked for the blob and the blob of light on their camera from the opposite laser and tracked each other. It was like I built a robotic cat that just chased laser pointers and it’s pretty fun to do that. Just, we brought it out on like open house days into the Atrium of the Institute for Computing. We let kids like play with laser pointers and watch the telescopes actively try to keep up with the laser pointers.

Host
Amazing. So in the experiments, how far away are these from each other?

Catherine Holloway
So we were trying to simulate between transmission between the ground and a lower earth orbit satellite. And the big thing that we’re trying to test was just that the photons wouldn’t get scattered by the atmosphere. And if you look at the density of air in the atmosphere, there’s really only about 13 kilometers, I guess that would be like nine miles for American listeners or so there’s only about nine miles of air between the ground and space. So what we would do was at the time, this telescope for quantum computing was in the middle of a giant cornfield because the University of Waterloo got a huge gift of land from a farmer about 50 years ago. And they just had never built into the end of it. So we had one telescope in a dome on the roof of the building and then one telescope attached to a flatbed truck and we would just drive the truck around the edge of the cornfield late at night and that would be like at a distance of 13 kilometers away in order to simulate the effect of the atmosphere on the transmission.

Host
So it was the satellite rotating around some band that was relatively the same distance from the stationary earth telescope.

Catherine Holloway
Yeah. And that going at about the same speed as a low earth orbit telescope would go, or satellite would go through the air. Yeah, it was kind of crazy. I had a lot of sleepless, frustrating nights because I couldn’t drive stick, so I had to be the one stuck up on the roof. We got in trouble with the police several times and I learned that if you want to deal with the police, you should not do it like while you’re not sleep deprived and cranky about not getting results.

Host
They, they weren’t sympathetic to your quantum cryptography research.

Catherine Holloway
Yeah, I dunno. I guess they just thought that we were like stealing telescopes from the university and like driving around late at night.

Host
I see. So they’re just used to college students pulling pranks kind of thing. It just strikes me how incredibly challenging these things you’re describing sound, any kind of software engineering I did in any job seems incredibly easier than this and more boring in a way. So I’m just curious if it was a as interesting as it sounds from the outside.

Catherine Holloway
No, not at all.

Host
[Laughs] I guess I set you up.

Catherine Holloway
If you’re going to go into optics, you have to be prepared for a lot of really night late nights in the dark doing very repetitive stuff. In software development, we can pretty much just automate away all of the boring stuff. Like you don’t have to sit and trigger each one of your unit tests individually with optics. An awful lot of the configuration and the building of a new optical system requires a lot of manual tweaking, like manual with your hands. And that is something that we have not really done very well in robotics yet. Like it was really big news when someone was able to make a robot that had good enough like manipulative control in order to build an Ikea thing. So there’s just a lot of sitting around in the dark tweaking the alignment of the laser and it’s really not fun.

Host
And then taking a measurement and then seeing at the air and then tweaking it again and then.

Catherine Holloway
Exactly. Yes. And so the, those nights that you spend on the oof just sort of doing the initial tweaking so that the lasers can catch each other and take over. It’s just, it’s so painful. And the other thing is that the more experimental the technology you’re working on, the less rewarding I find it because it was unclear whether the technologies we were working on were even ever going to be useful to anyone. So the story that people say when they’re trying to get funding or excitement for quantum key distribution is that, well, if we have quantum computers, because quantum computers can factor large numbers, RSA will be broken and we won’t be able to use it anymore. So we better start building the alternatives. Now, however, I became increasingly skeptical of this as I spent more time working on it.

Because as you point out, there’s, you still have to authenticate that you are talking to the person you’re thinking of talking to you, you think you’re talking to at the start. And a lot of the hacking that happens over public channels is people spoofing digital certificates and there’s no good alternative quantum technology for that. And the second thing is, is that there are other alternatives to RSA that aren’t in the same complexity class. There are classical algorithms that are being built right now that you could just like patch SSL to use if you wanted. So it doesn’t make sense to me to tell people, Oh yes, we’re going to build like several million dollar satellites in order to build a network of quantum key distribution. And like you might get one key per pass of the, of the satellite when the average consumer military corporation in order to protect themselves, they really just need to patch SSL.

Host
All of this to me, sounds like you were in your mind favoring more of an engineering kind of career path from a research career path. You’re looking for things that can be applied. You’re looking for practical solutions. You’re looking for solutions that can scale, that solve everyday problems at a reasonable price point at scale, right. You’re questioning spending your time on something when you’re not certain it will be of practical use. So all of that sounds like someone who was becoming just dissatisfied or disillusioned suddenly with academia and wanting to do something more in the side of delivering products to real people.

Catherine Holloway
Yeah. And luckily because I had done all of this like software engineering work, particularly hardware related for my graduate degree, I sort of taught myself the skills that would make me useful outside of academia.

Host
So when, when did he start to realize maybe this wasn’t for you?

Catherine Holloway

Host
So standard-bearer for your, your class of people and parental guilt. That’s a lot to carry forward.

Catherine Holloway
Yeah, but the thing is my dad is, I’m also one of the few female engineers at Bloomberg and my dad also is very proud of me for working at Bloomberg. So that feeling kind of faded over time,

Host
Looking at something like that. Like you went very deep on something you learned a tremendous amount in one area and then you eventually learned it wasn’t for you. I think that’s unavoidable. Some paths you go down to realize you don’t want to go down them any further. And I think that’s what you learn from them as well as everything you learned along the way. There’s no, I don’t think there’s anything wrong with that. So where was that internship where you sort of got this contrasting view?

Catherine Holloway
Oh, that’s a ID Quantique SA in Geneva. Switzerland. Yeah. They build a quantum cryptography systems commercially available quantum cryptography systems for the, for the private bank sector in Switzerland.

Host
I see. So like relatively speaking very far along in terms of making this actual and actual commercial technology in the world. And you’ve got this kind of contrasting view to what the researchers were focused on, I guess. And, and the realization was that they just were very detached or disconnected from how this was being applied to solve a real industry problems. How did you kind of make that transition? Did you just decide I’m leaving academia and just start looking for jobs and, and so on? Or was it gradual or you know, maybe for people who are in a similar situation and thinking about it, if you look back on that transition, is there anything you learned from it or you’d do differently?

Catherine Holloway
I knew that I wanted to leave, but there was also some amount of sunk-cost fallacy because I’d already done so much towards my Ph.D. and I decided that I didn’t want to have nothing to show for the two or three years or so, I’d already sunk into my Ph.D. So I just decided that I was going to really focus on passing my qualifying exam and then start looking for a job. I passed my qualifying exam and then the next day I went to my advisor’s office and told him that I would be, I was planning on leaving and that I would work until I had found a new job. And he sort of interpreted this as, oh, well she’s just gonna finish your Ph.D. It’s, it’s, she’s just bluffing. But within a month I had a job at a company that did autonomous vehicles and small sort of ground-based robots because of my background in and the stuff that I had taught myself through the satellite project.

Catherine Holloway
And I just moved into that as sort of a test engineer. Then tried to move into a more software developer role there but was a little bit unsuccessful. So I just, I went back to a quantum computing startup at just to see if what that was like versus a quantum cryptography startup and also deciding not to do that. And then I basically just yeah, through my hardware skills I worked for startups that were more hardware-based. And then finally when people started recruiting me for just full time software development roles, I just cracked open the like elements of interviewing for programming interviews and Python and just studied it for a month and then went through the interview process.

Host
Why do you think you weren’t successful with the lateral move you described? Do you think you would approach that differently this time? Do you have any advice for people trying to do that?

Catherine Holloway
I dunno. I think it’s just that if people don’t see you as technical, they’re never going to see you as technical. And if you want something, you almost always have to change jobs to do it.

Host
You were in a technical role when you got there. Right. But it was as a tester. So you’re seen as a test engineer, not a software engineer or something like that.

Catherine Holloway
Yeah, you’re seen as someone who can assemble robots and design experiments for them and run the like proof of concept. Like write the proof of concept for them, but not fit for writing actual production code, which is, it’s silly because I mean it’s all, it’s all Python just put me in a junior development position and I’d figure it out.

Host
I’m sure more than figure it out. I think that’s absurd. So what do you think changed? Why do you think you started getting those offers? You know, is it just the whole market for software engineers is so strong now, and I don’t mean that to disparage you at all. I’m just, I’m just curious what you think changed. Did you just get kind of to a critical mass of experience?

Catherine Holloway
I, I think so. I think having an active Github profile helped.

Host
And your blog is really good and very technical and you put a lot of code in there.

Catherine Holloway
Yeah, that’s, that’s why Bloomberg hired me is because someone read my blog and thought I was cool.

Host
Your blog is interesting in that, you know, you discuss very specific problems and you present very specific code to solve them and it’s cogent and clear and I think it presents you well. So I think that’s very good advice for people out there listening as a way that, you know, to market yourself. Right. So you think just kind of the public marketing of yourself through these social channels essentially helped a lot and helped your profile independent of your work experience.

Catherine Holloway
But I mean also just being able to study the interview questions gives, like, I mean, once you get, once you get the interview offers, then all you need to do is study these …

Host
These interview guides. Yeah. For sure. Do you, did you feel that you got better at that after you did a few, definitely. Yeah. Yeah. It’s hard in the beginning, right? Even if you’ve practiced a lot. Yeah. I mean, I find it to be somewhat nerve wracking and I always, the first couple, I don’t, I’m not, I don’t really do as well as I know I could, you know and then if I’ve been rusty for awhile as well. Yeah. But it’s just something else you can practice for like anything else. Probably not as hard as your qualifiers, right?

Catherine Holloway
Yeah. No calculus questions.

Host
Right? Yeah. It’s not that bad. Yeah, and it’s funny because it’s seen as this I don’t know. It’s held up as this extremely hard thing and everyone talks about how selective they are and all of this. But I think a lot of what you did prior to this was probably a lot more challenging than, than some of this, right?

Catherine Holloway
Yeah. I mean it did help because I don’t have a science degree. So it did introduce me to a lot of concepts in computer science that I found kind of interesting.

Host
Yeah, they are interesting. And they’re very fundamental. I mean, it’s like a framework that is there, that’s latent in all the tools you’re using every day. And if you don’t know it, you can get by. But if you do, I feel you have a much better perspective on how you’re actually solving these problems and how to design solutions to them. So I know another thing I wanted to talk to you about in that was why I asked you to come on the show was these projects you have around I guess sewing machine control, would we call it? Maybe you could describe a little bit of that and maybe start with the talk you gave that I saw just to frame it for folks. So they sort of see how I got intrigued. And then maybe describe these, this hardware in general and how you got interested in it and we can get into these projects and what, what they do, what goals we’re trying to accomplish.

Catherine Holloway
Sure. So there are these machines that you can buy now called computerized sewing machines and they’re like traditional sewing machines, but they also have an attachment that moves a fabric loop around in two dimensions in an x, y plane. And this allows you to do machine embroidery with them so you can tell the needle to go to, to a place, make a stitch, make it go to another place, make a stitch and it can go through and lay down the thread to basically draw pictures on fabric. And these machines have been around since the ’90s for consumer grade stuff. So like you’ve probably seen them at the mall. There are like these huts that will do a custom embroidery for you, but these are like industrial strength embroiderers that cost $10,000. But the ones you can buy now at the consumer level are usually like 200 to$300. Now the difficulty with these things is that it’s really hard to make patterns for them.

So typically the average user of these machines is just going to go to a website and then pay like one to \$5 for an embroidery pattern loaded onto their sewing machine and just stitch it into their design. And there are people who are professional digitizers. So a digitizer is someone who takes the design and sort of hand selects where the needle needs to go in order to make the design appear on the fabric. So the file format for these guys is just a list of instructions. So it’s like a, it’s like, it’s like an x coordinate, a y coordinate and then an instruction. So it would say like go to this location, put it down a stitch, go to this location, put down a stitch and keep doing this. And then it would have like trim the thread change to different color, moved to this location and move stitches down.

And so digitizing as the process of actually plotting where these commands are going to go. Yeah. So most people who use these machines aren’t really making their own designs. They’re just taking designs that already exist. And the software too that the professional digitizers use have some limited amounts of automation in them for generating fills. So you can like sort of draw an area and select it and tell it to do a bunch of stitches to sort of try to fill up the area. But usually the digitizers then have to sort of hand edit them afterwards. So I decided that I didn’t want to do this because most of the, most of the available patterns are things that like, I don’t know, my grandma would wear, no offense to her and her sense of style, but it’s just not what I would like. Or it’s like, Oh, put a Minion on, on a, on your fabric or something like that. Or like to two eagles with American flags. It’s not really what I wanted to do. I wanted to really try to get into it and make my own designs. So there’s two, two separate large challenges that were required to do this. The first one is that, so I have a brother machine and they use a specific format in which these locations that are represented as floating point numbers and the actual instruction are encoded in a text-based format. And so it was a lot of opening up existing patterns that I could get for free and looking in a hex editor at what, like what sort of commonalities were were there. And if I had them in like a more, some of the, some of the professional machines use file formats that are in more plain English that have where you can open them up and they’re just text-based.

So I found a couple of patterns that I had both, both the sort of like professional level and the consumer level versions of the same pattern. I could compare them. And then from there I was able to then just start like come up with hypotheses for where the instructions are actually stored in the file and then sort of like reverse engineer at by like, okay, let’s try to get the machine distance out a triangle. Did that map correctly and looking at how it, how it looks on the little LCD screen before getting it to stitch out the pattern. The sort of drudgery here is more like solving a Mastermind problem. It’s a lot more fun than the optical alignment stuff.

Host
Right. So this is, I guess this kind of reverse engineering process is a little similar to debugging or something like that.

Catherine Holloway
Yeah, and it was a lot, it was really similar to a lot of the stuff that I did in my Ph.D. work and also in any of the hardware startups I worked at, because a lot of hardware communication is kind of obscure and usually you don’t have a nice API for it. So there’s some amount of like just communications hacking and debugging that you need to do and we’re going to figure stuff out.

Host
Right. So that’s like there’s usually on proprietary, poorly documented binary protocols and you need to like grab packets and start to and try to understand what’s being transmitted.

Catherine Holloway
Exactly. And this is a very similarl problem.

Host
So this is something where it was never intended to be approached. The way you’re approaching it was only intended to be approached opaquely through these high level offering tools and to be done manually.

Catherine Holloway
And yeah, so, so the first half is of the problem is figuring out how to just communicate with the machine and get it to stitch where it’s supposed to. But the second half is taking images and figuring out how to render them in stitches. And that’s like I’ve, I’ve got the communications protocol down when I’m working on this project now the bulk of what I’m doing is trying to make it have the best looking output for whatever given input I have.

Host
Yeah. I, and it struck me that like when I read a couple of the, your articles about this, that that’s becomes much more of an optimization problem because now you have to make a series of kind of judgements about what are you actually trying, you know, what are your actual goals here that you’re trying to optimize for?

Catherine Holloway
But the, but with the thread is like, well, there’s several different algorithms you could imagine for how to lay down threads that looks like a fill from a distance. But like, which one really works the best for this? Kind of weird giant polygon with a bunch of bezier curves in it.

Host
Or even right, doesn’t the color matter or the fabric? Like aren’t there a lot of factors that are a variable?

Catherine Holloway
Oh yeah. Huge amount. Like the same design that might render really nicely on a like really stiff canvas type fabric would look to just pucker all over the place if you had like a light, very lightweight fabric.

Host
I see. So, right. So you mean the underlying fabric would just bunch up and it would look terrible.

Catherine Holloway
But I think that’s an opportunity where bring in software development and having a more automated technique for making these patterns would really be useful because then you could, well I really liked this pattern but it’s got too much thread in it and that’s making the fabric sag or the stitches are just too long or the stitches are too short. Like here computer just fixed my pattern for me.

Host
It, you know, it’s interesting as you’re describing this, how many hard problems you already solved or at least partly solved and become aware of and how there’s nothing else out there in the market like this. Right. Is that a, I mean, do you have any goals around these projects where you think about them? Get, you know, gaining more traction, gaining more contributors, maybe even being commercially viable in some way?

Catherine Holloway
I mean, a lot of people bring that up, but I have a lot of reservations about that. So first of all, I am not yet satisfied with the output of what I can do. I think it looks a little bit ugly. I’ve solved some of the problems regarding the needle breakages, but there are other problems where the, the jumps like, so I ha, so one of the problems that you, that I’m currently working on is that when you jump you either have to cut the wire, the for thread which causes it to fray or you just have a really long stitch and you can like, you can, after it’s done stitching, you can cut that thread and sort of prevent it from three because there’s a lot more stitches on top of that. But the problem is that while you’re stitching that really long thread is a liability because it will bounce around and the needle will get caught on it and the other threads will get caught on it and that will cause bunching and that will cause the thread to break. And then you basically ruined your design. So one thing that I’m working on right now is to try to, it’s like a traveling salesman problem from hell where you need to cover the entire thing. It’s okay for it to revisit. Some of the nodes of the graph but you wouldn’t want it to do it that many times and you want to minimize these really long jumps.

Host
It’s more relaxed yet has other constraints and it’s also more vague. So it sounds like this more configuration driven approach is more what you need here. Cause there’s a lot of subjectivity too. Right?

Catherine Holloway
But I mean just like just doing all of, it’s got geometric problems. There’s a lot of math. So every time you think of a new algorithm for how you could lay down the stitches, it takes me usually a week just to even implement it because it’s so math heavy.

Host
Is it hard to test that kind of code?

Catherine Holloway
Well, so it’s not hard to test that. It just that it doesn’t look weird because I now have ways to output the list of stitches I’m going to send to the machine, to an SVG so I can look at the designs that way.

Host
So you can do like manual QA, you can print, you basically printed and ready.

Catherine Holloway
Yeah. But then there’s another layer of printing on top of that, which is just, okay, so it looks okay on my screen. How does it look when it actually comes out on the, on the sewing machine? So getting back to your question about commercialization, I, I don’t really want to focus on commercializing it because right now I just find it as a creative expression. It’s something that I work on for fun in my spare time and there’s a lot, if I wanted to actually make it a product that other people would have to use, I would have to work a lot on ironing out all the kinks. The other thing is just that I don’t believe that the market for this is very large. Like I think that sewing is kind of a dying art. I don’t think that there’s a lot of people who are really into it. Some guy approached me after the, after I gave the talk and like said, oh, well I have a lot of contacts in the textiles industry. And I’d be interested in this, but I have no idea what the commercial textile industry is. Like. I’ve tried dabbling in it, trying, like contacting people at Alibaba to figure out stuff and it’s just like, this is, the volumes are so huge. I don’t know the machines that they’re using.

Host
Yeah, no, I get it. Like where it is right now, it’s really fun to tinker on, but there’s many, many miles between that and it being smooth enough for kind of bringing in that kind of commercialization. So what about other contributors? Do you see it as something that you could make accessible to other people help you with?

Catherine Holloway
All everything that I do is on get hub right now and I’m welcome. I welcome contributors, but I haven’t really solicited it because it’s really just code that I’ve worked on. My Hobby. For example, I started out writing it in sort of a functional based paradigm in Python because that was the best way to sort of manage memory. And it was very like math heavy. So it lended itself very well to that. But as it’s gotten more complex and I’ve come up with like several different algorithms for filling things, I moved it over to an object oriented paradigm and the thing is just the best right now. So I don’t really feel like it’s fit for other people to work on. And I also haven’t found a lot of other people who have the same machine who are interested in this sort of stuff.

Host
So there’s not, there’s no shared filed format or a way to like, there’s not kind of an adapter pattern or something here that, that you could get to, to support multiple back, like multiple machines as backends.

Catherine Holloway
So the actual process of digitizing the images that is all at first, this goes into a, an instruction set with the list of coordinates.

Host
Right? So that’s sort of your intermediate language that you can then translate to the, to the machine format.

Catherine Holloway
Exactly. And there’s only one other producer of at least consumer level computerized sewing machines. So I think it would, if I had someone who, who had one of those machines who wanted the software to work on them, I don’t think it would be that much work to get it working on their machine from what I’ve seen.

Host
Do you think it would, what do you think that’s a particularly challenging about this? Like why are you, why is this continuing to intrigue you as a sort of hobby problem?

Catherine Holloway
Well, it’s just, it’s a very creative thing. Like it’s embroidery is very creative thing. You can basically make whatever you could imagine as as an embroidery pattern. Like you’ve probably seen every so often when reddit someone pops up and was like, oh, my grandma, like embroidered this entire map of the Mario overworld or they’ve embroidered every single Pokemon on here. But it’s very time consuming to do that. And I don’t really like the time-consuming, repetitive like stitching. And so the idea that I could have a machine do that for me is very exciting to me. So yeah, it’s the creative expression and also the fact that the problems are so are so challenging. They involve so much math, so much sort of algorithmic thinking that I don’t really get to do in my day to day like nine to five job.

Host
Right. So you keep that, you keep exercising that part of your brain a little more than from from a just so normal software engineering to job. But also it strikes me how it’s this, it’s this combination of that and this is like really hard actual implementation. Sort of like the runtime is so hard here, right? Like getting, getting it to actually stitch correctly on the machine is a whole layer of problems that with traditional software we don’t have to deal with because you know, relatively speaking code is going to execute the same way anywhere. But here the execution is like, you still, now you have this whole layer of optimization problem actually getting texted because of the stitches overlap. They can block each other. The needle needles break and all this sort of thing.

Catherine Holloway
Yeah. It’s an emotional roller coaster to see whether you’ve built something that is going to break a needle or whether it’s going to stitch out and look really nice. It’s just like, I, I can’t look at my sewing machine while it’s printing things out.

Host
How, how consistent is it? Like does it, will the same pattern behave the same way each time or no?

Catherine Holloway
If you do it right, it’s pretty consistent. If you do it wrong, sometimes it will stitch out correctly. Sometimes it will just get stuck in completely fail.

Host
I see. So like if there’s some kind of variance there that like some factor is causing a problem but it doesn’t, the timing of when it kind of causes the problem is a little bit different maybe each time.

Catherine Holloway
Yeah. But there is, there’s a correlation like it will be this stitch caused the problem in this pattern. Like two or three times. Well, luckily, like thread is really cheap. Fabric is really cheap. And the needles are pretty cheap too.

Host
Oh, I guess the one other thing we haven’t talked about, just I like to ask people about sort of what they’ve learned about you know, working as part of teams or about themselves in their career. I don’t know if you have any thoughts about any of that. Maybe for this purpose of this conversation you could focus a little on the contrast between being part of a team in the academic setting versus in industry setting.

Catherine Holloway
Oh, I think they’re very different because people are motivated by different things and academia and industry, like in academia, there’s not a lot of money to go around. So people are doing it because they want their name on a Science paper or Nature paper. And in industry people are more motivated by just wanting to, you know, do a good job, make software that is easy to maintain and collect their paycheck. At least that’s been my impression. And so you get very different dynamics on things. There are a lot more egos in academia. And the other thing is that in industry, the people who tend to be the best communicators tend to get moved into managerial roles. In academia, it’s the person who’s the best at doing the research. But in research, the skills that make you a good researcher are sort of persistence and sticking to your guns.

And being a good, being able to argue, well, not necessarily working on a team, understanding where other people are coming from. And like managing a career in life balance and like, you know, figuring out what motivates your coworkers. So in academia the manager is like the principal investigator who, who’s training for his current job is just that he was the best at, you know, staying up late in the lab and working really hard usually as an individual. And now he’s in a position where he’s managing these like conflicting egos basically of his grad students and his postdocs who all want to work on the best projects and get the best funding and they’re very protective of their work. Whereas the manager in industry tends to have experience working in software but probably also attended a lot of training and made a concerted effort to move into an managerial position.

Host
I don’t know about the last point. So much in my experience I’ve seen a lot of the similar kind of pattern actually of people who were all star individual contributors kind of getting moved into managerial roles in industry and without a lot of training or support. Although I do think it is true that communication skills are generally rewarded as well in terms being moved into management. But I do see your point that yeah, things on the academic side really were very, very individual and then those skills are still kind of what is most necessary. Whereas in industry, the communication and organization and building team team dynamics is obviously very, very important and rewarded. Do you ever see yourself moving into more of a managerial role or do you like the being a contributor?

Catherine Holloway
I have not honestly thought about it. I’ve worked so hard in the past 10 years of my life just to find something that interests me and to get into the senior engineering role that I am kind of not really sure where I’m going in my current career.