Episode 571 ·

How Open-Source Turns Into Business with Valentin Vasilyev, Co-Founder & CTO at Fingerprint

Today we’re talking to Valentin Vasilyev, Co-Founder & CTO at Fingerprint; and we discuss how an open-source tool becomes a full-fledged business; the ways in which browsers are fingerprinted in order to stop fraud; and why unwasted time may be our most important resource.

All of this right here, right now, on the Modern CTO Podcast! 

Check out more of Valentin and Fingerprint at https://fingerprint.com/!

About Valentin Vasilyev:

Valentin is co-founder and Chief Technology Officer at Fingerprint (formerly FingerprintJS), which started as an open-source project in 2012 under the former name. which still exists today. Fingerprint became a SaaS product in 2020 when co-founder and CEO Dan Pinto joined the company. Valentin has a 20+ year developer career as a polyglot programmer which includes expertise in Ruby-on-Rails and JavaScript. FingerprintJS began as a side project and turned into a full-time career, which now supports over 6,000 companies, 12% of the Top 500 websites, and an active GitHub community with over 17K+ stars.

About Fingerprint:

Fingerprint empowers developers to stop online fraud at the source.

We work on turning radical new ideas in the fraud detection space into reality. Our products are developer-focused and our clients range from solo developers to publicly traded companies. Some of our customers include Coinbase, Booking.com, Target, and Yahoo just to name a few.

We are a globally dispersed, 100% remote company with a strong open-source focus. Our flagship open source project is FingerprintJS (16K stars on GitHub).

We have raised $44M and are backed by Craft Ventures (previously invested in Tesla, Facebook, Airbnb), Nexus VP (previously invested in Postman & Hasura), and Uncorrelated Ventures (previously invested in Redis, Rollbar & Gradle).

Transcript

(Intro Narrator at 00:00:01) Today, we're talking to Valentin, co-founder and CTO at Fingerprint, about turning an open-source tool into a business and realizing how finite our time is. You're listening to Joel Beasley, Modern CTO.

(Valentin at 00:00:18) Hi, Joel.

(Joel Beasley at 00:00:19) Hey, it's Valentin, correct?

(Valentin at 00:00:21) Valentin, yes.

(Joel Beasley at 00:00:22) Did you vote today?

(Valentin at 00:00:23) I cannot vote. I'm not an American person.

(Joel Beasley at 00:00:26) Oh, okay. What citizenship do you have?

(Valentin at 00:00:28) I came from Russia to the States six years ago. America is very slow in giving citizenship to immigrants. It takes sometimes ten, fifteen years. I came here on a work visa, stayed on a work visa for three years, then I applied for the green card. The green card was approved, and since then, I have been living on a green card.

(Joel Beasley at 00:00:49) Interesting. What's the difference between a green card and citizenship?

(Valentin at 00:00:52) You cannot vote.

(Joel Beasley at 00:00:53) That's it?

(Valentin at 00:00:54) Travel-wise, with a passport, you can go to Europe or to certain countries. For example, I'm going to London this week. As a Russian citizen, I needed to apply for the UK visa. If I had the US passport, I wouldn't need to apply in that situation.

(Joel Beasley at 00:01:13) Oh, got it. Dude, interesting stuff. What's in London?

(Valentin at 00:01:16) Oh, it's just some work-related things, some planning, essentially. We have a distributed team, so for some folks, it's easier to travel there than to the United States. That's why we meet there.

(Joel Beasley at 00:01:26) Nice. Where did you found the company?

(Valentin at 00:01:28) Oh, the company started as an open-source project. The actual founding—okay, so the process was I first registered an LLC in 2019. All my American life, I lived in Chicago. So I came to Chicago and stayed here. It's been six years since I've been living in Chicago. And yeah, the company was started here in Chicago.

(Joel Beasley at 00:01:49) Very cool. So it was an open-source project, fraud detection, and then the open-source project got popular enough. You started offering services. How did the evolution actually happen?

(Valentin at 00:01:59) It was longer, yeah. Let me explain from the very beginning. Originally, I started the open-source project in 2012. Then it was kind of neglected for one year. I didn't work on that. And then I decided to blog about it and wrote an article on my blog, and I posted it to Reddit, and it happened in 2013. And the article became popular. It was number one on Reddit r/programming. And there was a lot of feedback and questions, and I then understood that this topic is interesting to developers.

(Valentin at 00:02:30) So in 2013, I started actually working actively on the open-source library and worked on that until maybe 2015 for a couple of years. And then again, I kind of stopped working on that because I didn't have time. And this time I was preparing for my immigration to the US. Then a couple of years later, I resumed working on the library again. It was around 2017 and added several more features, and the library again jumped in popularity.

