Welcome, we are visiting Two Sigma. And it's a real pleasure to meet with Margaret Kelly and Jake Kornblau, who are both software engineers over here. So Margaret, Jake, it's wonderful that you were able to take my class on campus at Rice. And at that time I had created this new material in COMP 322 on parallelism. And as you can see, we now have this online class. And I was wondering if you can share which concepts from the campus class you found most helpful now that you're software engineers at Two Sigma. >> Yeah, so I thought that the class was great at providing kind of fundamental multi-threading concepts that are able to be applied not just in Java but in other languages. I think futures is a great example of this, I see that coming up everywhere. >> Great. >> And so, yeah. >> Yeah, and as Margaret mentioned, it's really helpful because these are actually concepts that are being built into a variety of languages, and it's really easy nowadays especially, for example, in Java with streams to just go from iterating over a stream to doing something in parallel. >> Right. >> It's useful to have a strong foundational knowledge to be able to just apply it whenever you're working in something new to be like, I want to do something in parallel like here's the concepts that I need to know. >> Yeah, and that's exactly right and we have a changing landscape, because Java streams were just not available two or three years ago. I have to keep updating my class material. And we have it all now on the online class. >> Yeah. >> As you know in the class we cover both theoretical and practical concepts. And I was wondering whether there of any the theoretical concepts that you recall or feel were useful after the class? >> Yeah, so I think Amdahl's Law has been really useful. I kind of keep that in mind whenever I'm thinking about designing software systems and trying to detect where bottlenecks are. It's kind of useful to keep thinking about that. >> I think the one that always comes to mind is critical path length, so there's actually a really funny demonstration that we did in class, where it was kind of as if we were making pasta. >> Yeah, I asked students to come and volunteer to do things. >> But it's kind of funny because if you ever think about when you're at home cooking, you have all these stoves which you can kind of think of as different processors, but you are the critical path of you need to chop vegetables or put stuff on the stove. And so, it's kind of one of these funny concepts that applies not only to computation, but to just everyday life when trying to figure out how long something's going to take. >> Yep, yep, and what always trips me up is I do everything and I forget to boil the water. And then, you always have to wait for the water to boil. >> [LAUGH] >> Yep. Anything else that you remember from the class that you took on campus? >> Yeah, I remember the flipped classroom approach was really helpful. You recorded videos that we would watch ahead of time and that was really helpful and I think it's exciting to see that now this format is being brought online for anyone to take which is real exciting. >> Yeah, that flipped classroom was an experiment that worked out well. And I think it really works well with your generation. Because in the old days, I'd tell students to go read a textbook chapter, and they wouldn't. But for you all, I'd say go watch these videos, and all of you would do it, so clearly that worked. Jake, what are your thoughts? >> I mean it was nice because the videos were relatively short and so that when we came to class it wasn't so much about giving knowledge to us as much as it was about reinforcing the knowledge that we'd learned in the videos. So I'd say classes were more helpful than a standard style lecture, because we were kind of focused on reinforcing what we had already learned. >> Right, and that's exactly the goal of our online class. So we have quizzes, and mini projects, and the discussion forum, and lecture summaries to reinforce what's in the videos. Now, that both of you are pursuing a very successful software engineering career track, do you have any advice or tips for learners in this class or students in general who are interested in this material? >> I found that getting as much coding experience outside the classroom as possible was really helpful, whether that's in a formal internship or something more casual, just working on an independent project. >> Right. >> It was really useful, because then you get to see how to apply these concepts that you're learning in the classroom in more of a real world setting. Yeah, and there's so many opportunities with open source software >> Yeah. >> There are projects out there looking for volunteers so there's lots of opportunities. How about you, Jake? >> So in my senior year, I had a really good opportunity to work on some larger projects with a lot of people and I think what I really discovered was that there is a big difference between when you're writing software for a project where you kind of work on it for a couple of weeks and you finish. And when you're writing something where it requires a lot of people working together, there's a big challenge kind of having a bunch of people coming together, both in communication and in the fact that all of a sudden you don't know how all the code works. And so, I'd say, if you can get the opportunity to kind of work on one of these larger projects, or get in kind of a leadership position, because leading a group of people is also really difficult, then that's really helpful later on, when you go into industry. And you're working with these huge code bases where you have a lot of knowledge about certain aspects. >> Right. >> And a lot less knowledge than you would hope for about kind of, how other aspects or parts- >> You have to learn to deal with incomplete knowledge and you know, ambiguous information. >> Yeah and it's really different from when you're writing all the code, and you know how every single little piece works. And you get some obscure error message and you're like that's line 554 and like, >> Right, yeah. And they have to figure out how to deal with it. >> Yeah. >> Well, that's really helpful. And it's so great seeing both of you again. As a professor and a teacher it always gives us a lot of pride to see our students succeed after they graduate. So congratulations on your accomplishment. And good luck for everything in the future. >> Thank you.