HappyFunPeople: Fabio Russo

Oct 3, 2020
HappyFunPeople is a series where we talk with HFCers about their life experience, what motivates them, and what it’s like to work at HFC. Fabio is one of HFC’s longest-time engineers and is a great example of the HappyFun spirit of curiosity, kindness, and technical aptitude.
“It’s like a big but remote family and I’m happy and honored to be a part of it.”
HappyFunCorp: Fabio, thanks for joining me today. Do you want to tell us a little bit about where you grew up and your background?
Fabio Russo: Yeah, sure. So, I was born in Amsterdam and I spent my childhood there. My mother is Dutch and my father is Italian and when I was 11 we came to Italy. So there I was, uprooted, and it was hard at the beginning, but in the end I adapted pretty well. I think that part of my background makes me now more adaptable in my work too.
HappyFunCorp: Did you move straight from Amsterdam to Sardinia?
Fabio Russo: No, no. Sardinia is my third arrival point and that’s because my wife is from around here. My father’s family lives near Milan so that’s where we ended up next.
HappyFunCorp: That’s quite a change, Amsterdam to Milan.
Fabio Russo: Yeah, it is quite a change, especially since Dutch people are very nice and there’s a lot of family life and friends and having coffee and pie at somebody’s place and all, while in Northern Italy it’s not quite the same and not as socially oriented. I mean, the mentality is much more work-related — all work and no play, that kind of stuff. So it felt like less fun. Also, as a kid in the Netherlands, I grew up like a small adult and everybody treated me like somebody who’s a part of society. I had responsibilities, was expected to behave right with others but was also fully respected as an individual. In Italy, I just became a little kid again, and I had to stand up from my seat when a teacher came in the classroom, and all, so I felt like respect and being an active member of the community was only for the grownups. All of that was kind of crazy for me. I also couldn’t ride my bike anymore because traffic was more intense and dangerous. That was really a drawback for me. But yeah, I mean, in time, you adapt, and once I started high school, things got better.
HappyFunCorp: What did you end up studying?
Fabio Russo: Yeah, so, I was torn between doing Computer Science and Psychology and so I ended up doing English Literature, English and Russian. So, a complete change, of course, but that’s because I fell in love with the Romantic poets during my last year of high school so I don’t know why but I was kind of pulled back towards the literary side of life, but I kept my programming hobby. I mean, that started quite early to be honest.
HappyFunCorp: How did that come about?
Fabio Russo: I think I was 11 when I started taking up MS-DOS first and then GW-BASIC. My father had an Olivetti M24, a personal computer, and it was basically the Italian counterpart of the IBM PC. That was back in ’84 so it’s quite a long time ago.
HappyFunCorp: I’ll have to post a picture of one.
Fabio Russo: Yeah, and it was nice. You know, 12 inch monitor green phosphor. It’s so vintage now but at the time, it was the newest stuff you could get your hands on.
HappyFunCorp: Was he in computers?
Fabio Russo: Yes, when we came back to Italy, he went to work with his brother who sold computers and office supplies. They’ve always been part of my environment, from early on.
HappyFunCorp: That’s great. You definitely got an early start programming.
Fabio Russo: Yeah, and it was so nice for me. It was just like playing. I’ve always been obsessed with building things since I was little. I’m a Lego kid, you know? So, the jump from Lego to programming is actually, I think, quite natural, because you still end up building stuff with blocks, right?
HappyFunCorp: Yeah, I think programming might be a little bit harder (laughs), but I think the longer I’m around it, I kind of see what you mean and especially when it comes to modern web applications. A lot of times you’re integrating existing services and you’re ultimately connecting these pieces that already exist.
Fabio Russo: Well at the time, things were definitely more simple. I mean, once you learned MS-DOS and its commands, and once you learned GW-BASIC or something you — I mean, your options were pretty limited. It was not like the JS ecosystem today where you can get lost at any step. You had what you had and you just worked with it. It was as simple as that. I mean, sometimes I miss how easy and comforting that was.
HappyFunCorp: So, how long have you been with HFC?
Fabio Russo: I started with HFC in 2011 kind of by accident. I was working for a company here, but I always had this dream of working on my own as a freelancer. And one day I got an email from an old friend/former employer who said, “Hey, I have a friend who has a friend who is in need of a developer, just a side job. Do you have some time? It’s a Rails project.” I’ve always been one that picks up the latest technology because I’m very curious. I like to experiment with things so I had been using Ruby on Rails already for — I think two or three years, and I said, “Yeah, okay, why not?”. So, that turned out to be one of the first HFC projects I think. It was called Twoseed, and it was a platform where users could track pro bono work and get points for it. It was a nice project and I think Will maybe started it. I had to pick it up and do some bug fixing and add some features, and I really enjoyed it. And I got to talk to Will through email about the projects, we had some calls about it and all. So we kind of got to know each other.
What happened was, later that year — this was around August / September of 2011 — I was visiting the HFC website and one of the tag lines on the website was something like, “we can only take on so much work so we have no contact info” or something like that. I dropped Will an email and I told him, “hey, if it’s true that you’ve got too much work on your hands, give me some. I’ll be glad to help. I mean, you’ve seen me work and we’ve done things together already. How do you feel about that?”
Well, that started a conversation that went on for a couple of months. In the end, I did an actual interview with Will, he talked to Ben, and I dropped my job, my daytime job, just like that. I took a leap of faith, and started working with HFC, which was awesome, but also kind of scary, because in September that same year, my first child, my daughter was born. So, it was a really busy life. I had to work hard to show that I was worthy of being on the team. And I also had a small child at home that kept, I mean, requiring attention, of course. So, it was a time of juggling, but it was nice and that’s how it all started.
HappyFunCorp: And how did it feel — my sense is that in 2011, the idea of being a full-time remote worker wasn’t quite as popular. Was that the case?
Fabio Russo: Actually, you know, I always felt that distance was kind of cool. I mean, I didn’t see it as a risk per se because of the way we worked on that first project during that summer with Will. We had Skype calls, emails. It almost immediately felt like a natural way of working and I’ve always been very independent in how I set up my schedule, my work time and the things that I need to do to deliver. So it hasn’t been hard, and I wasn’t afraid of the remote working at all. Of course it was a very new concept in Italy, but I’ve always been someone who wanted to work with people abroad, especially since I studied English literature in college. So, I mean, why learn English if you won’t use it, right?
“…it’s like playing in some way. It brings back childhood memories, but it’s still work. I enjoy myself when I work. I like doing the things I do. I like building things that people use….”
HappyFunCorp: It’s a good point. And so, tell me more about some other projects that you worked on that were memorable for you. You’ve been around since the very early days of HFC and you’ve gotten to work on a lot of different things.
Fabio Russo: I started working as a Rails developer and we didn’t have any real separation between backend and frontend development at that time. If you did web, you were just full stack. You did everything from DB to frontend. But it was just natural because with a framework like Rails, you just did it. I mean, there was no separate JS frontend and API backend then.
And so, I did a web startup project. The first one was RateYourBurn, which was a very fun web app. Basically, the idea was that you could rate the gyms and instructors you went to and you could do that across the whole country. So, across the US. The client had these immense Excel sheets that had to be converted back into data on the DB and, I mean, it was a challenging but very fun project. And the PM on it was Bennett Stone and —
HappyFunCorp: Oh wow, Bennett!
Fabio Russo: Ha, yes. That was a long time ago. Bennett is awesome. I mean, it’s so easy to work with him and time zones where no issue, because I had no real office hours, I just work whenever I need to. So, I remember having calls with Bennett during night time when I was walking the dogs and I just had this headset, and I’d just talk to him. People probably thought I was crazy talking in English while I was walking the dogs. I don’t know. Yeah, those were fun times. And then I did some more web apps, mostly Rails based.
The next one I did was BlinkBuggy, which was kind of a baby book online. They later converted it into a photo service where you could take photos of your kids and print them online. Yeah, I mean, the idea was nice and the client was actually somebody who worked with Google in marketing. I thought it would really take off, but it didn’t — and I’ve seen too many startups fail.
HappyFunCorp: Yeah, I know. I know how you feel. I mean, we worked on one together that we thought would get traction —
Fabio Russo: Yeah, Pyne.
HappyFunCorp: It was the example of a new founder, self-funded, really sharp guys. But ultimately, despite having some press and some initial success, it just didn’t end up getting the traction that you really need to get venture funding. I feel like there’s definitely something about the earlier days of HFC where there was this sort of gold rush happening. And looking back on it now, it feels like a lot of people were trying to get into the startup world, and we were able to help them with the design and technical stuff. We did a lot of things that worked really well and worked for users, but we didn’t do marketing or growth strategy back then. There may be a combination, I don’t know if it’s the tech industry climate or that we’ve also gotten a bit savvier about navigating that and setting expectations.
Fabio Russo: Yeah, it changed quite a bit lately — the last three years or so since the startup bubble imploded. And, yeah, that was a kind of a major shift for me as an HFC engineer too, going from the product-based projects to maybe —
HappyFunCorp: Being more like an ongoing engineering team?
Fabio Russo: Yeah, like going to work for somebody who already has a project and just needs engineering. So, the shift from product to team building was kind of something that I needed to get used to.
HappyFunCorp: And sort of the mental difference between, “okay I just need to build these features” versus “I’m now on this team and there’s more work to do than can be done,” I guess. There’s a road map.
Fabio Russo: Yeah. When we had to build products in the early days, it was basically just you and the PM, you had designs and did the development and if there was a team at all it was usually very small. I used to do a lot of projects on my own where I did both backend and mobile or web, or on tiny teams of maybe just two developers total. And yeah, so … team building, there you also have some projects that are bigger than others. And sometimes we have a mess to clean up in terms of technical debt.
HappyFunCorp: Yeah, those are interesting because you’re getting a look inside of an existing business and it’s a totally different thing than, “we’re trying to build this product” and it’s a little bit different than just purely “I’m on an engineering team.”
Fabio Russo: Some of those projects are sometimes more archaeological projects than software projects. You have to figure things out yourself by delving into the code and deep-diving into layers that were built by a big team of engineers that probably had unlimited funding, that’s just my hunch based on how they over engineered a lot of stuff. So finding your way around without anybody around to help can be tough.
HappyFunCorp: Do you remember any specific technical challenges that interested you?
Fabio Russo: I worked on a diamond-selling app — this app was actually a branch off their main selling app, and it used an iPhone or iPod to make a video recording of diamonds rotating on a platter so that all sides could be inspected. First of all, the same app had to act both as a remote and as the actual video recording app. So it had two faces– almost like a split personality. You could start it as a remote control or as the actual video recorder, and they would communicate with one another via bluetooth, and that in itself was already tricky. Then we needed some integration going with the electronics on the platter that regulated the rotation and lighting and such. Fun fact is I also got my hands dirty with some Arduino. I even ordered a kit and made some stuff work with it as a proof of concept for making a platter rotate, turning lights on and off, and so on. So there were many moving parts like iOS, the server side in Rails, another iOS device via Bluetooth, the Arduino device. It was challenging, but it was also really a lot of fun.
HappyFunCorp: Yeah, I think any time you get to work with hardware interfaces, people get really excited. And you kind of have to have the physical hardware wherever it is that you’re dev’ing, because you kind of have to be able to test the whole thing.
Fabio Russo: Yeah, it’s like playing in some way. It brings back childhood memories, but it’s still work. I enjoy myself when I work. I like doing the things I do. I like building things that people use, and that brings us back to the Lego situation we were talking about earlier. I mean, I’ve always liked to build things and I think of myself as a creative person. I also, you know — you and I we both make music; we compose our own music. Yeah, that kind of thing. I mean, that’s something I think we have in common, right?
HappyFunCorp: One of a lot of things, I think. Hearing your story about making the leap of faith when your daughter was first born — now I have a four-month-old son, also during a pandemic. I’m not making any leaps of faith right now, but it’s — I can put myself in the head space. It’s a scary enough world as it is.
Fabio Russo: I know, but HFC is the right company for doing that. I mean, they always have your back.
HappyFunCorp: So, what keeps you working at HFC?
Fabio Russo: I think it’s the people mostly, which might sound like a banal answer, but it’s true. I’ve been lucky enough to work side by side with really awesome people through the years… [editor’s note: Fabio proceeds to list many, many names] I think I worked with almost everybody at HFC! And we share some hobbies like running, coffee, food, reading of course, movies, and music. It’s like a big but remote family and I’m happy and honored to be a part of it.
And then of course there’s also the constant technological challenges, the fun projects, it’s really hard to get bored. Maybe the only thing that I don’t like is when people leave — that’s sometimes saddening.
HappyFunCorp: Well, in fairness, you’ve been around longer than pretty much anybody, so you’ve seen practically everyone who’s joined or left.
Fabio Russo: I’m a dinosaur (laughs).
HappyFunCorp: So what are you excited about in terms of technology and the kind of work that you do or the sort of — either technologies, languages, things that really excite you that you’d want to work on?
Fabio Russo: I definitely have my favorites. One thing I’d like to say is that it’s funny how I started with web apps, did a lot of mobile and now I’m back to web apps. So it’s kind of like a circle going round. I do like backend work most though. I know my way around with databases and API creation and I enjoy that sort of work. I especially like Go as a language. I’ve had the chance to use it quite a lot in the last few years, and I really love it. And then iOS, and of course, Javascript and React because — I mean, if you don’t know JS right now, you’re kind of out of the game. So React, JS in general, Typescript, but also Node, Electron, GraphQL. I don’t know, I like to keep up to date with the development trends.
I’ve used so many different technologies not only in HFC, that I’m hardly ever afraid of a challenge. I started out with Java. I did a lot of Java EE and C# over the years. And then Ruby on Rails, and iOS. Sometimes though it’s still a little scary when I am thrown into a project and I don’t know my way around or don’t have a firm grasp of the technology being used. There’ve been times where I had projects where I initially barely knew what I was doing. Like my first Swift project, but I said, “Sure, let’s do that.” I mean, I never say no when I have the chance of learning a new skill. I just — I’m a jack of all trades, and sometimes I regret not being a master of one, but at the same time, as a freelancer, it keeps you alive.
“One of the things that was on the first version of the HFC website, one of the taglines was ‘We only work with happy people. We only work with people who don’t have all the answers.’ And that kind of stuck with me because it’s true.”
HappyFunCorp: As far as Swift goes, I mean, when there’s a new language, there’s a point at which anybody that wants to learn it has to learn it the first time. And there’s kind of this built in learning curve, and it goes with the territory. And people like yourself who have kind of been in the game for a long time, I feel like the adaptability is just — it’s a requirement in order to stay in it.
Fabio Russo: Absolutely. At some point, I mean, programming languages are sort of like languages. The more you already know, the easier it is to pick up a new one. Or it’s also like playing a musical instrument, if you play more than one, it only gets easier to learn yet another one, right?
HappyFunCorp: Yeah. How many languages do you speak?
Fabio Russo: Well it’s Italian and Dutch as mother tongues and then English. I had Russian, but I wouldn’t say I’m fluent at all, but I do speak German and I also did one year of Danish at the University, but I forgot almost everything about it.
HappyFunCorp: You don’t get to use it very often?
Fabio Russo: No.
HappyFunCorp: What advice would you give to somebody that’s starting new at HFC, if they’re starting tomorrow?
Fabio Russo: Be adaptable, have no fear. Just try and do it, don’t be afraid to learn new stuff. I mean, there’s not one single day that goes by when I don’t learn anything new and if I don’t it’s probably been a wasted day or at least not a productive one — it should be a warning sign if you’re not learning anything new. But yeah, you have to be willing to adapt and to jump into projects and know your way around very quickly. So it’s like, you know, some parents teach their kids to swim by throwing them into deep water, right? And that’s a kind of skill that you need if you’re going to work with HFC in my opinion. Maybe I’m being a bit dramatic, but —
HappyFunCorp: If you’re wondering, there’s the English expression, “Throw him into the deep end.” I’ve heard the expression used, especially for PMs, that it could be a trial by fire. And it does sound really inflammatory, but there is a certain amount of truth to it that — I sort of look at it through the PM lens because it’s where I’m more suited to. But yeah, it’s a challenging job, and you kind of have to have your bearings right away. And I think the same is probably true for engineering roles, where there’s not sort of a long ramp up time like most projects, you kind of have to just get in and start being effective.
Fabio Russo: Yeah, but the good thing is that, on the other hand, HFC has always been very good with allowing you to do that. I mean, letting you learn new skills, maybe even on the job if needed. One of the things that was on the first version of the HFC website, one of the taglines was “We only work with happy people. We only work with people who don’t have all the answers.” And that kind of stuck with me because it’s true. I mean, if you are in engineering and you want to work with HFC, I don’t think HFC is looking for somebody who already has all the answers, but rather for somebody who is willing to find them.
HappyFunCorp: Well, yeah. What do you think having all the answers means? I mean, it feels like it’s an impossible thing. If you think you have all the answers, then you have blind spots.
Fabio Russo: Yeah, of course. But I think it’s rather about not being too sure of yourself, and being willing to be humble and keep learning.
HappyFunCorp: Yeah, I think you’re right. Humility is an important thing I think for how we like to do business. And maybe that means that we don’t puff ourselves up as much as we probably should at times. But it does mean that we can over deliver, which is nice. It’s much nicer to be on the over deliver side than under deliver.
Fabio Russo: Absolutely.
HappyFunCorp: So what are some other interests of yours?
Fabio Russo: I’m very into reading. I devour books. It’s been tougher since the kids were born, of course, because they require a lot of time. But I have always been an avid reader, and I especially love science fiction. And actually, my — I don’t know how you call that exactly — my dissertation, I think it is, was about the Alien in Anglo American literature.
HappyFunCorp: Can you sort of summarize what your thesis was? It’s interesting.
Fabio Russo: So it goes through a number of novels that are centered on different kinds of aliens. The most notable, probably, is Solaris by Stanislaw Lem where the alien is actually an ocean on a distant planet. What really struck me in that novel is this phrase: “We are only seeking man.” And that means that as long as we are inside our minds, our human minds, it is impossible to conceive something that is truly alien. Because as much we stretch our imagination, we are still caught up in our human experience. So in some way the unknown is and remains unknowable. So something truly alien is not really explorable through literature in my opinion. In the end any alien we can think of is ultimately only a mirror of ourselves.
HappyFunCorp: Right, that’s something science fiction does well. I think while we are on Earth and we don’t have other life to explore and interact with, finding our own tribes is important.
Fabio Russo: Yeah. I mean, before we even think of alien encounters, we need to be able to unite as humans. And lately, with all the things that have happened I really wonder how some people can still be so selfish and separated from one another. I mean, the episodes with the police and Black Lives Matter. How can any of it still be happening today? How can such a big part of humankind be so mean and not work together to overcome our problems? So let’s first make that happen before we even think of, I mean aliens or something. Let’s first find some peace and harmony between us, right?
HappyFunCorp: I think that’s something worth working pursuing for sure, especially this year.
Fabio Russo: Yeah, especially this year. I mean, if things don’t start to change now, I don’t know when they ever will because these are hard times and there is so much momentum right now. People are enraged and rightfully so, and with the current political situation peaceful protests are the way to go. So I think this is probably the right moment to keep fighting in order to finally obtain equality. I’m really hopeful we can make that happen.