(Valentin at 00:02:59) Essentially, when you spend time, engage with developers, answer their questions, resolve issues, the usage goes up. If you neglect the library, if you forget about it, the usage goes down because developers see that the library is not maintained or is abandoned, or they think it's abandoned. So the moment I resumed working on it, it became popular again. I saw more and more businesses and developers picking it up and using that. And in 2018, I had an idea: what if I turn this into a commercial product?

(Valentin at 00:03:29) So I did some tests with a landing page with some wording on the landing page that collected emails. And this landing page, I linked to it from the GitHub readme, and I saw some traffic, some nice traffic to it. And then I collected around 400 emails on that landing page, and it was there for several months. And this is when it became apparent to me that not only there is an interest in the open-source library, there is also interest from the developer audience to get a better version—better than the open source, something that is business-oriented, something that integrates well with other platforms maybe, or with cloud providers.

(Valentin at 00:04:06) So there was definitely interest there because I saw emails from large companies who asked about features of the commercial products. They were interested to continue the conversation. And at this time I thought, I want to try to turn it into a business. So early 2019, in April, I left my full-time job as a developer and started working on it full-time. So registered the domain, registered the LLC, registered everything, and it went from there. Worked really hard to do early sales, early product development. So, yeah, that's the story.

(Joel Beasley at 00:04:42) Nice. So I think we're always looking for ways to bring value to the audience. And right when you started talking, I thought the topic that we should advertise for this is something along the lines of how you turn an open-source project into a business. Yeah. In 600 episodes, we've never had that topic. We've never done a show on how you do that. And you go about your life and you're using tens, if not hundreds of open-source projects within the first couple years of your developer journey. And some of these, you see they have some different models. Some of them will provide services to where they will write code and enhance and improve the code base privately for certain people. That's one model that I see a lot.

(Joel Beasley at 00:05:29) Another model that's even, I think, more common than that is they'll host it for you so you don't actually have to host it. And then they'll always apply the latest updates and everything of that nature. So how did you decide on the model for what you're doing? So what is the model, and how did you come to that conclusion?

(Valentin at 00:05:47) The library—let me explain what it does and how I decided on the model. The library performs browser fingerprinting. That's an interesting topic because it's very polarized in the industry. The open-source library is completely stateless, works in the browser, generates a browser fingerprint, and gives you back this fingerprint directly in the browser through the JavaScript function call, essentially called fingerprint.getFingerprint, and it gives you the fingerprint. What was apparent after years of working is that there is a ceiling of capabilities that I'm unable to hit—the ceiling of capabilities with a client-side-only model—and I needed to have a server-side backend that can do a lot more.

(Valentin at 00:06:30) So I started thinking, what if I add the backend? How will it work? What capabilities can I add to the product? And working on this backend seemed like something that would take a lot of time, and I thought it should be a paid product because of how much effort I need to invest into building that backend. So when I started thinking about, okay, what kind of pricing should I have, monetization, I decided it kind of came natural that it's going to be an API-call-based product. You make an API call, you pay for the API call. But one API call is too cheap. It's like one-tenth of a cent. So we charge by 1,000 API calls.

(Valentin at 00:07:08) Our pricing model is like that. When you make 1,000 API calls, you pay $2. This is how the pricing works. And it was very natural transition from the client-side library to a client-and-server kind of hybrid. Because of the server backend, it's much more accurate, secure. The payment is by API calls, very easy to understand. I guess the fact that it was very easy for developers to understand the pricing terms, they were not confused by that, it contributed a lot to the adoption of Fingerprint Pro.

(Joel Beasley at 00:07:43) Nice. And so just so I understand, and give you a background, I wrote software for seventeen years, and I did mostly web applications or enterprise-type stuff. The thing that I'm having trouble with in my head is, first of all, I never had to use this fingerprint stuff. I just didn't do it. What's the goal that it accomplishes? And how were people doing it before Fingerprint?

(Valentin at 00:08:04) It accomplishes a very simple idea. Every browser, and later every device, but we started with browsers—every browser should have a unique and permanent ID, like a serial number. Someone uses their browser to access your website, to perform certain activities like logging in, creating accounts, making payments. You want to understand what they did before. This user, did they create other accounts before from that browser? Did they transfer money from that browser? How many sign-ups did they have? So in order to do that, you need to be able to identify that visitor to be able to answer this question: have I seen this visitor before? And if I have, what do I know about this visitor? And we give that capability by generating that unique and permanent ID. When you use our API, every browser will have this ID. And then it's up to you as a business owner, as a developer, to associate the information that you want with that browser ID. We call it visitor ID.

