Uplimit (formerly CoRise) Co-Founder Sourabh Bajaj recently convened two alumni of the Uplimit ML Foundations Track, Max Allen (currently a risk engineer at finance automation platform Ramp) and Scott Millslagle (a data engineer for university recruiting system Handshake), for a conversation about their experiences and key takeaways from their time spent taking the course.
The following excerpts from Sourabh’s conversation with Max and Scott have been edited and condensed for clarity.
Sourabh: I would love to hear from both of you on what got you interested in machine learning.
Max: I'd say back in college, I did not take a lot of machine learning classes, although I took a few. My primary interest back in university was more focused around computer systems, operating systems, distributed systems, that type of stuff, which sounded really interesting.
Then frankly for the first couple of years of work out of school for me, I wasn't really doing much machine learning at all. I was more of a generalist back-end software engineer, doing data, and other types of stuff, but I think it came back into the fold because there's this notion that machine learning has already proved extremely useful in doing certain types of tasks. Machine learning has become a much more effective way of approaching other sets of problems. For me, it was really this budding curiosity about how to solve these different classes of problems with different techniques.
Scott: For me, I started getting interested in ML just a couple of years ago as I got more familiar with data and how different teams are using data. The more I started working with data, the more I started to think, “I'm a data engineer currently, so one of the things I do is make that data available to others in my position and other teams internally at Handshake.” Then I started to wonder, "Well, what else can we do with this data other than just a one-off team might make a decision about how they're going to approach something?" My intention is to move into an ML role in the next year, but in the meantime, I have a lot of passion project type stuff that I would love to try to work with ML.
Sourabh: Max, you had a very strong software engineering background; what were your expectations when you signed up for the ML track?
Max: At least initially, I wasn't explicitly signing up for the track because I knew I wanted to change jobs or move into more of an ML role, but it was really mostly to satisfy that curiosity and broaden my knowledge of problem-solving.
Going into the track, my expectations were that the track would cover several different branches of ML. The first class covered the classical techniques of ML, the non-neural network types like trees and decision trees and other types of linear regression models. As I found out going through the track coming from hearing a lot of the buzz of ML — in particular deep learning — my expectation was that the vast majority of the emphasis and useful work or applicable work in the track would be coming out of the deep learning side, but as it turns out in industry, the classical techniques tend to perform really well on lots of tasks.
In hindsight I really appreciate the applied ML class because it taught me a lot about models that are: 1) very practical and useful, and 2) that I may not have otherwise studied if I was just doing this purely by myself and only interested in the deep learning stuff.
That being said, the deep learning as a class was also really interesting because it talks about state-of-the-art models and how companies are using foundation models to build upon fantastic research from corporate labs and in academia. In the last class, data-centric deep learning tied everything together in terms of how to think about data and the whole life cycle of machine learning and also how to think about productionizing ML systems more than just the modeling stuff we did in applied ML, and also the deep learning. It really covered all the bases of getting started.
Sourabh: My big takeaways have been the importance of getting a baseline. When I was just starting out, I would always run towards the fanciest testing and I would say, “OK, try this simple inquest,” which has been a really good lesson. What's the thing that surprised you the most about the entire experience?
Scott: The first thing that goes on my mind is that I don't have a background in math. I didn't take a lot of math courses that are applicable to machine learning and so I was assuming, “oh, I'm going to be super far behind the whole time just for that reason.” I think it wasn't the case. I think it was far more approachable than I was anticipating and was cool because it also helped to focus. If I do want to go down this track of really understanding the math behind everything, here is where I can focus. That was pretty surprising to me. I don't know if this is necessarily surprising, but just how much you've learned at the end of even one of the courses was just crazy. I went from not really having any contexts or understanding to when I was in meetings at work with people who were on a data science team, to I could ask more knowledgeable questions or have a better understanding of what the tasks that they were doing actually look like and why they reframe them the way they are.
Sourabh: What kind knowledge do you have to have before starting the track?
Scott: I definitely think having a pretty solid understanding of Python is really key.
Max: I would definitely agree that a background in Python is definitely helpful in terms of where some of the bugs or annoyances come up in some of the particulars of the libraries like NumPy or PyTorch or TensorFlow. Particularly for me, around things like shaping tensors or arrays correctly or getting like datatypes correct. But I'd say that doesn't take a deep understanding of Python. I think there are bugs that everybody will go through as you get used to the particular library, and that's also where I think the debugging channels in Slack, such as during the course where students can help out with those types of issues, really come in handy.
Sourabh: One question, Scott, you had mentioned earlier how you have a bunch of projects that you are trying to find time for. I would love to hear one or two things that you're excited to work on if you're allowed to talk about it.
Scott: They're all mainly at this point ideas in my head just because I haven't had time to get past that stage. But I think looking at weather and weather patterns, I think would be super interesting to do with ML, especially in areas of drought or hurricanes. I think it would be super interesting to work with data like that.
I used to live in Haiti. Before I got into tech, I thought I was going to be an anthropology professor, and then the further down that path I went, the more I didn’t know if I want this, which is how I eventually got to tech. I think a lot of where my head is that is how do I combine the skills that I have with ML or Python more generally with what I know about Haiti and what I think can be done with machine-learning in Haiti.
Sourabh: As you've started to think about your own projects, how have you thought about the most complicated techniques? Are you trying to figure out problems that you are excited by or are you more looking into these techniques that you got excited by? How do you balance between those?
Max: I'd say for me, I focus on problems I find interesting in my life and not necessarily data-focused or not, but just what types of things do I care about and what am I most curious about. Then from there, there are a couple of different areas of interests I have, and as an engineer, I like building things and building tools that can help me make something more efficient.
This has led me to problem spaces for which ML can be a technique to solve something. An example of this is I have a long history of studying foreign languages, in particular, Chinese, and so I'm always on the lookout for either building or trying new tools that help make the process of language learning easier. It so happens that all of the new and interesting advancements in NLP and texts processing and text summarization and stuff like that can enable really interesting product experiences in language learning. I'm starting from this core interest area and then saying, what would I want as a person and then saying in what ways can ML perhaps make this process easier or better. That's how I think about ideas.
Sourabh: Scott, one question for you. You are clearly working full-time while doing the track; how much was time commitment like and how did you balance doing both?
Scott: That's a good question. I think the cool thing about the track is that you will get from it what you want to get from it. If you have a super limited time commitment, you can still go through it and work on projects. It seemed like most of the projects had optional components of them where it was, such as if you've got this far and want to keep going, try X, Y, and Z. There's always that option to go further.
But the cool thing is what I was mentioning earlier — you have access to everything after so you can go back and check out those optional things or do whatever you want. Time commitment though, I would definitely put in a few hours a week.
Sourabh: Obviously, this was a live cohort experience. In both of your opinions, how has that contrasted with either trying to do this on your own or using a textbook? What were the big differences you both observed?
Max: I think there's something about the live cohort experience or the life experience in general that just somehow sets different internal senses of accountability.
But I'd say just having some schedule defined for you and having some social or cohort enthusiasm, and do I say camaraderie. That’s a completely different sense of accountability in you and wanting to get things done on time and wanting to do right by all the other students working beside you and instructors who are working really hard for you.
Scott: I think there's something different about knowing that there are live meetings once or twice a week that you can show up to if you want to ask questions. I think one thing I've noticed a lot with whether it'd be a textbook or some other online course, is that there's always a point where you have a question, and you can't ask a textbook a question.
But in all likelihood, my experience is a lot of the time you don't get a response or you get a response that doesn't help you, and maybe confuses you more. I think being able to go to a live session at Uplimit and say, "Hey, I don't understand this," and have someone who is working in the industry or is an academic and is able to explain that to you in normal regular terms, there's not a comparison for that. I think also the cool thing is there's this whole async component tool where even now if I had a question, I would post it in Slack to our cohort, and I'm pretty sure at least one person would respond. That's unique because that's not the case in my experience with other online learning platforms.