The home team chats about quantum computing, Schrödinger’s ill-fated feline, and how software engineers really spend their time.
The first step in quantum computing? Quantum internet: a network capable of sending quantum information between far-distant computing machines (as in, one on Earth and one on Mars). Still have questions?
In case it’s been a while since your last physics course: Schrödinger’s cat.
Retool’s 2022 State of Engineering Time reveals how software engineers spend their time, what they want to do more (and less) of, and the most frustrating and satisfying parts of their jobs.
A great resource from GitHub for folks working on open-source projects: Why creating a popular OSS library is a marathon, not a sprint.
Cassidy recommends Centered again—the app that helps you stay in your flow state.
Congrats to Ceora on her new role at Auth0!
Ceora Ford: If I join a company today as a software engineer, I'm not building a to-do list or, like, a whole website,, like, from scratch. I'm probably digging deep into a code base that's existed for years that has, like, some obscure errors or things, like, that, that need to be fixed. And, or you need to like, make sure this is, this feature is compatible with this and this API, whatever, like, stuff like that.
Ceora Ford: But a lot of it is like dealing with code that's been there. That is there and has been there for years. And you have to, like, figure out how to consume that. And I think that a lot of newer developers haven't gotten used to doing that before they start their job. That's why I think, like, open-source contributions are really important when you are a new developer, because it gets you into the habit of, like, diving into a new code base, understanding other people's code, knowing how to like, do PRS and talk to other people about, like, what you're doing in the code base and stuff like that.
Ceora Ford: I think that's much more reflective of what your work is going to be like once you're actually, like, officially employed. Did they even answer your question?
Ben Popper: No, but I thought it was an interesting perspective.
AD: "Gatsby is the fastest frontend for the headless web. If your goal is building highly-performant, content-rich websites, you need to build with Gatsby. Go to gatsby.dev/stackoverflow to launch your first Gatsby site in minutes and experience the speed. That’s gatsby.dev/stackoverflow."
Ben Popper: Hello. Hello everybody. I am Ben Popper and you are listening to the Stack Overflow podcast. Thanks for joining us. I am here as I often am with my wonderful co-hosts Ceora Ford and Cassidy Williams. Hi y'all.
Cassidy Williams and Ceora Ford (together): Hi!
Ben Popper: So before we, you know, get into the serious topics, I want to do something light. Let's discuss the quantum internet. This is , like, real simple, basic stuff we can all agree on. I took one class in quantum physics as a freshman in college. It was like, 'if you're, if you're going to take any physics class, you might as well take this one because it's so weird that like, you know, you don't have to be good at math to get a great grade, cause we're not gonna get into the math because the math is just bananas. Like, you just have to , like, read the books and, you know, sort of say at least understand.' So one of the crazy things in quantum mechanics, which is the way physics and the universe work at the very, very tiny ant man level, is that things can be connected even if there's no physical connection between them. So I don't know if you've heard of this, but the classic example is called Schrodinger's cats. Have you heard of this cat?
Cassidy Williams: Yeah!
Ceora Ford: Nope.
Ben Popper: So in the quantum realm, if two quantum particles are entangled and you put one in a box with one cat and one in a box with another cat and you put them at opposite sides of the universe and you open the first box, the cat in the second box will be impacted. If that particle released poison, that cat would die. If the particle released food, that cat would be fed. That's just the way quantum mechanics works and Einstein called it spooky interaction at a distance, I think was his eerie, you know, he was like, this is weird.
Ceora Ford: Has this, like, been proven or is it just like, made up?
Ben Popper: Well, according to this story in the New York Times, a lot of big companies are spending a lot of money to get, to get my quantum computers to work. Google declared that they had figured out quantum supremacy, which is like, 'we have a computer that can do what a normal computer can't. Only a quantum computer could do this.' IBM. And so the thing is now you need to be able to send quantum data, which is very different. So this article said they had essentially teleported some data. They interacted with it in one place and the state of the data on the other end changed and they did not touch no data was sent now. Obviously I can't explain how that happens.
Cassidy Williams: This is wild! I don't know how to process this information in my brain.
Ceora Ford: This is gonna sound so silly, but it sounds kind of. The time-travel conundrum in Avengers, Infinity War, or
Cassidy Williams: or End Game or whatever.
Ceora Ford: Yeah. I think it was End Game where, like, they were trying to figure out how to, like, go back in time and get the stones and all that kind of stuff. And I, I feel, like, I remember quantum something being mentioned, am I correct?
Cassidy Williams: I mean, granted that is sci fi fantasy stuff, but also feels , like, scifi fantasy stuff.
Ceora Ford: Exactly. That's the only thing I can, like, connect it to that I've actually, like, real life experienced, I guess you could say.
Ben Popper: And, like, also, like, you know, you're sort of saying, it's like, once you change one thing, it has to change this other thing. Like, if you go back in time, you're going to mess with the timeline. You know, you'll never be able to fully set it, right? Like, you go over it, you know, it's always, there's always some cascade of effects. But yeah, I guess like, just interesting to think about-- that we'd have to have a new, entirely new way of sending, you know, reading, writing, and receiving data if quantum computing was to become a thing, I hadn't thought about that. I was just like, oh, well, they'll just do the calculations faster. And they'll just send it out to the internet,
Cassidy Williams: Like a supercomputer..
Ben Popper: Like a supercomputer should! As it turns out, it would have to be sort of a whole new network with really funny challenges. Like, part of the challenge is that the cubit, which is the bit, that's both a one and a two at the same time. If you read it breaks down and becomes an ordinary bit. It's no longer a quantum bit. So that's why you have to, like, read one over here and it writes one over the... again, I'm acting like, I know I'm - I have no idea how this works and I know it sounds like it should. It's the opposite of logical physics. It's like, it sounds like made up magic.
Ceora Ford: I wonder if this is actually going to, like, pan out, especially since, like, you mentioned Google and IBM are, like, investing in, , like, researching or whatever space in computer science. I don't know. I wonder if it will actually catch and, like, actually impact our industry. And if that happened, when it happens? I don't know. How are we supposed to adapt to that? I imagine that if this does like, wow, we figured it out. Everybody's doing quantum computing now. Like,that'll be years, like, years down the line. Hopefully. We'll all be retired by then, but I don't know. I don't know.
Cassidy Williams: It breaks my brain so much that, like, this whole again, entanglement concept that you talk about where, where two different things are suddenly entangled and you can't describe them individually anymore. They are separate, but the same, I don't understand how that works. Like, I'm sure I could take many classes and figure it out at some point, but it doesn't make sense in my brain.
Ben Popper: I mean, the way they did it, you know, they tried to have sort of, like, a layman's explanation here. They had these three different basically cubits in a carbon nucleus, and they sort of entangled the electrons through these quantum operations. And then, as they would mess with one, they would see a change in the other, even though they were 60 feet apart. And I guess one of the cool things they said about this was, for example, you could then send a message to someone over the internet that could never be intercepted because it doesn't, it only exists in point A and point B and it doesn't travel between them.
Ceora Ford: Okay so that I think makes more sense. So I'm guessing because there's like really no, like, point where aside from the two parties involved in the data being sent, there's no way to intercept. Maybe that would make it, like, more secure.
Ben Popper: Yeah, I guess, possibly a cool function of it.
Cassidy Williams: A quantum blockchain!
Ben Popper: Mhm! Now we're talking.
Ceora Ford: Oh God...
Cassidy Williams: Oh no, no, but , like, I like the idea of it potentially improving some kind of accessibility of knowledge. Like, it could be cool where, like, right now we think about, okay, people with slow internet connections, people who don't have access to X, Y, and Z. I love the idea of that, where if it happens so fast that it doesn't require as much computing power, maybe to send
Ben Popper: another example that was proposed was we send these satellites out into deep space and after a certain point, they can't send back information. Like, they tell us what's happening in Mars and Neptune, and then they're just kind of gone. The data can't be sent back. So, if in the future, they had a quantum system that was entangled with one on Earth, then they could send the data back instantaneously and from much farther away, theoretically, you know, like, when we're all living on Mars, this is how we'll communicate with them, with them. I guess.
Cassidy Williams: I don't understand how something on Mars could talk to something on Earth without a connection. And we're probably going to look back on this, like, in the future,
Ceora Ford: A hundred years from now...
Ben Popper: Laugh at ourselves...
Cassidy Williams: "Oh remember when we didn't understand this." Cause I'm sure like -
Ben Popper: How can you send pictures over the air to a box in my house? If the people aren't writing.
Ceora Ford: I kind of feel like, though, maybe, maybe this quantum computing at the start, at least we'll have very specific use cases? Because I can imagine that if this comes to fruition, everyone would just be like, yeah, we're switching to the quantum network, whatever that means
Ben Popper: they're , like, impossible to have that you have to like, keep them frozen at like four negative 400 degrees. Like the computers themselves are completely impractical and every way they're like giant upside down chandeliers dipped in liquid nitrogen. You know, like, they're not, there's no quantum laptop. There's only like these big,
Ceora Ford: sorry. I can't believe a quantum laptop is like a thing, but anyway, or could, but I could see, like, I don't know, maybe, like, the FBI has, like, quantum computing to keep all of it.
Cassidy Williams: Yeah. Uh, their spies are safe and getting information. Yeah. I'm thinking about this meme where it's just a bunch of clowns looking at each other and there's, like, a rainbow between their brains. I feel like we are the clowns right now, but with quantum computing, the thoughts between our brains happen, I don't know. It's..
Ben Popper: It's a creative thought. Uh, well, if you're listening and you have any thoughts, feel free to hit us up. If you have a good way to explain this, or you think you understand how it works in a way that three people, without much quantum computing experience can understand, we're happy. We're all ears. All right. I have one more topic I brought to the table I'd like to discuss. So this was a report from Retool. Um, they interviewed about five or 600 engineers just about how they use their time. So the top sort of line stuff here, you know, didn't seem that interesting to me, but I guess I just want to put it out there. The first kind of headline was 'we're all running other people's code.' You know, when we think of a software engineer, we think of them writing brand new features. But in 2022, the vast majority of it is actually building on top of an open source library, use reusing code from other parts of a company's code base or from online tutorials. And they said, you know, the sort of more junior or the newer somebody is to software development, the more they do this. So just curious, does that ring true? And do you think that's okay? Like, it's fine that newer people are not doing as much sort of original work or, like, generative work?
Ceora Ford: I have lots to say about this. I feel like a lot of people who are learning to code either in university bootcamp, whatever, like, pre employment, pre official, like, software engineer employment, spend a lot of time building projects from scratch, where you are building features and, like, apps or websites or whatever, like, completely from the ground up. One thing I've said before, and I've heard a lot of, like, more experienced people in the industry say is that, that doesn't really reflect what the day-to-day is, like, on the job. If I join a company today as a software engineer, I'm not building a to do list or, like, a whole website, like, from scratch, I'm probably digging deep into a code base that's existed for years, that has, like, some obscure errors or things, like, that. That, like, need to be fixed and, or you need to like, make sure this is, this feature is compatible with this and this API, whatever,, like, stuff like that. But a lot of it is, like, dealing with code that's been there, that is there and has been there for years. And you have to, like, figure out how to consume that. And I think that a lot of newer developers, haven't gotten used to doing that before they start their job. That's why I think, like, open-source contributions are really important when you are a new developer, because it gets you into the habit of, like, diving into a new code base, understanding other people's code, knowing how to like, do PRS and talk to other people about, like, what you're doing in the code base and stuff like that. I think that's much more reflective of what your work is going to be, like, once you're actually, like, officially employed. Did that even answer your question?
Ben Popper: No, but I thought it was an interesting perspective. Well, you did answer my question. You said that this makes sense practically, and it's not exactly correlated with the way people learn. And so maybe there's something we should change there.'
Cassidy Williams: Cause I think when people learn it's it's, like, working in a vacuum. Like, when you run a physics experiment, things happen in a vacuum, but then in real life, there's a lot more factors. It's the exact same thing where when you're learning, you're in a very sanitized space of coding on a very perfect thing. And you can fix every single bug because it's a smaller project, but then when you're in a real-world system is messy and, and there's a lot to deal with. And, and I agree with you completely Ceora, I think open-source is incredibly important and essential to learning and contributing, and also just understanding what a big code base could be, especially for new learners.
Ben Popper: Yeah, it's actually interesting that you sort of do that because that's a natural segue. So the next sort of piece was looking at how often folks are using open source code, uh, as part of their job. And so something like 70, 80% are doing it once a month, 30, 40% once a week and 10, 11%, you know, more than once a week. So the vast majority, at least once a month and a sizable chunk at least once a week, or having to interact with open source code, I thought that was kind of an interesting statistic. Yeah,
Cassidy Williams: I would honestly argue that it's probably more,
Ceora Ford: Yeah, that's what I was thinking. Yeah.
Cassidy Williams: Cause I, I think like, again, we're all kind of relying on various libraries and, and things that people have built in and there's, like, an XKCD made more. It's just like, all this infrastructure is relying on this one volunteer in Omaha who has been maintaining it for decades. Like, I think even though you might not be. Specifically querying a certain API or, or a certain library, you're still building on open source software. Everybody is because that's just the core of so many systems.
Ceora Ford: And it's, like, impossible not to at this point. Like, I guarantee if you look at some of your dependencies, a lot of them are going to be, like, libraries that you're relying on that are open source. So, yeah.
Cassidy Williams: And if you're reinventing the wheel, you're wasting time like, Why would you build your own router? For example, when a react router exists? Like, what, why would you build your own content management system when WordPress exists? There's so many things that are open source out there and available for you to build off of, why would you build these very basic data structures and then build off from it. If you don't have to.
Ceora Ford: This might tie to your original question to Ben. Like, I… When I was first learning how to code, I used to think that I was cheating. I used to think it was cheating to like, like, use other people's code and, like, use that cause I was learning Python at the time and there's, like, a bunch of, like, Python libraries out there. And I was like, I shouldn't be using this. Like, I should be, like, coding this from scratches. And that, like, me cheating,, like, as a developer, I should be able to code this thing and, like, understand., like, I was having a whole existential crisis over this. And I think, like, that kind of ties into what you were saying about how, like, on the day to day, is a junior developer, like, working on existing code aside from, like, building stuff from scratch bad? I don't think it's necessarily bad. I think it's just, like, working smarter, not harder, especially as a new developer, if I try to rebuild because some of the libraries and things, like that, that I, like, rely on now to get, to get projects up and running, I would get nowhere. Like, I barely finish projects now as is let alone trying to do everything from scratch. So.
Ben Popper: Completely and you're not alone. I mean the next sort of section and the Retool thing here is, you know, lines of code, committed code copied and pasted from other sources throughout the week. And so, you know, from senior managing engineers to ICS, you know, somewhere between 10 and a hundred lines, people are saying, that's what the vast majority of people think they copy and paste into the code base every week. So, like, a very common thing to say, like, okay, I need this function or feature. I know it's been built here really well. I'm going to go grab it and try to plug it in. And the next section, actually just kind of to come back as like, again, what is our fantasy of what,, like, a coder does at home? It's like open the laptop, write something new,, like, hit enter, you know, it runs or, like, get in the mainframe, like, hacking away...
Cassidy Williams: Creating something from nothing.
Ben Popper: Exactly. But when people, you know, sort of, sort of try to work out, what are they doing? 32% of the time is like testing changes. 31% of the time is focused on recruiting other people to come work with you. And another 30% of the time is like firefighting, you know, urgent, reactive work cause something's not working and our customers are complaining. And that, that leaves you like 10%. If that, to, like, build new stuff.
Ceora Ford: Exactly. I think that's pretty accurate. I know,, like, I would say that like, especially when it comes to copying and pasting, like, I'll just say that's not cheating. Like I said, I used to think it was like, 'if I go to Stack Overflow, I should be able to, like, code this from memory and not, like, have to copy off of someone else's work,' but exactly copy and pasting from, like, other resources is kind of. It helps you to get the real work done, I guess you could say, like, I think too. Like, like you said, 30% of people's day to day is like fixing bugs that people complain about. Like, that's a huge part of it too. Do you know what I mean? Like, it doesn't sound as fantastic and as, like, inspiring as, like, building a new UI and, like, making each function... like, that doesn't sound as glamorous, but it's still, like, important work and it still keeps the company running and the product running and all that kind of stuff.
Cassidy Williams: I feel like half of my coding time,, like, more than this 33% is truly just, like, thinking and staring at my code before actually writing anything. I feel like so much of it is like, why is this working? Or why isn't this work?
Ben Popper: Let me ask you a question. Another thing that came up here that I thought was interesting was the waiting. So waiting on people I know, because there've been times we had systems where it's like, Hey, you know, I pushed this. I, you know, there's this pull request out there, could you just – and you're kind of waiting so that I can understand. But also here there's a lot of waiting, it says on machines. Is that something either of you experienced at work, like, I guess, waiting for something to build or waiting for some resources to be available for you or, yeah?
Ceora Ford: Yeah, absolutely.
Cassidy Williams: Luckily I don't have to deal with compiled languages anymore, but that definitely used to be a thing where you have to wait for Java to compile so that you can actually run it. But now it's like waiting for the website to build so you can test it.
Ceora Ford: Yeah. Yeah. My problem is like, I get distracted so easily. I'll be like, you know what? Well, this is, like, building and I'm waiting and everything, I'm just going to, like, scroll through Twitter a little bit, just see what's up with my Twitter friends and then, like, an hour passes. And I'm like, oh wait, oh no! I was supposed to be doing something productive, like, coding and doing my job!
Ben Popper: You need a big alert to go off when it's ready for, you know, It automatically closes Twitter when it's ready for you to work on it.
Ceora Ford: You know what? Yeah. Or something that's like a, like, a little tune that plays whenever the build is finished. That would be nice. That would help.
Cassidy Williams: A friend of mine actually wrote some amazing scripts, like, that recently that were really cool where he, he basically made it where he uses the app Centered, which I've talked about on the podcast before, that, that, like, helps you get in flow state and stuff. And whenever he has break time, it just reopens all his social media and everything, and it lets us know. Play with whatever he wants. And then when there's a minute left, he gets, like, an actual verbal warning from the system. And then, like, slowly the windows just start to close by themselves with the script that he runs, right.
Ben Popper: The screen just starts to shrink, shrink, shrink down,
Cassidy Williams: and it just kind of forces them to be just like, okay, it's taken away from me. And I thought it was smart. It's kind of strict on yourself when you have to run it that way, but it works.
Ben Popper: That's interesting.
Ceora Ford: That's what I need
Ben Popper: To discipline yourself. All right. I'd be remiss if I didn't shout out another big issue here, that was just as high as some of the merge conflicts, or waiting on people or flaky tests, was trouble finding documentation or context. You know, there's this product called Stack Overflow for Teams. You build the whole thing, it just search it. It's always there. You can always check it out on the blog. We've got links out to the great products, but the things are, you know, the pain points here are ones that I recognize, but it was interesting, waiting on machines is actually not something that has really come up on the podcast that often. I mean, I totally believe it, but all of these other complaints, I've heard people air and that one just hadn't come up, so I was curious about it.
Ben Popper: All right, everybody. It is that time of the show. I'm going to shout out the winner of a lifeboat badge, somebody who came on and helped save some knowledge from the dustbin of history, keep it going for the community so people can learn and grow. Awarded 17 hours ago to Razia Sultana. How do I remove the numbers in an HTML ordered list? All right, well, thank you. Razia this question has been around for five years and has helped 36,000 people. We appreciate it. I am Ben Popper. I'm the director of content here at Stack Overflow. You can always find me on Twitter at Ben Popper. Email us with explanations about quantum mechanics podcast@stackoverflow. Or if you like the show, leave us a rating and review. It really helps.
Ceora Ford: My name is Ceora Ford. I'm going to be a developer advocate at Auth0. Hooray for me! Finally!
Cassidy Williams: Woo!
Ben Popper: Congratulations!
Ceora Ford: Thank you. But if you want to hear more from me, you can find me on Twitter. My username there is @ceeoreo that's C E E O R E O underscore.
Cassidy Williams: And I'm Cassidy Williams. I do developer experience at Remote and OSS Capital.
Cassidy Williams: You can find me at @Cassidoo C a S S I D O O on most things.
Ben Popper: Hazah!. All right, everybody. Thanks for listening. And we will talk to you soon.