(Valentin at 00:09:05) If you care about how many accounts this visitor created in the past, you can store a counter and increment this counter every time an account is created. So you can easily identify mass account registrators, people who register hundreds of accounts. Maybe they do it to influence public opinion or do something else. But it's one use case. Another use case, maybe you're doing something—a lot of use cases that we see have to do with money transfers, whether it's cryptocurrency or real money. You want to know the history of this browser activity. How much money maybe this person transferred? Is there any fraudulent activity or potentially suspicious activity going on? What if your service allows to transfer only $1,000 per month for anti-money laundering compliance, for example, and this browser actually transferred a lot more? So you need to be able to catch that as well. So it's like a serial number.

(Valentin at 00:10:02) How businesses or developers did that before, they typically use cookies for that. And cookies worked until browsers started to tighten the third-party cookie security and essentially block third-party cookies. And this is when the old way of doing things—store a unique ID in the cookie—stopped working. And this is why a product like ours is helpful in identifying visitors and associating certain facts or metadata with the browser identifier to be able to decide if it's fraudulent or not.

(Joel Beasley at 00:10:36) Interesting. How are the serial numbers generated? What unique information can you use to make it a unique fingerprint?

(Valentin at 00:10:44) It's just mathematics and statistics. So if you take, let's say, the user agent of that browser or the language of that browser, they're not unique. There are so many people with the user agent of Chrome 107 and language US English, for example. But if you add more and more additional signals—we call them signals—you kind of narrow down the haystack. And the ideal situation is that you narrow down the haystack so much that there is only one browser left in the world that has this combination of signals.

(Valentin at 00:11:16) It sounds difficult when you consider simple signals, but when you consider really advanced signals, it's actually possible. So you add browser capabilities, screen size, audio stack sampling, WebGL rendering artifacts, IP address statistics, network information, TLS fingerprint, TLS crypto analysis that we collect with a handshake, and many, many more things that are—some of it is open source, some of it is not open source. So more advanced stuff goes into the proprietary library. Easier and well-known stuff goes into the open source. But when you combine enough signals, you split that haystack in half so many times that you end up with one person in the haystack, or one browser, rather.

(Joel Beasley at 00:12:02) Interesting. Yeah, because at first, I was having a hard time figuring it out. And then once you got into the WebGL rendering artifacts and the TLS stuff, I was like, oh, okay, that will narrow it down quite a bit. Okay. So you've got this fingerprint. And you answered my question. Through all of these signals, you can create a unique fingerprint. And then you've got this repository of information about that browser, things that it's done. And so do you make any assertions, or do you just act like a data store and people can query it and determine their own insights?

(Valentin at 00:12:36) We separate each account into its own isolated system. And you can query your own data. You cannot query data that someone else submitted. And we do that by giving every subscription their public and private API key pair. So you can use your API key, public API key to write information, and the private API key to read the information back using our server API. And this is where we check whether the data that you want to query belongs to you or not.

(Joel Beasley at 00:13:07) Oh, interesting. So is the fingerprint—I have a browser open right now that has notes about the show, right? And that browser, would it have a different fingerprint if it was in my account than in your account? Or does it have one global fingerprint and we only see data based off of our ability to some filter?

(Valentin at 00:13:25) It will have a different fingerprint for various reasons. As a human, you tend to personalize your browser a lot without realizing that, whether you do it consciously or subconsciously. And it's the human personalization that allows fingerprints to be unique. There are also conditions that change the fingerprint depending on where you use, what time zone you're in, what IP address you use, what ISP you use, what kind of ASN—the autonomous system number. It's like your ISP essentially. All of that makes your specific browser different from mine, even though they're all Chrome 107 on a MacBook Pro 16 inches. They're different for other reasons that you cannot control.

(Joel Beasley at 00:14:09) Yeah. So let's say I get the unique fingerprint. Let's use big companies. Let's say Reddit and Twitter, you know? Right? So Twitter, let's say that they are using Fingerprint JS, even though we don't know, and then Reddit is also doing that. So my browser, if you go to Twitter's developers and you go to Reddit's developers, is it two separate fingerprints, even though I'm on the same browser and I signed up for both accounts back to back?

