Matt Faluotico: Software engineer at Facebook
Matt graduated from Ohio State in 2015 with a degree in computer science and engineering. Matt was active during his tenure at Ohio State with involvement in student organizations such as Buckeye Hackers and OHI/O. Matt goes in detail about the interview process with Facebook, how to hone your programming skills, and how to land an interview with Apple.
Pablo: [00:00:00] Hello, welcome. We had Matt ago from Facebook. And to start things off, Matt, tell me about
Matt: [00:00:10] yourself. Um, as you already said, I’m an iOS engineer at Facebook. Um, I’ve been there for just about a year now. I work on this product called local. Local is its own app. It’s not part of the main Facebook app. It’s a separate thing.
No Facebook design. Um, well, there is Facebook designs, just like we have our own set of design. Um, it’s a really different experience working from most of the Facebook apps. And the entire purpose of it is to find places and events wherever you are, whether it’s traveling or your home city basically helps you find what you wanted it next.
The real world.
Pablo: [00:00:52] No, really cool. Really cool Hill. Why Facebook? How’d you get into Facebook?
Matt: [00:00:56] I was an iOS engineer at this place called zero, and to get to the next level, I wanted to like go to a place where iOS was big and, uh, Facebook makes the most complex mobile app in the store. Um, you may have some harsh opinions on whether it’s a good app or not, but the complexity of what is inside that is unlike anything else.
That’s why it’s. It’s so massive. Why? You know, it may not be as performant as, you know, something like, you know, Twitter, like it’s, it’s complex. And so I wanted a taste of that, so it was like,
Pablo: [00:01:39] it has its own app, isn’t it?
Matt: [00:01:41] So it’s inside Facebook as well. Okay. But it’s a completely different experience as its own app.
Pablo: [00:01:48] No. Awesome. Awesome. Um, so why Facebook for you personally?
Matt: [00:01:54] I thought they were going to take me to that next level of being an iOS in shame.
Pablo: [00:01:58] That’s nice. So if people don’t know, you’re actually a big company within itself, if I remember correctly, it’s kind of like an accounting tool.
Matt: [00:02:05] it’s an accounting tool. Um, we, my team primarily worked on the expense version of the product, um, which is, uh, similar to concur. You just scan a picture of your receipt. And then it’s sent off to the cloud and then it comes back down, all filled out. And you just say, this looks good. Send it to my manager.
Pablo: [00:02:25] did you transition from zero to Facebook? Clearly there was a need a want there, but like logistically, how did that work out for you? I co
Matt: [00:02:33] I basically set it up that wasn’t quite ready to leave zero, but if a handful of these companies happen to reach out, I would take them up on the offer. And I got an email from Facebook and decided like go through with it.
It was a pretty long interview process. There was a lot of stuff I needed to finish up at zero, but I’m called an iOS recruiter and we talked about some iOS basics and she said, let’s move you onto a phone screen. Um, did well enough on the phone screen to go to the on-campus interview and spent an entire day, um, and their memo park campus.
And. About a month later, I received an offer.
Pablo: [00:03:14] So did you have a friend at zero? Do you have a friend, a champ, a friend at Facebook that helped you?
Matt: [00:03:20] I knew people at Facebook, but from what I understand, none of them pick up online. Yeah,
Pablo: [00:03:29] I mean, you were in, you’re in the Bay area, right? So, I mean, I guess that’s fitting.
Real cool. Real cool. Um, but before that, I think the biggest story I like about you is that it’s your, you didn’t come from a traditional, we’re like, everyone’s go, so what are what cause students, right? Everyone’s goal is to graduate and then go onto, you know, you’re one of the tops, uh, where you kind of took a different approach.
You did an internship here in Columbus, you did an internship out in the Bay area with the JP Morgan, then you transferred over to zero, and then you went from zero to two. Facebook. And it sounded like, if I’m not mistaken, and you kind of, you kind of picked your, you kind of like a critique your craft within iOS development.
Did that whole journey, correct.
Matt: [00:04:09] Um, let’s go with that. Yeah. I’ve been doing iOS for awhile and got more and more specific, more and more specialized. So you
Pablo: [00:04:17] think that was your secret sauce in that you were kind of like an expert in that, in that specific area, that that was your, your language then? I
Matt: [00:04:23] think calling me an expert is very generous.
I appreciate, I wouldn’t call myself an expert. Um.
Pablo: [00:04:30] Yeah,
Matt: [00:04:30] I you get to the point where it’s still making a product. So you can be, your expertise can be an iOS development, but the concepts in Android really aren’t that different, and you shouldn’t be able to call yourself a senior iOS engineer if you can’t talk to the senior Android engineer and basically implement the same exact thing.
So. Yeah. Uh, I just use iOS as a specialty with this goal of they, Andrew, a guy sits right next to me and I should be able to understand everything he’s doing, even if I haven’t used Java since my freshman year.
Pablo: [00:05:13] No, I like that. That’s a good scenario. Um, as for the, the college students, what do you recommend students should do to kind of separate themselves between other developers, in your opinion?
Matt: [00:05:23] Just make things. I sat in a bad presentation once and the presenter just kept saying, um, um, so the first app I made was just a big button and you would tally how many times someone said, um, and then you said the presentation’s over. And it would draft an email that said, Hey, I just wanted you to know, and your however long the presentation was.
A presentation, you said, um, through 124 times, and you could send them that email. And like, that’s stupid. That’s really, no one should have downloaded that. And I think only like 300 people did. And that’s the 300 people that download every single new iOS app. And my dad, yes, I just made that open source, that pump, but it’s a start.
Pablo: [00:06:16] it sounds like, well, what’s the underlying philosophy of the start of you actually building something, even though it’s stupid, like what’s the real purpose of it, in your
Matt: [00:06:23] opinion? I mean, I learned something from it. I learned one that I could make an entire iOS app. Um, during one public speaker. Yeah.
Yeah. In any, any libraries that I wanted to do. What was hard about this was like if you close the app, you still needed to keep, right. What was hard about it? You needed to keep counting like the time. I’m assuming then you learn how the timer works and iOS, and you noticed that the timer actually stops when you close the app and say, why, why does that happen?
Uh, and then you find out iOS automatically kills all applications. Five seconds after you click the home button. And even something stupid and simple like that. Teachers do a lot about how this system works and it becomes, this first step is, okay, well now, now let’s get a table of data. And then. After a table of data you, so let’s, let’s turn it into a Pinterest like grid where everything’s a different size.
Yup. So, um, it should all dynamically a size to the size of the content rather than just like a boring row, right? Everything’s a step. You’re, if you’re trying to make. Um, everybody tries to make Instagram as the first step, which actually isn’t a bad thing to do. Honestly, I can’t think of
Pablo: [00:07:47] something different.
Matt: [00:07:47] a health app that tracks how you bike. If you’re going to try to use the accelerometer to figure out how someone’s biking as your first app, and you have no idea of how the system works, so maybe that’s a little aggressive, but making something stupid. Uh, like, uh, a tally app is you don’t need to release it in stores, throw it out and get hub open source it.
If people that are like, Oh, this guy made a tally app. That’s not what this community’s about. Those people don’t really, it
Pablo: [00:08:17] sounds like build something then level up. I mean you just learn from there and then that’s how you get the to be strong. That language. I met guy Kawasaki once and he said like when you’re presenting or presenting to people, it shouldn’t be about like your presentation.
It should be about your traction. Like would it be done like. And so the, and therefore it’s an easier story to tell. It’s like more engaging. It’s more fun, like we’re just geeking out. So I think there’s a lot of value in that in what you’re saying in that regard. Um, any other recommendations for students and what you’ve done in the past or
Matt: [00:08:44] there are so many opportunities that college provides to make those incremental steps and to just go out and build something.
I think if you graduate and you haven’t gone to a hackathon, it’s a huge, huge mistake. Definitely go to hackathons. You’re going to be awesome. People that I got interviews just for attending the hackathon. I didn’t make anything. I just played around and talked to people, but I think it was Apple was to like, Oh, we saw you at the hackathon.
Why don’t you talk to us for an interview? Because how many software engineers are in each graduating class at Ohio state? Is it 500 or something? I think there are thousands CSE students. Um, how many of those are going to hackathons? It’s, it’s like it’s already a massive filter. 1,000 aren’t going to a hackathon.
Yeah, true. Just like just going and then as you make these incremental steps, or maybe you have a brilliant idea, you could win the hackathon and then that really puts you at this next level. Yup. Yup.
Pablo: [00:09:46] No, absolutely. And then it just, it sets you up for success moving forward or patting a resume, just knocking something out during that weekend and putting it up online.
You find you, and then you could tell that story when you meet with them, you have something, a talking point to
Matt: [00:09:58] talk about,
Pablo: [00:09:59] um,
Matt: [00:10:01] on your resume without you having to do it all on your own.
Pablo: [00:10:04] Yeah, no, totally. In your opinion, what did you do? Uh,
Matt: [00:10:08] yeah, go ahead. Well, I’m going with the all on your loan, on your own.
Academia seems to focus a lot more on independence than industry does, but I am never doing anything completely by myself in the real world. And I would maybe say it’s better to work with other people and you know, learn from these other people. Then to focus on, you know, sitting in your dorm room or your apartment and just working on something on your own.
Learn how to. You know, communicate with other people on something technical, learn how to use version control and manage, you know, the guy to my left just really messed something up and now we have to talk about it and get it all pushed into the stable version of something. These are all the real world things that happen every single day that aren’t going to happen in a class projects.
Pablo: [00:11:00] I like that. Yeah. That’s huge. That’s huge. Um, in your opinion, what do you face? Uh, what does Facebook look for an engineer’s just your, your personal opinion? High level.
Matt: [00:11:12] Um, I mean, obviously they look for good engineers, but there’s an entire spectrum of engineers. I would say I’m more product focused. I work really closely.
With our designer and um, the, the PM I, I’m like, I’m a big events go or I love music. I actually sought out to work on the events team because of that. So in a way, I am building the app for me, which makes me passionate about the product itself. But. An entire team of those people means your infrastructure sucks.
So you do need to have a balance of these, these people like infrastructure, these people like security. These people work really closely to the product, and Facebook’s mature enough that they understand that they need to hire a balance. And you know, that’s why people have titles and different focuses and everything.
So I think it’s hard to say what kind of engineer. Um, they look for, um, but be passionate about the part that you like on the part of engineering that you like. I switched back and forth and back and forth before I landed at this side. What do you say
Pablo: [00:12:24] back and forth? What do you mean?
Matt: [00:12:26] There’s infrastructure’s cool really knowing how the iPhone works and how to get absolute performance out of it.
Uh, before I started at Facebook, I had no idea that, uh, the traditional way to round corners is a huge performance. And. The, uh, the normal product engineers that are really just consuming components, probably aren’t, you know, digging into that and realizing it, but you have this infrastructure team, you know, I mean, they scroll and I notice there’s a performance hit, and then they dig apart everything in that view and figure out what is causing this performance it.
And that’s the only reason you can scroll through Facebook with all of their different story types at 60 frames a second.
Pablo: [00:13:13] Nice. Interesting. Thank you for that. Thank you for that. Um, I’m, I liked what interviews and the talk, how we roll over here. Um, so I’ll just kind of end things off and I thank you for your time, but in ending, um, what are some of your computer science mantras that you live by?
Matt: [00:13:30] Uh, I think one of the biggest ones are, uh, if you’re, you’re looking at code that’s six months old, you should think it’s pretty bad. You, you need to learn, and not every six months to think your old stuff’s bad. That’s the big one. And state management sucks, but I have a much pretty unavoidable. Right.
Pablo: [00:13:52] That’s kind of cool because it kind of makes us valuable every six months. In theory. What makes. This idea that it’s ever changing a legacy code. It’s like, forget that. It’s like, how are we improving every six months? Is there another way of looking at it as well?
Matt: [00:14:05] Yes. As soon as something hits the master branch, it’s like a C, right?
Pablo: [00:14:11] Yeah. No, totally right. Anything
Matt: [00:14:13] else? Um, that’s, that’s the biggest one, especially with this whole idea of code quality. Yes, you can have quality code, but you still to think it’s bad in six months.
Pablo: [00:14:26] It can always be better. Just by the question. We should always be asking ourselves, how can we make it better?
What are some ways of making it better and testing it in that regard? Well, Matt, I want to thank you for your time. You have a great day, and I was talking to my
Matt: [00:14:37] man. All right, take care. Have a good one.