Manisha Arora of Veertu – Taking a Bite Out of Apple iOS Development
Manisha Arora, co-founder of Veertu, discusses how her company developed an entire ecosystem of software development solutions in the previously uninhabited iOS DevOps world. Veertu’s Anka platform enables iOS to work like a container on top of macOS, similar to how DevOps is done for Linux and Windows in the cloud.
Karen Taggart: I actually thought I’d have everybody introduce themselves because that way I’ll make sure that I get it accurate and get your names and positions, et cetera.
Michael Neale: Sure.
Karen: Manisha, we’re going to go into your background in more detail later, but if you wouldn’t mind just giving your quick personal elevator pitch, if you would?
Manisha Arora: Sure, yep. So I’m one of the co-founders of Veertu Inc. based out of sunny California. My other two co-founders are based in Tel Aviv, Israel.
So we at Veertu are basically, what we are trying to do is build an ecosystem of software technology solutions in the macOS space, or on top of macOS, to enable the same kind of DevOps efficiencies that are already available and are being adopted in the Linux and Windows side; make the macOS as a platform, make those easy and multipliable for all sorts of development that’s done on top of macOS. So that’s essentially what our goal is. And to that effect we have built a very cool technology platform called Anka, which it’s really aimed at making iOS DevOps work like a container on top of macOS, similar to the way DevOps is being done for Linux and Windows in the cloud space.
Michael: And – sorry.
Karen: Go ahead, Michael.
Michael: Yeah, I’ll just introduce myself because we haven’t hosted this podcast before. So it’s a bunch of different people getting interviewed at different times. So my name is Michael Neale, and I am from Australia, and I am one of the co-founders of CloudBees, and I am an avid user of macOS and Apple products. Embarrassingly, my phone just told me I spend about four-and-a-half hours a day on my phone, on iOS. So I have a keen interest in all of the development practices around iOS and mobile, or I suppose I should because I’m such an addict to this stuff. So that’s me.
Karen: And quickly, I’m Karen Taggart, senior customer success manager at CloudBees; and my interest in this is actually as a non-Apple user who works with a lot of enterprise-level DevOps customers who are mostly Linux-based, who are mostly container-based, who are starting to bring in the Apple and iOS folks. And so some of what you already said was perfect and we’re in line. I just wanted to ask you a little more detail on this because I get with my customers a lot of times and they have these sophisticated shared services departments and they got the containers. They’re working on these endless web frameworks. They got serverless and Kubernetes, and it’s wonderful and beautiful. Then they say, oh, by the way, we just find out about these other folks, or they just knocked on our door, or sometimes I actually find out about them before they do, and sure enough it’s their Mac/Apple/iOS mobile team that’s kind of off on their side doing their own stuff and it doesn’t seem like they get as interesting tools or they’re just not integrated. They’re these kind of special pods, snowflake side projects. So, wondering if you wouldn’t mind talking a little bit about kind of two-part question here is: why are they seen as so different right now and why are iOS dev tools so terrible? For lack of a better word.
Manisha: All right, sure. It’s amazing how much we are hearing about and we’ve been talking to users in this space for past one-and-half/two years now and the amount of insight we have gotten in this space is just amazing and where things are as far as iOS development, DevOps integration, with enterprise release methodologies is concerned. And you’re absolutely right. You know, CI/CD in the mobile space itself is fairly new. It’s only now, as you must’ve seen and experienced yourself through your conversations with your customers, it is now becoming more of an enterprise initiative. It is now being adopted very aggressively for mobile application development. And within that space itself, iOS is sort of like sitting on the sidelines. And one of the key reasons for this is obviously because, you know, Apple for obvious reasons has made it pretty mandatory that all iOS development can only happen on top of macOS. And macOS is not an enterprise data center technology. We all know that. There is no macOS equipment. There is no macOS hardware that Apple has brought to market that is data center ready, you know ready to be racked, operated in a server capacity. And as a result, they’ve always been focused on the consumer side, right? And as a result of that, there has not been any development of data center-centric management technologies or infrastructure technologies for macOS platform. All development has been around consumer space. But lo and behold with the growth in the iOS space and iOS app development, you know it has come to an extent where the iOS application development is demanding the same amount of attention and resources, sometimes even more as Android application development in the mobile space for enterprises. However, now the enterprises have struck in this space where they want to integrate iOS development in their main methodologies of web application development and Android sort of development, but they’re not able to do that because there is no infrastructure or management technologies focused on bringing it inside data center which is how enterprises like to operate. When they want to control or offer something as a shared service, they like to either put it in their data center or put it in some central place in a cloud somewhere, whether it’s private or public, so that they can easily manage it, distribute it, and offer it to various groups. So that’s kind of the state as it exists today. And to be honest, we don’t see any indication from Apple on trying to make it more data center-friendly. They’re certainly releasing more and more powerful hardware, again focused on the consumer side. So this gap is still there and that’s kind of, from our point of view, from Veertu’s point of view, we sort of realized that two years ago when we were talking with a bunch of users working with a previous startup and started to see that users were looking for more infrastructure management software for macOS platforms, and there was nothing that exists, and that’s kind of how we got started on this journey.
Karen: Sorry, go ahead, Michael.
Michael: Sorry, you go ahead, Karen.
Karen: I was just going to say –
Michael: Okay, I was just going to say –
Michael: [inaudible comment]
Karen: …with the coast. Michael’s turn.
Michael: My turn. My turn. So like you obviously focused on macOS. And when you started the company, I guess you started with that premise, do you think the other mobile platform, Android, do you think that’s fairly well served? I mean, I know macOS is certainly a challenge to run and automate, but is Android fairly well served as a mobile development platform tools-wise, do you think?
Manisha: You know, Android is a very interesting animal, I should say, just because of the fact that it’s open source and because it is based on top of Linux. You know, we have all seen a large amount of development of various release tools, management tools that have taken place in the open source community. And just by the fact that it runs on top of Linux makes it extremely easy to build various infrastructure technology as well as infrastructure management solutions on top of it. You know, public clouds is one of, you know, we are seeing it happening on top of public cloud. There was a little bit of complication because it requires nested hypervisor capability, but most of public clouds have enabled that. So now it’s become more of a commodity and you’re able to consume public cloud for Android-related continuous integration activities and CI/CD and everything. And you can do the same on top of Linux in your data center. So I think in that space, that certainly makes Android different in terms of various choices and options that are available. The other key thing is Google itself, you know, in the last couple of years they have made available more solutions and services to make it easy for Android developers to do continuous integration testing. So one of the key platform, I think this was one of the companies they acquired and now the solution is called Firebase, is probably the most used CI integration – CI infrastructure platform to run Android build and testing and et cetera, right? And the fact that it’s offered by Google makes it easy for all the Android development teams to consume it.
Michael: Yeah, that make sense. Karen, you had a follow-up question.
Karen: Yeah, you’re just on this nice list of all these sort of technical – or not necessarily technical, but specific issues to mobile and iOS and one that has been coming up with my customers that they constantly is the challenges with updates and upgrades. They just keep talking about, “Oh, we can’t scale because the updates and upgrades, the updates and upgrades.” And wonder if you could just unpack that a little bit for us and what they’re talking about there?
Manisha: Absolutely, yeah. So you know, enterprise work, system admin, and the way enterprise manages their underlying infrastructure, right? We are all very familiar that for various reasons like security, regulatory, they like to have very well-defined processes and tools to be able to manage updates and upgrades on the underlying infrastructure technology. It’s a very controlled process they have in place. And in the macOS because macOS has always been sitting on sort of like the consumer side of it where there is never a concern. You know as a user of my Mac I can upgrade/update any time I want to. I don’t care about it. But when you look at it in the enterprise domain where it is running inside a data center or even on enterprise employee workstations, we have seen this sharp focus on the ability to tightly control the update and upgrade process. Now in the macOS space, there aren’t really any enterprise grade tools that make it easy to do this. In the last I think five/six years as more and more employee workstations started transitioning to macOS, we have seen companies, and I think companies like jamf, et cetera have come up with a bunch of tools to make it easy to centrally manage updates and upgrades to Mac operating system on multiple endpoints. However, again you know, this is about, these tools are built to manage thousands of endpoints, right? Not to manage endpoints sitting in data center. The way they are architected, the way they’re scaled, the type of control and management that’s built in it, it’s again, more targeted at smaller footprint, many endpoints as compared to server-like endpoints that sit inside the data center. So that’s why this is the most frequent complaint from system admins and enterprises, and this is one of the key reasons they don’t want to bring macOS inside their data center because there is no easy way for them to do the upgrade and upgrade. And when you do bring – and you know, one of the key requirements when you start looking at development on top of macOS like iOS development is that it’s very agile. With every iOS release, Apple makes it mandatory to use a different version of Xcode reach only works on certain version of Mac operating systems. So while the top development framework and platform is constantly changing, it is also demanding that the underlying operating system platform should be compatible with the top layer, which means you have to keep upgrading and updating the underlying operating system. And there are no tools to do it inside the data center. And that’s why you hear about it. So if there was a away to somehow abstract it, right? To somehow abstract the development platform from the underlying operating system platform and containerize it in such a way that it can be isolated from the underlying platform. Like you could be running any version of Mac operating system on the hardware as long as your development container, right, has the right version of the Mac operating system which is required for that version of Xcode to operate then this can work. And this is what virtualization and container technologies are trying to do in the macOS space.
Michael: Right. So I’m wearing a t-shirt right now that says “Docker” on it and it says on the back of it, “Run any app, anywhere,” which to me is a kind of symptomatic, is that the right word? Of I guess the mainstream developer’s attitude that this is a self-problem; whereas what your kind of describing is kind of what my t-shirt represents, but for the macOS, if I can sort of phrase it that way. So one of the things I like to think about that kind of made Docker interesting to so many developers is that it brought, well it brought even more config as code. Developers love to check configuration of systems or things or anything into a source repository. It’s just something we love to do. So well, my first question is with Veertu or Anka, the product, is that sort of something you’re working towards, that you know one day developers could check in something like a Docker file or some sort of configuration that says, “I want this version of macOS with all my tools,” and maybe they could do a pull request for that to check that it works with the new beta version of some SDK or whatever? Is that kind of what you’re working towards or what exists right now?
Manisha: Yeah, in fact this was sort of our whole underlying design when we started working on the Anka technology. So macOS at a technical level, unlike Linux, doesn’t support containers in like, you know, in true container sense. So there is no way you can build. You can take the container technology that currently exists on the Linux and build it on top of macOS because macOS doesn’t support it, right? However, there are ways, and this is how you can get creative when you’re designing a product, there are ways you can take the virtualized code virtualization technology and build an ecosystem of tools around it so that the virtual machines itself can be managed, can be created and managed as containers. So that’s really what we took as our sort of the guiding principle when we were building Anka and that’s what we have incorporated in the product. So what you just described today, the ability to in a code define what I want my virtual machine to [be] built on, what it should have as far as a configuration is concerned, and store it in some place and then pull it back and work on it and store another version of it, those are all the features that are available today in Anka. And that’s how most of our users are really working with these macOS virtual machines that they’re able to build.
Michael: That’s pretty amazing. I mean I think, I don’t know that much about Windows development, but I believe that was one of the approaches taken to sort of provide containers for Windows was well, there is this virtualization layer. What if we presented it as an API-like container? And I know people have done it with things like KVM. So I think it seems a well-trodden sort of architecture to do that, but that is pretty awesome. Like if someone hasn’t sort of experienced config as code, the first time you do, and it was only a few years ago for me. I’m a little bit late to the party in some ways. The first time I did experience it, I opened a pull request to something to try out a different version of Linux and a different version of all these environmental things that I thought would have been out of my control in a pull request, and my pull request was validated. You know, got the little green tic that everything was okay and it kind of blew my mind. Like it is pretty amazing. I think it’s something people kind of need to experience if you have all your configuration checked in with a repo and with the source. It’s pretty awesome. So that’s pretty amazing if that’s kind of [the] state of where things are. I guess like could you talk sort of about, do you have any sort of concrete examples of people using this and what they were using before? Like, I don’t know if you can mention customers by name or anything, but I’d love to sort of hear any success stories at all of people doing this.
Manisha: Yeah, absolutely. Absolutely. So like you mentioned, like the whole container thing was our inspiration behind how we built our ecosystem of Anka Build solution. You know, code virtualization is code virtualization. And we actually, unlike legacy approaches to virtualization, we were lucky that when we started looking at it was about the time when Apple released a native virtualization framework in the Mac operating system which kind of makes us think that maybe they are starting to think about….
Michael: Wait, what’s that called? Is that X-Hive? Is that the name?
Manisha: Yeah, it’s called hypervisor framework. So Apple released this when they released the Yosemite version of macOS. This was in the middle of 2015. And so we actually took this, and this is what X-Hive is based on also, and now even Docker uses the same framework for running Linux and Windows containers on top of macOS. So we actually built the code virtualization itself, virtualizing macOS on top of macOS using this hypervisor framework. But that’s just one piece of this whole parcel, right? You know, code virtualization is [audio silent] … this work is even better because it’s lightweight, it’s more resource efficient, it’s more Apple friendly, et cetera, et cetera. But the other challenge was how do you make it more container friendly, right? And that’s kind of where we built a lot of tools like registry controller, a very powerful Docker-run-like interface, et cetera on top of Anka Build. And that is what brings it all together. So some of our customers, for example, Shopify actually a few months ago they released an awesome blog describing in great detail how they are managing their entire iOS CI Infrastructure as a Code and how they are scaling it dynamically and all. And it’s a great example of how they have completely automated the process of creating different virtual machines corresponding to different Xcode builds. So for example, before Xcode 10 was released, they were working on Xcode 9 and 9.2; and they had to test that application. As 10 beta got released, they had to test it on beta Xcode 10 beta before it became [generally available] . And they pretty much implemented the entire – all the steps of creating these virtual machines and co-virtual machines with base Mac operating system plus all the dependencies that they need or configuration they need on top as a code which they can run as many times as they want to to create these virtual machines, push it to a central registry, and from that central registry all the build nodes can pull those latest virtual machines and spin up instances like you would do in case of AWS, right, from an AMI as an example or if you have a container definition, right, a Docker file definition, you can spin up many containers from that on demand. And so they’re actually kind of doing this on infrastructure which is about 100 Mac minis, and they’re doing it in an iterative manner, right? So they test it on Xcode 9, or they were testing it on Xcode 9 while they were developing it on Xcode 10, and now they are doing it Xcode 10 and starting to develop it for the next version of Xcode.
Michael: Right. And then they’re doing it with config as code and kind of I guess thinking about mobile the same way they think about anything else.
Manisha: Exactly. Exactly.
Michael: As much as you can DevOps principles and practices and all that sort of good stuff. So just as a point of clarification. So the name of your company is Veertu, am I pronouncing that correctly? And then Anka is the product that does the containerization for macOS builds, have I got that right?
Manisha: Correct, yeah. We have two products. The Anka is the code virtualization technology. There are actually two products: Anka Build and Anka Flow. Anka Build is the solution you use to basically convert a cluster of Mac hardware into more of a dynamic macOS cloud and start to manage the entire cloud as a code and instances on that Cloud as a Code as well. And Anka Flow is a product, that again is kind of very interesting because it brings the concept of container on the individual developer machine. So again, very similar to the Linux world, right? In the Linux world, developers not only are containers being used centrally with Kubernetes in all in a central manner for centralized infrastructure, but developers themselves use containers on their dev machines. So Anka Flow brings that concept to the iOS developer machine where they can, you know, pull the same VMs and work with those VMs in a container-like fashion.
Michael: Oh, that sounds pretty good. I’ve got a lot of friends that are iOS developers and they’re some of the grumpiest people I know. And a lot of that is managing…
Karen: Hey, I have some who are very pleasant, okay?
Michael: Well I…
Karen: …mischaracterize here.
Michael: Karen had a few follow-up questions. There’s a lot of chew on here. I’m slightly horrified that Karen’s not an Apple user. I did not realize this until today. Not a true believer. It’s like…
Karen: I could go into my history of why I’m not a Apple user, but this is not about me. But it does bring me to the question, because I am always really curious about how people get into this kind of world because you know you’re always like – I don’t know about you. I had to go home for Thanksgiving to the inevitable, “How’s your job? What do you for a living?” conversation and it’s just really hard to explain. So I’m always really curious, particularly when I find other women in this environment, how did you get even into this whole DevOps CI/CD and then on top of that the iOS space?
Manisha: Yeah. You know, DevOps CI/CD sort of happened because of I’ve always worked in the infrastructure/infrastructure management space. And as we all know, you know infrastructure has evolved pre-cloud to cloud to containers, now to serverless, stateless and now to everything as a service, you know. So I’ve sort of been in this journey for a very long time. iOS, again, iOS was very interesting. iOS was completely, as I shared earlier, was completing opportunistic. It just happened two years ago, we were talking and it’s quite interesting because it originated from Android. We used to have a lot of discussions with the users who were, you know, adopting Android Containers as a Service on an earlier technology that me and my co-founders were part of. And from there the discussions started happening like, “Can we do something for iOS?” It was like, not really because it’s a completely different beast and it sort of started from that point onwards.
Karen: Also I’m always curious about where company names come from because I have to admit, I did do the Google and tried to find out what Veertu meant.
Karen: I get it was a Hindu goddess or something along that lines but wondering if I could just, you know, get the direct answer from you?
Manisha: Yeah. You know, what’s interesting is actually I wish – and we might end up changing the company name to Anka just to make it very easy because right now I realize that it’s a little bit confusing. The company name is Veertu; whereas, the product name is Anka. But as we all know in the startup world these things happen. Things happen and then you pivot and all sorts of things happen. But Veertu was actually just something my other co-founders just came out with prior to me becoming part of the team. And Anka was an interesting conversation and discussions. We just wanted something very playful, not very serious. One of our key team development team members is actually based out of Moscow, Russia, and if you Google Anka, it has origins in the Russian sort of characters and all. So it kind of started from that point onwards.
Karen: Interesting. I always want to get that history down officially because I know I’ve been trying to dig into the original Kubernetes story and there’s two to that one so I figured I’d give you the chance to get that nailed down now. Going back a little bit to some of the iOS specific questions. The last one I was sort of thinking about is, and Michael tested a little bit on this with the discussing mobile CI. When you’re testing in the iOS space, are there specific things that are uniquely different that you have to be testing for or against in iOS that maybe those of us who are moving things into the enterprise wouldn’t think about?
Manisha: So do you mean build or test or you’re using the terms interchangeably?
Karen: Let’s just use them interchangeable for this example.
Manisha: Okay. Yeah, so I think iOS build and test is, it’s unique just because it can only be done on top of macOS, right? So that makes it very, very unique. That’s one thing. The second thing is once you sort of move from build into more of testing, again, the testing part is you know, there are there’s a simulator-based testing and then there’s a real device-based testing. Let’s keep about the real device-based testing out of this scope of the discussion because that’s, again, a completely separate topic. But if you look at simulator-based testing, iOS simulator-based testing, again is something that can only be done using whatever tool Apple provides and Apple only provides one tool, simulator tool which works on top of macOS. It doesn’t work off anything else. Compare this to Android because Android has something called the Emulator and it’s open source. So there are actually a lot of companies out there who have taken that and built their own versions of Android Emulator that are available for enterprises to do testing on. So I think the main key difference is that Apple is such a closed, macOS is such a closed ecosystem that iOS itself, because it is built based on top of it, it has tight integrations and dependencies on top of macOS, that it becomes a very closed ecosystem in itself and the only tools that you have available are what Apple provides you and you’re left with no choice but to use them to basically build and develop your application.
Karen: So why didn’t Apple just get into this business themselves? I mean, I’m sitting here listening to you and this sounds so brilliant what you’re talking about and providing. I think like kind of what’s their deal? Why are they not doing this themselves?
Manisha: Yeah, I’d like to know the answer to that question as well. Yeah, you know, yeah, I mean it’s quite interesting. And if I were to take a guess, and we often talk about this as a team, I think it’s all about focus. You know, as we all know, Apple is only focused on selling more hardware, whatever kind of hardware: mobile hardware, watches, computers, PCs, et cetera. And I don’t think infrastructure has ever been something that has interested them. So it might change in the future, but this would be my guess that they will make tools available to make development easy for iOS developers, but they will all be part of their ecosystem of macOS and iOS. I don’t believe they’ll ever want to focus on providing a cloud or CI service or something like that. I think they would probably leave it to the developers to figure that out or choose whatever they want.
Michael: Yeah, that would be my expectation too. Apple are deeply a consumer company. I mean they changed their name what was that? 2008 when the iPhone – they dropped the computer bit and I think they just really want to be a consumer company that people love. So it seems as if, yeah, I mean they know they’ve got to look after developers and things.
Manisha: Yeah, and I think, I don’t know if you’ve been recently following the news from them, but you know just earlier this month they actually did announce a new Mac mini hardware. They had not upgraded this device, which is the closest they have come to releasing hardware.
Michael: Right, a rackable sort of thing.
Manisha: …rackable, data center-friendly hardware. And they finally released a new version of it which has a lot more horsepower. So I think they are taking steps in terms of, again it is hardware focused, right? They’ve released a device, a hardware which is much more powerful, so it can work and it can be racked inside a data center. It’s much more expensive, but it will help this entire pain that enterprises have with regards to having an infrastructure and infrastructure platform to do iOS CI/CD in a more centralized, shared services way.
Michael: Yeah, Apple does have a history of, they tend to do some development stuff, Swift and web-catered to big projects. So I guess they do have under the covers they are a developer-driven company in some sense. Karen was about to bring up something interesting. Sorry, Karen. Do you want to go ahead?
Karen: Yeah, Michael and I were just talking about this this morning and I’m sure you’ve seen it too is that you know, they’re in the Supreme Court right now. There’s the antitrust dispute going on. I don’t know if you’ve been following this, and it just rang true when you started talking about them being so consumer-focused. And I just wonder if this case – and this is of course just playing what ifs – if the case does prove that there is sort of an antitrust issue going on, at least in the United States, regarding selling the apps, if that will in any way kind of force open their world at all. I don’t know if you’ve had a chance to look at the arguments yet.
Manisha: Yeah. I mean I’ve been reading it sort of at a very higher level. I haven’t had a chance to go and read it in more detail. Yeah, you know, so my husband is a very aggressive Apple user. He has Apple Watch. He has the newest iPhone. He has –
Karen: …very aggressive Apple user.
Michael: Hey, that’s me.
Karen: That’s my new tagging for you, Michael.
Manisha: And you know, I only have a Mac system, which by the way I really love because I used to have a Windows machine and I realize how good a device it is, the Mac PC is so reliable and all. But coming back to your question, will it force them to open up their world and all? You know, I think one can look at it in two ways, right? By closing it, by keeping it closed, they have made this platform, you know, the most reliable. And I’m talking about iOS and macOS, right? Both. The platform is the most reliable, most secure platform from a consumer point of view, right? And you know, so there are big advantages in doing that. The methodology, the app store, process, and everything they have in place, the type of checks they make the apps go through, et cetera, et cetera, and all makes the apps more secure, makes your devices more secure. So one can argue in both ways. You know, I really don’t know. I certainly see the benefit being an Apple Mac user of having a device that is extremely reliable. And when I talk to my husband, he is a very happy Apple user, willing to spend as much as it costs. So, I think the odds are in their favor.
Michael: Well, I think we’ve had a lot of interesting points brought up. So for those listening there’s probably a lot to follow up. So as we wrap up, if people want to learn more, you know, about this stuff, maybe they’ve struggled with iOS builds or using macOS, like where’s the best place to start? Like we can put links in the show notes and everything. Like where’s a good place or blog or conference or anything? Where would you like to direct people to?
Manisha: Yeah, so certainly anybody who would like to learn more about this, the best way would be to go to www.veertu.com, take a look at under the blog section. There’s a ton of information, different scenarios. But the best way would be to just sign up for the trial on the website. Join a Slack account and really start…users and the team on Slack because that’s how most of our users are engaging.
Michael: That’s a great. That seems to be a new trend for not just open source, but any time there’s some sort of developer community, there’s a Slack around. I have about 60 of them open, and it’s quite useful. You don’t feel like you’re shouting into the void of an email list. It used to be IIRC back in my day. Back in the old days.
Manisha: Correct. And I think Slack is based on top of IIRC so.
Michael: It’s the new IIRC.
Karen: [inaudible comment]
Michael: All right, well, thanks so much for joining us. And yeah, hopefully we’ll get this out soon and, yeah, people can start, you know, thinking about macOS and iOS in the same way they think about containers and DevOps and practices and all that sort of good stuff. So thanks very much, Manisha.
Manisha: All right, thank you. Thanks Michael and Karen. It’s been pleasure discussing this.
Michael: All right, and we’ll see you online.
Announcer: Like what you’ve heard today? Don’t miss out on our next episode. Subscribe to DevOps Radio on iTunes or visit our website at CloudBees.com. For more updates on DevOps Radio and industry buzz follow CloudBees on Twitter, Facebook, and LinkedIn.
Read More »