(Valentin at 00:14:37) Yeah, it's a good question. And it is different depending on if you use our open-source library or if you use the Pro product. With the open source, the fingerprint will be the same, whether you—if you use Twitter and then you later use Reddit, the fingerprint will be the same, identical. But it will—in 2022, it will not be accurate enough to uniquely—there'll be thousands or tens of thousands of browsers with the same fingerprint in addition to yours. But it's going to be the same fingerprint. And it's not useful because so many browsers share the same characteristics and signals.

(Valentin at 00:15:10) With the Pro product that's much more accurate, we actually built into the product a protection against that. And we scope each browser inside that subscription. So if Twitter, let's say, hypothetically, Twitter bought a Fingerprint Pro subscription, then the identifier they would get for your browser would be 12345. And then Reddit, if they bought our subscription, the identifier would be ABCDEF, because we do some—you can think of it as salting or applying a transformation with a customer. So the fingerprint looks different even though it's the same fingerprint. And this information applies to the customer domain, for example. This is how we make the fingerprints different for different customers.

(Joel Beasley at 00:16:03) What's the most common use case that your Pro users use this for? To prevent fraud, what type of fraud, stuff like that?

(Valentin at 00:16:11) It's mostly account-based activity, multi-account registration or account sharing, account protection, two-factor authentication. Any activity that requires knowing more about the user that's being logged in or signing up to protect this account or to protect the company from account abuse. So multiple use cases. But I guess the most frequent one we see is, is it the same browser that typically logs into this account? So you've probably saw this when you log into your, say, Twitter or Reddit account from an unfamiliar browser, they send you a link like it's a suspicious login.

(Valentin at 00:16:54) Yeah. How do they do it? They need to fingerprint your browser because they don't know. They fingerprint your typical browser that you typically use. And then if the fingerprint is different, they become suspicious.

(Valentin at 00:17:04) Something's going on. It's a new browser who we have never seen before on this account. Let's send an email just in case this person is aware that it's a new suspicious login. That's a prime example of when browser fingerprinting is used.

(Joel Beasley at 00:17:17) Or if my browser is logging into like 75 different accounts, it could pick up that?

(Valentin at 00:17:21) Yeah. All kinds of combinations. It's an unusual browser logging into your account or one fingerprint registering hundreds of accounts, or one fingerprint logging into hundreds of accounts, very suspicious. Or if one account is being accessed by multiple fingerprints, that means a lot of account sharing. If you bought an expensive subscription and you share it with all your friends, they log into your subscription.

(Valentin at 00:17:46) Let's say, I don't know, Salesforce, something like that. Expensive SaaS product. You log in there, they log in there too. Salesforce can see, I see 55 browser fingerprints logging into Joel's account. He's probably account sharing. So that's another example why it's helpful.

(Joel Beasley at 00:18:02) Interesting. And so this is just a more accurate, reliable way than other methods, correct?

(Valentin at 00:18:07) Mostly, yes. Sometimes a username and password is better. So when you need guarantees that I'd like to protect access to this account, then user and password is better. Fingerprint typically is an additional, like, second factor or additional factor that helps to protect your account or helps flag your account for suspicious activity.

(Joel Beasley at 00:18:31) Cool. Do you like what you do?

(Valentin at 00:18:33) The definition of what I do changes quite a bit. What I did two years ago was very different from what I do now. I enjoy more engineering and writing code than doing businessy things. But in general, yes. It's just I guess I'm adjusting to new reality for me where I need to think more about business and marketing and hiring and all of that.

(Joel Beasley at 00:18:56) Are you comfortable with that? Is that something that you desire to do or you have to do it? How do you see gaining those business skills?

(Valentin at 00:19:05) Maybe I realized that there is no way around it. I have to do it. I try to structure my work in such a way that it's sustainable in the long run. I don't enjoy maybe business things as much as I enjoyed writing Go and Rails code five years ago. But I realized that I need to continue my work, and I try to structure it in a better way to be more sustainable.

(Joel Beasley at 00:19:28) Nice. Have you got to meet DHH?

(Valentin at 00:19:30) No. I know that he probably lives in Chicago, and I know his story. Yeah. But I never met him. And to me, DHH is like a famous figure that I probably will never meet.

(Valentin at 00:19:40) But yeah, I read about him a lot.

(Joel Beasley at 00:19:42) Yeah. He does a lot of media interviews. You just gotta start a podcast and you interview him.

(Valentin at 00:19:46) Nice.

(Joel Beasley at 00:19:46) Yeah. I wanna share one thing with you about what we were just discussing as far as different things that I have seen happen in the marketplace from different CTOs that I've talked to over the course of the past couple years. And one thing that I've seen is there's two types of CTOs for this example. There's some that what they do is they start doing the business stuff when they liked doing the engineering stuff, and then they just don't really like the business stuff, but they have to do it, so they keep doing it. And I thought that that was just part of it.

(Joel Beasley at 00:20:22) You know? Just suck it up. You know? Put on your big boy pants and rock and roll. Just do it.

(Joel Beasley at 00:20:27) Even if you don't like it, get it done. And then I ran into a couple people who were cofounder types so they could do what they wanted, you know, at the company, and they weren't just executives or employees. And what some of them did that was super interesting was they created the office of the CTO, is the best way I can describe it. And so what they did was they pull a team together of, you know, five, eight people, engineers and data people, whatever is relevant for their business. Experts, they pull in several experts onto a team, and they solve problems within the company or the next version of the product, a future thing.

(Joel Beasley at 00:21:07) They're solving really tough things, and they're the smartest people there working on these very unique projects. And then they'll hire VP of engineering, director of whatever, and that person will serve as sort of the figurehead running the engineering side of the organization. Right? They'll be the personality that everybody's familiar with, and that's who it is. And then that way, your business will still grow.

(Joel Beasley at 00:21:31) The business things will still happen, but you get to spend your time doing what you want. And isn't that why we all start businesses in the first place is to have the freedom of our time?

(Valentin at 00:21:41) Yeah. I thought about it, and I consider that. I think it's possible to do what you described. And I kind of view the journey as a CTO as where I have to participate in the process to make sure the growth is as fast as possible. For some reason, I am very aware, keenly aware or mindful of my age.

(Valentin at 00:22:01) I started later than maybe typical technical programmers. I bought my first desktop computer when I was 23 years old. That's when I first had the computer that I owned. So started later. I want to not waste time essentially and complete things faster.

(Valentin at 00:22:21) And if I hire a VP person who is a figurehead, like you explained, will the growth be as fast as when I'm in charge of technical decisions? Probably not. Or maybe it will be and I'm making a mistake. But I'm thinking for now I'll keep doing this job and maybe later when the company is bigger, things are more stable. That's when I will create the CTO office with a team of five super smart people where we work on future things.

(Joel Beasley at 00:22:49) Yeah. Now you think that you being involved in the business side of things and doing those tasks will help it grow faster. That's why you're over there focusing on it versus if you had hired someone else and then they were involved and it might go slower.

(Valentin at 00:23:05) Yes. I have a little bit of worry that if I hire someone else and this person will start doing what I'm doing now, there'll be some reduction in quality or reduction of maybe passion around the process. So now I'm very passionate. I'm very opinionated about things. And when hiring people, when discussing new projects, when talking to customers, I have my opinion about almost everything when it comes to technology.

(Valentin at 00:23:34) And if I hire someone to replace me, then it's, I think, impossible to find someone as opinionated as me because I invested my time and I want this to succeed badly. And this person might not want it as much because he or she is a hired person who just needs to do some KPIs or metrics and meet some requirements, but not as passionate or as opinionated as I am.

(Joel Beasley at 00:24:00) DHH is pretty opinionated, but reduction in quality is a fear. I guarantee you, you'll never find someone as passionate as a founder. I mean, that's your baby. Right?

(Joel Beasley at 00:24:13) Yeah. Very opinionated about the decisions. But do you love it? Do you love that part of it? Do you love the hiring, having to make all these decisions, all of these businessy things?

(Joel Beasley at 00:24:23) Do you, if you were to make it binary, do you love it or not?

(Valentin at 00:24:27) Yes. Because what I'm doing now, A, I have never done before and this is the only chance in my life where I'm able to do it. If you have a chance to do something that you've never done before, do it because that's probably your only opportunity. I think people sometimes mistakenly think, oh, I'll have another chance to work on this or I'll have more time. But life is so short that you typically don't.

(Valentin at 00:24:52) At least that's how I view it. When I got the opportunity to immigrate to the U.S., I grabbed this opportunity really hard because I knew it was probably the only opportunity that I have in my life. And I used it and I immigrated. I came here. Then the opportunity to meet some investors and raise capital for Fingerprint, I grabbed this opportunity again because I don't know if I have another opportunity. So I want to use it. And because I don't want to lose that opportunity, I love it because I know that maybe this is the only time when I can actually do that and participate in something that then I will enjoy thinking about when I'm old.

(Joel Beasley at 00:25:30) Most people aren't like that. Why are you like that?

(Valentin at 00:25:33) Maybe I recognize a rare opportunity when I see it. Again, using immigration to the U.S., I applied for the American visa 11 times and got 11 rejections. So when it worked the twelfth time, I recognized that it's not a typical thing that happens to me. It's a crazy luck that I'm seeing.

(Valentin at 00:25:54) I need to pursue it. And when some investors or people want to work with me, I view it as not as I'm entitled to have this. I view it to say, oh, I'm so lucky it happened. I gotta use that right now, today. That's how I think about it.

(Joel Beasley at 00:26:12) Were your parents like that? How do you think you picked that up? Do you think it's just embedded in you, in your DNA? Or did you see this behavior growing up?

(Valentin at 00:26:20) I don't know. I grew up without a father. So my mom, she worked as a very standard family. Nothing unusual about it.

(Joel Beasley at 00:26:30) So is she driven? Did she work really hard to raise you and be a single mom?

(Valentin at 00:26:33) Not really.

(Joel Beasley at 00:26:34) No? No. So if you were to think back and try to figure out where your drive came from, what would the answer be?

(Valentin at 00:26:42) I think it's a combination of things. When I grew up, there was just a lot of hardship. So we moved around. We had to flee from a country with a civil war in it and were refugees. And it's been a lot of hardships.

(Valentin at 00:26:56) And maybe that kind of fostered that feeling of here's an opportunity, you need to use it.

(Joel Beasley at 00:27:02) Yeah. 100%. I equate my drive back to as a child, I was hit by a car, and I was in a wheelchair for a year. And I had to go through the process of learning how to walk again. And then halfway through that process, I fell, and I re-broke one of my legs.

(Joel Beasley at 00:27:18) And I had to start essentially all over, you know, and then your muscles and your legs will atrophy, and then it's just a long road back to walking again. And while I'm fine now, those years, it taught me a lot about being humble when you have to have someone else help you go to the bathroom, when you're dependent on these other people, and then you're doing the rehab stuff, and it's just such a slow process. So I learned some patience there, some never-give-upness there, for lack of a better term, some persistence, and then how to be humble because I'll tell you what, someone helping you go to the bathroom will humble you up real fast.

(Valentin at 00:27:55) Yeah. Makes sense.

(Joel Beasley at 00:27:57) Yeah. So that was the big moment for me. That was my first moment. So I was age 12, 13. And then I think the next really big one in my life was before I started this show.

(Joel Beasley at 00:28:08) I think it was around 27. I'm 34 now. Around 27, my mom had a stomachache. She went to the doctor, and she found out she had cancer, and they said she has a couple years. And then six weeks later, she died.

(Joel Beasley at 00:28:18) And I got to be in the room. It was a very good thing that I got to be in the room. I was holding her hand. I was with my siblings. And it was that moment that I actually understood the concept that life is finite.

(Joel Beasley at 00:28:27) And I said, okay. This is fixed. And you hear it all the time. Right? You constantly hear it.

(Joel Beasley at 00:28:39) You know, you have one life, all this stuff. But there was just something, I don't have a word for it. There was just something about that moment, and I just said, I'm going to try a lot harder. I'm gonna get up tomorrow, and I'm gonna try the hardest I've ever tried. And then I'm gonna get up the next day, and I'm gonna do it again.

(Joel Beasley at 00:28:51) And then I'm just gonna keep going. So I'm always interested when I meet people who are doing really great things, and it's difficult what you're doing. Running a company with 100 plus people is a difficult thing. You mentioned a couple times success. Right?

(Joel Beasley at 00:29:08) You said you wanted to be successful. What is your definition of success?

(Valentin at 00:29:16) When I think about my time going back that I didn't waste it, my finite time. And that I didn't waste it is I used the opportunities that I had. I worked in something that I enjoyed, and I remained truthful to myself. The only thing I value is how I think about myself in the world. And if I am not violating the rules that I have created for me in my life, I'm truthful to myself.

(Valentin at 00:29:45) It means I lived well and used the opportunities that were presented to me.

(Joel Beasley at 00:29:51) What are some of those rules?

(Valentin at 00:29:53) Well, they are typical things. Don't try to be who you are not.

(Joel Beasley at 00:29:57) Explain that a little bit more to me.

(Valentin at 00:29:59) I think it's important to really understand what you want, why you want something. Do you want this to impress someone or you want this for different reasons? And once you have, there is this Latin phrase, nosce te ipsum, if I pronounce it correctly, which is know yourself. I think 99% of being successful in life is understanding yourself first. You need to realize who you are, what you want.

(Valentin at 00:30:24) Once you do that, every single decision becomes easier because you know why you want to do certain things, not to impress someone or do something that other people expect from you, but for other reasons because you know what you want, you know who you are, and you know which things are important to you.

(Joel Beasley at 00:30:42) I love that. You want me to share my two things? Yeah. So I've thought about this a lot. I like to watch people grow.

(Joel Beasley at 00:30:49) That includes my kids, my wife, my family, myself. I like watching stages of growth and maturity, and I like being useful to other people.

(Valentin at 00:30:58) Mhmm.

(Joel Beasley at 00:30:58) And those two things are, if I had, as long as I'm doing those two things, whether I'm rich, I'm poor, whatever happens, as long as I'm doing those two things, I'm accomplishing the things that fill me up inside.

(Valentin at 00:31:12) Being useful is a very great thing, which I'm only learning to kind of ingrain or internalize. I think it comes with age, the desire to be useful, and I haven't reached that point yet.

(Joel Beasley at 00:31:25) How old are you?

(Valentin at 00:31:26) I'm 41, but I still have a lot of things to work on in terms of personal development.

(Joel Beasley at 00:31:31) Man, dude, this is great. You are crushing this podcast.

(Valentin at 00:31:35) Thank you.

(Joel Beasley at 00:31:36) This is really good, man. What other things? We've got about ten minutes or so. We need to do a call to action. Do you push people at your library, at the open source version first, or do you say just come straight to the paid one and do a free trial of it?

(Valentin at 00:31:48) Oh, I don't, if they heard about it, if they want, they will do it.

(Joel Beasley at 00:31:51) Yeah. I'll do it. Go download FingerprintJS. No. This is great, though.

(Joel Beasley at 00:31:56) Alright. I'm kind of personally curious about how do you pay people when they're in multiple countries? I don't know if we want to talk about that, but I've always been kind of curious about it because I think it's a lot of paperwork and maybe there's a service that does it or something.

(Valentin at 00:32:10) Yeah. We started doing that directly through regular wire transfers. So you create your bank account and then you pay people that you work with through the wire transfer, but that can be problematic and come with its own issues. So we switched to using a service like remote.com to pay contractors in other countries. For the US, we started being the employer directly.

(Valentin at 00:32:36) Our company Fingerprint JS was the employer for the US team members. But then because of the compliance burden and having people from so many states and having to maintain all that paperwork, we switched to employer of record, EOR, I think it's called, a company that does all the compliance and paperwork for us. And technically they are an employer for those team members that work in the United States and we just pay to the company. And this makes things so much easier, especially in the US because in the US, you need to have all your team members as employees and that comes with an additional paperwork and compliance burden that you don't want to spend your time on because you want to run the business.

(Joel Beasley at 00:33:17) When did you decide that you were going to be fully remote?

(Valentin at 00:33:20) It was from the very beginning. My co-founder, he joined in January 2020. Next month, COVID-19 broke out. So our first hire happened in July 2020. So by this time, COVID had been going on for five months already.

(Valentin at 00:33:40) So by this time, when we hired our first person, we didn't think about an office or hiring someone in the office. We thought we'd just continue working remotely. And then it continued like that. All the new people, they were in Europe and elsewhere. And we never considered really that we would have an office because of COVID. And when COVID was over, the company size was already like 50 people or 60 people.

(Valentin at 00:34:05) So by this time we had built the core, the difficult core of how to think about working together, how to communicate effectively, how to talk to each other, how to expect replies, when to expect replies from team members. We had internalized and built that understanding of a truly remote culture. And when COVID was over, we already learned how to be remote and we didn't see any imperative to switch from being remote to being a non-remote company.

(Joel Beasley at 00:34:35) So this business has grown to over 100 people in two years?

(Valentin at 00:34:39) Yes. Actually, yeah. Two years since July. Our first hire was in July, so it's been like two years and four months.

(Joel Beasley at 00:34:48) That is amazing. Are you raising capital? Is it just natural cash flow growth? How are you doing it?

(Valentin at 00:34:53) Yeah. We closed three rounds, seed, Series A and Series B. Seed and A were in 2020. Series B was in 2021 in October.

(Joel Beasley at 00:35:04) That's my least favorite thing, by the way. I raised a round of capital. I raised $500,000 when I started. And the going around and asking for money from people, for me personally, I found that I disliked it. You talk about disliking something and knowing yourself.

(Joel Beasley at 00:35:23) I did it once, and I pushed through, and I continued to actually have done it. And then I'm like, nope. I'm not doing this. I'd rather spend my time being on customer calls trying to make sales because it takes a lot of work. It takes a ton of work, and it's a whole other profession to learn to raise capital and to do it well and to speak their language and to follow the trends and align with those.

(Joel Beasley at 00:35:47) And it's a lot of work. So I commend you on that, my friend. You've done three rounds. That is a massive amount of work.

(Valentin at 00:35:54) Mostly, almost all of the work was done by my co-founder. He's great. Yeah. He's amazing at raising capital and that's his results essentially. But I cannot say I don't enjoy it because I view it as selling your vision.

(Valentin at 00:36:10) Yeah. When you talk to customers, you need to sell your product. When you talk to investors, you need to sell your company. It's selling in both cases. It's just a different scale of the sales process, but you act as a seller in this transaction.

(Valentin at 00:36:23) So I think these are actually the same.

(Joel Beasley at 00:36:25) Yeah. Yeah. They are. Personally, I just don't like it. I don't like it.

(Joel Beasley at 00:36:31) And I agree that selling, isn't it crazy? So you were an engineer and you had to learn sales skills like me. I've only started learning sales skills about five years ago, and it has helped in every aspect of my life from my relationship with my wife to interacting with friends. And it's not about being manipulative, but it's about understanding patterns and how things happen and how people agree on ideas and how you can figure out what somebody wants and you can help them achieve what they want. And those types of skills have been so incredibly valuable to me.

(Joel Beasley at 00:37:03) I didn't pick those up while I was writing code and building software engineering teams, but I definitely picked them up in an intentional way when learning sales.

(Valentin at 00:37:12) Yeah. I agree with you. I think sales process is explaining people what they already know so that they understand it better. Once you realize that, the sales process becomes easier. You need to be patient, clear about what you want to achieve. But eventually, it's explaining what they already know.

(Joel Beasley at 00:37:31) What was the hardest thing about learning sales skills?

(Valentin at 00:37:34) Overcoming being shy. As an introvert, it's very difficult. So I did several dozen sales and every time I need to kind of think about it. I'm doing it not because I'm an extroverted person, but because I wanted to grow the business, do the business development. I want to help this business. I want to help them understand how they can improve their revenue.

(Valentin at 00:37:57) And this requires overcoming your introversion and shyness. I guess that's the hardest part.

(Joel Beasley at 00:38:05) Yeah. That was one of the drivers for me starting the show, right, to build other relationships and to get to talk to more people and get better at speaking. And then slowly, episode by episode, you just get less shy. And then I look back at myself and I'm like, whoa. It doesn't feel like you've come very far, but if you watch videos of me, year one or the first couple episodes, it's a lot different. So speaking of sales calls, these people are not a sponsor that I'm gonna mention here, but we started using them last week, and it's pretty sweet. And it's called Wingman. Like, trywingman.com. So it records the sales calls, and then it analyzes, and it gives you a bunch of interesting feedback.

(Joel Beasley at 00:38:46) And so I was like, alright. I'll try it. And I tried it, and then I was like, this is actually really cool. And then I bought it for my team. Again, not a sponsor or anything. But do you guys record your sales calls? Have you played with that technology yet?

(Valentin at 00:38:58) Yeah. With Gong. Gong.io. Yeah.

(Joel Beasley at 00:39:00) Yep. Gong's the main competitor to them. Yeah. So it's great, isn't it? Isn't it fantastic? All the insights you get?

(Valentin at 00:39:06) The transcribing ability, searching in the transcribed text. I agree with you. Yeah.

(Joel Beasley at 00:39:11) Yeah, dude. I well, I'm just excited because I didn't know those things existed until two weeks ago. So I want to leave people with a couple things. The first thing is go download Fingerprint. Go get your fingerprint, right? And the second thing is, I want you to share the best piece of leadership advice that you've ever received and put into action, and it's useful to you.

(Valentin at 00:39:36) I would like to emphasize the importance of realizing how finite the time is. That even when you're young and healthy, you might just lose your motivation in the future and you have less time not because the life is finite, but because you become disinterested in the future. That's why my biggest advice would be grab the opportunity while it exists. I think a leader of the business should never lose opportunities to grow their business. Every single chance to grow the business should be used.

(Valentin at 00:40:07) Doesn't matter what it is. Marketing, sales, networking, product, engineering, you should try to use every single opportunity and never lose the chance.

(Joel Beasley at 00:40:17) Thank you so much for listening. And if you found this episode useful, please share it with a friend or colleague who you think would get value from it. And if you have topics that you would like to hear discussed on the podcast, either add me on LinkedIn, or send me an email [email protected]. Every time I get an email or LinkedIn message, it absolutely makes my day and inspires me to keep going.