Tradologics: Cloud Platform for Trading with Ran Aroussi - DevOps 161

Ran Aroussi is a software developer, data hacker, financial tinkerer, algorithmic trader, quant researcher, technology geek, creator of several popular Python libraries, and founder of Tradologics. He joins the show to talk about "Tradologics". He begins by providing an overview of his company and the services that they provide to its clients.

Hosted by: Jonathan Hall

Show Notes

Ran Aroussi is a software developer, data hacker, financial tinkerer, algorithmic trader, quant researcher, technology geek, creator of several popular Python libraries, and founder of Tradologics. He joins the show to talk about "Tradologics". He begins by providing an overview of his company and the services that they provide to its clients. 


Sponsors


Links

Socials


Picks

Transcript


Jonathan_Hall:
Ladies and gentlemen, welcome to another exciting episode of Adventures in DevOps. I'm your host for the day, Jonathan Hall. And unfortunately, Will couldn't make it today. He had a last-minute conflict come up. So I'm here in the studio by myself, except thank you, Ran, for coming and keeping me from being lonely and just talking to the microphone by myself.
 
Ran_Aroussi:
Glad to be here. Thank you for having me.
 
Jonathan_Hall:
Great. Tell us a little bit about yourself, what you do, what is DevOps to you?
 
Ran_Aroussi:
Well, DevOps, you know, in the Google days, when I first started with computers, you know, everything that you've done was on a single machine. So no DevOps had to be involved in
 
Jonathan_Hall:
Mm-hmm.
 
Ran_Aroussi:
any stage. But you know, as we develop our software, we're doing trading related software and infrastructure. So as we as we get through that, there's a lot of a lot of intricacies involved in making things are running, you know, the microstructure and microservice, you know, nature of the architecture kind of calls for it.
 
Jonathan_Hall:
Nice. So what's the company you're working with right now?
 
Ran_Aroussi:
So TraderLogix is essentially a cloud platform for and software for trading. So for algorithmic trading specifically. So what we've developed, we've developed an AWS style kind of product line that you can mix and match to build your own trading operating system. So if you're an algorithmic trader and you wanna have this amazing idea that you wanna buy, I know you wanna short Apple every day, announce a new phone for some reason, then the idea is extremely simple, but to start coding it and make sure that it actually works, this becomes very much an involved process. You need to subscribe to market data, you need to ingest it in real live feeds, need to make sure that you have the right connectivity to your brokers, have a risk management layer in place, send your orders, monitor them, kind of safeguard your portfolio, know when to exit. idea that you could have explained in like four words, I want a short Apple, just became a whole new, a whole big thing as it translates to software. And what we're trying to do is we're trying to give you all the tools necessary so you can really focus on the, if this happened, this is what I want to do without bothering yourself with all that, you know, infrastructure and tech stuff. And we'll take care of that for you, essentially.
 
Jonathan_Hall:
So do you provide an API, an SDK, or it's bigger than that? It's a whole platform? OK.
 
Ran_Aroussi:
It's a whole platform. So the platform kind of was born from an idea of let's create a unified API that will allow you, that will act as sort of a bridge between you and all the brokers in the world.
 
Jonathan_Hall:
Hmm.
 
Ran_Aroussi:
So instead of you having to rewrite your code base whenever you switch between brokers, you're gonna have this unified API and there's gonna be kind of a plugin in the background that you can say, I wanna connect to interactive brokers now. So it's really that was kind of the original idea. And then when we built what we built on top of that was another layer that allows you to we build SDK that allows you to program your trading strategy in eight different languages right now. So it's a Python, Node.js, Java, C, C sharp, Ruby, whatever it is, you can use it to program your strategies. And we also providing you with like a VM that your strategy runs on it. And to that VM, and then you go to our web app and you can say, okay, these events I wanna listen to. So whenever there's a new price or whenever stock crosses a certain moving average or whatever, I know there's a stock split, some sort of an event happens in the market, ping that events information to my strategy that sits on that VM and then you can run your logic based on that. Hence the name TraderLogix.
 
Jonathan_Hall:
Nice.
 
Ran_Aroussi:
So yeah that was kind of the idea of bringing everything together so you can really focus on just sitting there, your strategy will just sit there in the wild, wait for some sort of an event to happen and when that event happens, you can then have your code, oh, this happens, this is what I want to do. Now I'll add my secret sauce. But all that subscribing to data and doing all the preparation before that, that's not the interesting part or even the money making part of your business. The money making part of the business is just coming up with good trading ideas and execution.
 
Jonathan_Hall:
Mm-hmm. I worked last year with a client that was building APIs for credit card transactions. It was similar kind of concept. They call themselves sort of the AWS of credit cards was kind of their vision.
 
Ran_Aroussi:
Yeah, sort
 
Jonathan_Hall:
And so
 
Ran_Aroussi:
of.
 
Jonathan_Hall:
it was to give, you know, it would give you sort of a unified API to talk to different credit card providers and risk management provider, all these different things. So if you say, I'm a company, I want to sell credit cards or I want to give my employees credit cards or whatever, all through this API. So it sounds like a similar sort of
 
Ran_Aroussi:
Yeah.
 
Jonathan_Hall:
concept. Just give you an easy sort of facade around a bunch of complexity related to
 
Ran_Aroussi:
Exactly.
 
Jonathan_Hall:
trading.
 
Ran_Aroussi:
Exactly.
 
Jonathan_Hall:
What was your first product along these lines? I mean, I don't know how long you've been in business, but how did it start?
 
Ran_Aroussi:
Well, actually, my background and most of my adult life, I was involved in internet marketing and ed tech space. So I was creating exchanges for online media and ad networks and that type of stuff. We used to serve in the S company in that area that I worked with. We used to serve about 3 billion ads every day. So there's a
 
Jonathan_Hall:
Mm-hmm.
 
Ran_Aroussi:
lot of algorithmic coding that goes behind the scene. Not a lot of people know that. the online media, every time you see an ad online, if you don't have an ad blocker, then there's a whole auction going on between thousands of advertisers that are kind of competing for that eyeball. So that was kind of my initial experience with large scale applications. But I would say that the first product was a Python library that I've created for trading, for back testing specifically with interactive brokers, was a really pet project. And then I've created a bunch more like the Y Finance library and QuantStats and PyStore. So there's a bunch of different applications that I've created and open sourced them and they're all available on my GitHub. And that, the more and more people started using that. library alone has over half a million installs every month. So I was kind of exposed to other people in this space that are wanting and trying to become independent algorithmic traders and they are stuck by the overcomplexity of the landscape as it is today.
 
Jonathan_Hall:
Mm-hmm. So let's say I'm starting new. I'm interested in buying your product. How long does it take me, assuming I have the requisite knowledge, to
 
Ran_Aroussi:
Yeah.
 
Jonathan_Hall:
get up and running with some algorithmic training?
 
Ran_Aroussi:
So I'm assuming that you already have the idea and you know how to program. That's
 
Jonathan_Hall:
Mm-hmm.
 
Ran_Aroussi:
the two basic prerequisites. So yeah, you can be up and running in less than an hour essentially.
 
Jonathan_Hall:
Wow.
 
Ran_Aroussi:
Because again, let's say that your strategy again, we can take an example strategy. I always use this example. I want to buy stock when it's down three days in a row, just because
 
Jonathan_Hall:
Okay.
 
Ran_Aroussi:
you're expecting some sort of a bounce back. Okay.
 
Jonathan_Hall:
Mm-hmm.
 
Ran_Aroussi:
So that's the entire strategy. So all you have to do essentially within your code say when I get that information with a list of stocks I want to buy them and when the when I get a confirmation that the order were filled I want to send Sell order for tomorrow. Okay that that that so that's your entire code base Now on the web application you just go and specify some sort of a screener an average volume of more than 5 million stocks a day. So you want stocks that are trading, they're part of the S&P 500. They're in an overall uptrend, so they're above the 200 day moving average. You put all these parameters. When that happened, send that list of stock to my strategist. Notify my strategy, hey, these are the list of stocks at the beginning of the trading day. Let me know what the list are. So then your strategy is just, you know, just receive the list. All it really has to do at that point is just send a bunch of buy And then when those orders are filled, you're going to get another ping from us, our system, that say, hey, you just bought Apple or Tesla or Netflix or whatever it is. And then you know that you can send a cell order for later in the day or tomorrow, whatever your threshold was. So, yeah, it's a matter of just programming a few lines of code and setting up the correct rules on the web application. So you really can be up and running in no time.
 
Jonathan_Hall:
It sounds like a crud app. I do a select ticker symbol from table where whatever my criteria are
 
Ran_Aroussi:
Oh yeah.
 
Jonathan_Hall:
and the update with, you know, bye.
 
Ran_Aroussi:
Yeah, exactly. It's exactly like that. Only that information is updated on a minute to minute level basis.
 
Jonathan_Hall:
Nice.
 
Ran_Aroussi:
So that's the data that we're holding. And once you're in a trade, we're starting to check your position on a tick by tick basis, usually a few times a second just to make sure that you're never going over or below your risk threshold.
 
Jonathan_Hall:
Sure, sure. Let's talk a little bit about what goes on behind the scenes. We talked about what your consumer of your product sees.
 
Ran_Aroussi:
Yeah.
 
Jonathan_Hall:
It's a simple API. It looks like, I'm sure it's not written in SQL, but it's the same basic
 
Ran_Aroussi:
Sure.
 
Jonathan_Hall:
concept. What does it look like behind the scenes? What are the moving parts? Obviously you have your fingers in a bunch of different
 
Ran_Aroussi:
Yeah.
 
Jonathan_Hall:
APIs for different exchanges and whatnot, but give me a bigger picture. What does the back of the house look like?
 
Ran_Aroussi:
Okay, so let's start from the user experience point of view and then we'll see what's behind the scenes.
 
Jonathan_Hall:
All right.
 
Ran_Aroussi:
So when user logs into the web application, this is essentially a node-based application that has its own kernel and it does all the crude stuff. It just pulls data from the database, displays it on the web application and allows you to create your own mechanism. Now, when you create a strategy, something new happens. So when you create a strategy, we're essentially creating a new Git repository. So that's, we have a Git server that automatically generates a template code base based on your chosen language and provides you with an IDE. So we, right now on the backend, there's a Git server that created a new repo. We're pulling that data That's microservice number one. When you decide to deploy your strategy, so we're essentially we're packaging it as a Docker image, pushing it to our cloud of Kubernetes cluster, and running it. Once it's running, it pings back. There's like a Redis queue, we talk, different microservices talk to one another. So once the Docker is up and running and your strategy is running, it pings back to our kernel saying, I'm ready. And that way the kernel knows that it can start sending you information. When needs start to sending you information, it means that we're talking to the blotter, essentially the engine that listens to incoming market data and parses the data on top of saving into the databases And then based on whenever data comes in, there's a whole ingestion process that's going on to make sure that the stocks are matching that specific, your specific criteria. And when they do, we package the data and push it to your strategy using sockets and then your strategy knows how to respond. So, and the orders and then it receives back paying back using sockets. So it's a whole it's a whole system over there. It's not a simple server client application.
 
Jonathan_Hall:
Hmm.
 
Ran_Aroussi:
Yeah, so that's kind of in a nutshell how things work.
 
Jonathan_Hall:
I was expecting it to be simple. I thought I could probably throw one together tomorrow, but I guess not.
 
Ran_Aroussi:
Yeah, it's quite a spaceship because here's the challenge. You know, there's the same amount of people on the planet that that's your potential different trading styles that you can
 
Jonathan_Hall:
Yeah.
 
Ran_Aroussi:
have. So we couldn't build a platform and we didn't want to build a platform that says, okay, here's an entire framework that you have to learn in order to work with our platform. Here's the programming language that you had to do. Here's how to structure your code. We wanted none of that. We had to create a platform that is completely agnostic, both in terms of the brokers that you can talk to, the fact that we don't have a framework. So you do you, you code the way that makes sense to you. We have an API endpoint for pretty much anything that you want. And that way we were able by breaking down that platform into multiple pieces, we're able to build that goes so you can build the system that behaves the way that makes sense to you and fits your trading style if that makes sense at all.
 
Jonathan_Hall:
Yeah, nice. I'm just looking through the... trying to look at the documentation here. My internet's being slow, but that's all right. What are some of the surprises you've had building this? I'm sure that you had an idea how things were gonna go when you got started. And unless your technology career is just completely different than mine, it didn't match at all your expectations. What have been the biggest surprises?
 
Ran_Aroussi:
Don't. It wasn't a surprise really. I knew from the get-go that version 1.0 will gonna go into the trash and we'll have to redo everything from scratch. And that's basically what we've been doing for the past 10 months. We've kind of reprogramming their entire and redesigning the entire architecture based on what we've learned from customer's usage and the server load. were able both to cut down on our server costs and infrastructure costs almost 80%
 
Jonathan_Hall:
Wow.
 
Ran_Aroussi:
while providing a system that's much more robust, much faster, just because of different design decisions that we took. But yeah, the biggest, you know, if you want to call it a surprise, so the biggest thing was the fact that there are so many trading styles that people can use. you really don't have any control over their code anyway. So there's a lot of defense that goes on when we had to design the system with a lot of defense in mind to make sure that just the fact that you forgot a semicolon in your code doesn't break your system.
 
Jonathan_Hall:
Mm-hmm.
 
Ran_Aroussi:
And that there's this communication. So that was kind of the biggest challenge to make sure that can cater to anyone's code, essentially.
 
Jonathan_Hall:
Let's talk about how you execute that code and keep it safe. What kind of sandbox environment do you have? Or do you? Or is it just Docker? Or is it more involved in that?
 
Ran_Aroussi:
So what we do, we have the first thing that we do is in terms of security and IP, there's a lot of sensitivity in this area. So
 
Jonathan_Hall:
Mm-hmm.
 
Ran_Aroussi:
what we're doing is several folds. One is our database is completely encrypted at rest and anonymized. So even if I'm somehow get access to the database, table or trade belongs to which strategy and
 
Jonathan_Hall:
Mm-hmm.
 
Ran_Aroussi:
to which user. So there's some sort of a key system that we've created to make it extremely hard for you to kind of reverse engineer a strategy. So that's the first thing. Second thing is that the drives themselves where we keep our Git You can deploy your strategy either locally or on our cloud on a technical level. We really don't care It works exactly the same thing only if you host it on on our cloud that we need to Create a VM for you other than that. It works exactly the same So we create a Docker image with your files there and put you with your own dedicated resources that aren't shared With other tenants on the cluster you mess things up for yourself. You have no access to other containers on the platform. You don't have the ability to take a server down just because you can upload a virus and it's still contained within your application. I don't know why you would do that, but you're not going to affect our servers
 
Jonathan_Hall:
Uh-huh.
 
Ran_Aroussi:
using that type of strategy. So that's what we've done of the isolation. It's not like we're running a bunch of scripts. Everyone gets their own built-in image and it's compiled. The runtime itself is compiled. We're just kind of reading your code when we're running it.
 
Jonathan_Hall:
They're cool. uh i don't know what what would you like me to ask you about um we'll edit this part out while we're discussing here but uh I mean, I could ask about AI, I could ask about WebAssembly, I could ask about all the buzzwords.
 
Ran_Aroussi:
Let's go with Buzzwords, let's see what I think.
 
Jonathan_Hall:
Okay, all right. So, I think these days when you hear about trading, everybody's thinking of cryptocurrency and NFTs, it's
 
Ran_Aroussi:
Yep.
 
Jonathan_Hall:
kind of a buzzword.
 
Ran_Aroussi:
Yeah.
 
Jonathan_Hall:
Do you trade those or are you really focused on the stock exchange? Then I'll ask more questions about that.
 
Ran_Aroussi:
I don't trade crypto.
 
Jonathan_Hall:
Okay.
 
Ran_Aroussi:
It's not because I believe, I'm a believer or non-believer. My approach to crypto is I need to have, I'm treating it as like an idiot insurance. So I have a little bit of crypto, just in case it will go to the moon.
 
Jonathan_Hall:
Mm-hmm.
 
Ran_Aroussi:
At some point, I don't wanna be one of those guys that says, I missed it, because I've already missed selling, I sold the crypto bitcoin when it was $11 and
 
Jonathan_Hall:
Ha ha ha
 
Ran_Aroussi:
I
 
Jonathan_Hall:
ha.
 
Ran_Aroussi:
purchased it again at $6,000 or something. So, I don't want to have that experience when if and when it's a million.
 
Jonathan_Hall:
Yeah.
 
Ran_Aroussi:
So I bought in crypto and money that I can afford to lose and I'm not trading it. So that's
 
Jonathan_Hall:
Okay.
 
Ran_Aroussi:
my approach to crypto. No, I like cash.
 
Jonathan_Hall:
Cash is
 
Ran_Aroussi:
I
 
Jonathan_Hall:
king.
 
Ran_Aroussi:
must prefer that.
 
Jonathan_Hall:
And does your platform integrate with crypto
 
Ran_Aroussi:
BIRDY!
 
Jonathan_Hall:
exchanges?
 
Ran_Aroussi:
One second, let me
 
Jonathan_Hall:
Yeah.
 
Ran_Aroussi:
just search the kids. Sorry about that. That's
 
Jonathan_Hall:
That's all right.
 
Ran_Aroussi:
for your editor to cut. Sure.
 
Jonathan_Hall:
Yeah. Yeah, so the question, I'll just repeat the question for the editor. So does your platform integrate with crypto exchanges at all or is
 
Ran_Aroussi:
Yeah.
 
Jonathan_Hall:
it? Yeah.
 
Ran_Aroussi:
So our platform currently supports trading US equities, Forex, crypto, and in a matter of weeks, futures, US futures
 
Jonathan_Hall:
Okay.
 
Ran_Aroussi:
on about 30 different brokers.
 
Jonathan_Hall:
Okay.
 
Ran_Aroussi:
So we're completely agnostic in terms of, again, it's all you do you you want to trade with that broker? Fine. You want to use that language? Fine. You want to program structure code in that way? That's fine. requirement that we have is that your main strategy will start with a function called strategy. That's
 
Jonathan_Hall:
Okay.
 
Ran_Aroussi:
other than that because that's the function that we're calling. Other than that you know do whatever you want.
 
Jonathan_Hall:
Do whatever you want. Let's also talk about the other big buzzword these days, AI. I could see a lot of room for people using AI for trading strategies.
 
Ran_Aroussi:
Mm-hmm.
 
Jonathan_Hall:
Do you see that happening? And if so, to what extent does your platform integrate with that? Or is that really up to the consumer of your...
 
Ran_Aroussi:
Okay, so I'll start from the last question. So it's completely
 
Jonathan_Hall:
Mm-hmm.
 
Ran_Aroussi:
up to the consumer. We have research platforms that you can spin up with JupyterLab and VS Code, and you can spin them up with GPUs if you want to. So we allow you for all that research and development and training your models, you can do that on our platform and then take your model and actually use it inside your training strategy. don't offer any built-in AI tools. We have a pet project that we're currently working on which is like a Chagy Pt clone for our documentation that will kind of guide you along what you need to do when you first start out with the platform. But other than that, no, we don't have any AI capabilities built in. I'm not saying that there aren't going to be any because we are working on marketplace where anyone can create their own plugin or application that you can use within your strategy. So that might very well be like get an AI based sentiment or whatever it is that.
 
Jonathan_Hall:
Mm-hmm.
 
Ran_Aroussi:
But we as a platform, we focus on giving you the tools that are more on the DevOps side
 
Jonathan_Hall:
Mm-hmm.
 
Ran_Aroussi:
and the platform side rather than the software.
 
Jonathan_Hall:
Let's talk a little bit more about that. I'm curious what the, let's say that the, the, the deployment pipeline would look like for one of your customers. Uh,
 
Ran_Aroussi:
Mm-hmm.
 
Jonathan_Hall:
they've written some Python code or whatever language. What does it look like? I'm sure they have their GitHub. I'm assuming.
 
Ran_Aroussi:
Yeah.
 
Jonathan_Hall:
How does it get from there into per into your cloud or local? However, they're doing that. What does that look like? What kind of tools do you have there?
 
Ran_Aroussi:
So let's, the faster route would be for them to develop locally and then they save the build time and deploy time every time they wanna test another line of code. So you just download our Docker image to your computer, you launch it, you go to localhost 3000, I think, whatever it is,
 
Jonathan_Hall:
Mm-hmm.
 
Ran_Aroussi:
and you get some sort of a UI interface where essentially it says, okay, currently on the drive, what language are you using, so we'll know which runtime to use, and then you program locally every time you have an idea, you run it, and you see the results of a strategy. You essentially run your backtesting locally. And backtesting essentially, it's a what-if scenario. So you're running your strategy based on historical data to see how much money you would have made or lost based on what happened previously. So you just develop your code the same way you program any software. It's a Git repo, whatever it is. Once you're happy with the results, all you really have to do is using our command line interface. If you prefer that, it's just tctl strategy deploy and point to your code and we'll take care of it for you. Another option is to go to the web application and just drag your repo there. and yeah, we'll upload it. You'll see everything in the IDE, which essentially it's embedded the VS code on our website.
 
Jonathan_Hall:
Mm-hmm.
 
Ran_Aroussi:
And you click a button, deploy, that's it. It's really, really simple. That's actually one of the compliments slash rejections that we're getting is that a lot of the conversation goes along the lines of, oh, you just click here And
 
Jonathan_Hall:
you
 
Ran_Aroussi:
are you sure? Really? I'm not. So it sounds sometimes a bit too simple.
 
Jonathan_Hall:
Mm-hmm.
 
Ran_Aroussi:
But once people get the hang of it that hey, you know, there's an app for that or yes, you can do that too or they're really excited about it.
 
Jonathan_Hall:
That's really cool. I had a question I forgot what it was now. maybe it'll come back and if it doesn't, I hope it wasn't important. On the back end then, how do you, let's talk about that development process. How big is your development team and your SRE team or whatever you have there? How big is that technical team? And what does that look like?
 
Ran_Aroussi:
It fluctuates. The core team is three people.
 
Jonathan_Hall:
Mm-hmm.
 
Ran_Aroussi:
The overall development team is 12.
 
Jonathan_Hall:
Okay.
 
Ran_Aroussi:
So there's a component that we use in all of our microservices, which is a component called kernel. And very few people have access to that, because that's where we're doing all day the encryption of people's IPs. And
 
Jonathan_Hall:
Sure.
 
Ran_Aroussi:
yeah, so that's the limited access.
 
Jonathan_Hall:
Mm-hmm.
 
Ran_Aroussi:
But yeah, most of the platform, we're using Node.js and Python
 
Jonathan_Hall:
Okay.
 
Ran_Aroussi:
with some components written in Go.
 
Jonathan_Hall:
OK.
 
Ran_Aroussi:
So yeah, that's how the platform works. In terms of data stores, we're using Redis, we're using Postgres, and we're using Clickhouse based on what we need to save. And we're actually, we're also using SQLite for when you're doing local backtesting. So
 
Jonathan_Hall:
Oh, sure. Yeah.
 
Ran_Aroussi:
it's a runtime level SQLite for local development.
 
Jonathan_Hall:
Mm-hmm.
 
Ran_Aroussi:
So yeah, we're kind of all over the place trying to find the best tool for that job.
 
Jonathan_Hall:
Mm-hmm.
 
Ran_Aroussi:
Yeah, we've, for example, one of the components that we have is our API parser. So we have a bridge that essentially translates in real time our API to the broker's API and vice versa. So we'll keep on that unified information. And this needs to be fast. So this is also is also written in a compiled language and make sure that it runs faster.
 
Jonathan_Hall:
Cool. And how frequently is the platform being updated? Are you constantly adding new features or is it pretty stable at this stage?
 
Ran_Aroussi:
Would you say that the core is being updated? No, I wouldn't say that the core is being updated as much as new features and tweaks and stuff
 
Jonathan_Hall:
Mm-hmm.
 
Ran_Aroussi:
are being added. There is going to be a major version coming out. As I mentioned, we've kind of redeveloped the entire platform from scratch over the past 10 months. kind of open projects that will allow us to integrate new services like the marketplace that we're planning on launching and risk management and auditing services that you'll be able to kind of plug into your strategy.
 
Jonathan_Hall:
What kind of regulations do you have to deal with, and how does that affect your software development, your deployment process, and all of that?
 
Ran_Aroussi:
In terms of regulations, since we're not dealing with the, we don't have any hole over customers funds, we don't have to go through any regulations
 
Jonathan_Hall:
Okay.
 
Ran_Aroussi:
because you trade directly through your broker and your
 
Jonathan_Hall:
Mm-hmm.
 
Ran_Aroussi:
money is with your broker. We don't touch your money ever. That's why, for example, I gave an example earlier that we're going to ping you with the stocks that match your criteria. for you. But
 
Jonathan_Hall:
Mm-hmm.
 
Ran_Aroussi:
we've decided that this is not something that we're going to do. If you want to buy a stock, you have to issue that API call
 
Jonathan_Hall:
Mm-hmm.
 
Ran_Aroussi:
to explicitly say that you want to buy a specific stock. So that was more of an admin decision than a technical decision.
 
Jonathan_Hall:
Mm-hmm.
 
Ran_Aroussi:
Just so we can get away, I have, for lack of a better term with having to go through any regulations. we're on the regulation side, we're merely a software, a tool that you control to trade funds that are kept in your broker. So we're just kind of a middleman tool. In terms of security, we're currently going through an ISOC and SOC 2.
 
Jonathan_Hall:
Mm-hmm.
 
Ran_Aroussi:
Internally we call it an ISOC,
 
Jonathan_Hall:
the
 
Ran_Aroussi:
but yeah, we're going through that. Hopefully we'll have that in about several months.
 
Jonathan_Hall:
Okay, nice. So that helps to mitigate a lot of the risk on your shoulders, but your customers still depend on you to be up and reliable.
 
Ran_Aroussi:
Yes.
 
Jonathan_Hall:
How do you address that? How do you? Yeah, how do you mitigate the potential for downtime or other failures?
 
Ran_Aroussi:
Yeah, lots of redundancies. So
 
Jonathan_Hall:
Mm-hmm.
 
Ran_Aroussi:
especially with the new version that we're building, we're going to be deployed over five different data centers
 
Jonathan_Hall:
Wow.
 
Ran_Aroussi:
to make sure that if one goes down, that we're still up and they're all going to be synced in real time to make sure that if something's down, then you wouldn't notice it. And
 
Jonathan_Hall:
Mm-hmm.
 
Ran_Aroussi:
we're going to introduce an SLA and all that good stuff. That being said, there's another risk that we have actually no control over is what happens if your broker is down or
 
Jonathan_Hall:
Oh
 
Ran_Aroussi:
if
 
Jonathan_Hall:
sure.
 
Ran_Aroussi:
your broker's API is down. So what we've done is we've created like an uptime, like a status page thing that also tells you which broker you're using and when you're in, sorry, which broker is down. And when, and we're only going to show you the brokers that you're using. So if you
 
Jonathan_Hall:
Okay.
 
Ran_Aroussi:
don't have, if I know if FXCM is down for example if you don't create an FXCM
 
Jonathan_Hall:
Mm-hmm.
 
Ran_Aroussi:
so based on that the you know the red to green light is gonna turn on for you but yeah that's sometimes that that happens and actually more than I thought they were it does yeah
 
Jonathan_Hall:
I can imagine, especially when you're dealing with so many different brokers, you know, the odds of one of them going down in any
 
Ran_Aroussi:
Yep.
 
Jonathan_Hall:
certain timeframe is probably pretty high, even if individually they're they're fairly resilient.
 
Ran_Aroussi:
Exactly. Exactly. And there's also mechanisms like if we're sending an order to your broker, obviously based on instruction from your strategy, and we can get through, or there's an error from your broker, margin, lack of funds or whatever it is, we're going to do two things. So if it's low, lower level kind of error message, we're going to send it back to your strategy to handle it. But if it's like a lack of fund or anything that could, that doesn't let you exit a trade, frightening than not getting into a trade
 
Jonathan_Hall:
Mm-hmm.
 
Ran_Aroussi:
then you're going to get a text that will allow you to hopefully get into the broker's own application and kind of do a manual
 
Jonathan_Hall:
Mm-hmm.
 
Ran_Aroussi:
trade if something happens.
 
Jonathan_Hall:
So sort of a pager duty for your trading
 
Ran_Aroussi:
Yeah,
 
Jonathan_Hall:
platform.
 
Ran_Aroussi:
yeah, you
 
Jonathan_Hall:
This
 
Ran_Aroussi:
have
 
Jonathan_Hall:
trade
 
Ran_Aroussi:
to, I
 
Jonathan_Hall:
failed.
 
Ran_Aroussi:
mean, yeah.
 
Jonathan_Hall:
Yeah. Nice. What else should we talk about, or should I ask you about?
 
Ran_Aroussi:
Umm... I don't know. Actually, one of my pet peeves is that, people give a lot of crap to PHP.
 
Jonathan_Hall:
Yeah.
 
Ran_Aroussi:
It really bothers me, man. I don't know why. It
 
Jonathan_Hall:
The crap
 
Ran_Aroussi:
really
 
Jonathan_Hall:
or
 
Ran_Aroussi:
bothers
 
Jonathan_Hall:
PHP
 
Ran_Aroussi:
me.
 
Jonathan_Hall:
bothers you.
 
Ran_Aroussi:
No, the, the,
 
Jonathan_Hall:
The bad reputation.
 
Ran_Aroussi:
yeah, the crap that people give it. I mean, for, for what it was made of, I still think it does the best job out there. I don't know,
 
Jonathan_Hall:
I've been
 
Ran_Aroussi:
it's
 
Jonathan_Hall:
hacking
 
Ran_Aroussi:
really
 
Jonathan_Hall:
on
 
Ran_Aroussi:
just
 
Jonathan_Hall:
PHP.
 
Ran_Aroussi:
a pet peeve.
 
Jonathan_Hall:
I've been helping a client with some PHP work lately, although I'm not enjoying it, but the main reason is because it's an ancient PHP app that was written in like 2003
 
Ran_Aroussi:
Mm-hmm.
 
Jonathan_Hall:
and hasn't really been updated. So, and it had years of manual version control. And what I mean by that is rather
 
Ran_Aroussi:
Wow
 
Jonathan_Hall:
than using Git, they just like rename the file and put the date stamp at the end and then keep going.
 
Ran_Aroussi:
Oh wow.
 
Jonathan_Hall:
There were literally hundreds of files like that in this repository.
 
Ran_Aroussi:
Who works like that?
 
Jonathan_Hall:
I don't know who it was, but they aren't working on the project anymore. My real complaint about this isn't PHP per se, it's just the bad habits of whoever was controlling
 
Ran_Aroussi:
Yeah,
 
Jonathan_Hall:
the project in
 
Ran_Aroussi:
yeah.
 
Jonathan_Hall:
the past.
 
Ran_Aroussi:
I mean, it's not elegant, but I, you know, I will argue with anyone who says for what it was built for, it's the best
 
Jonathan_Hall:
Well,
 
Ran_Aroussi:
one
 
Jonathan_Hall:
you
 
Ran_Aroussi:
out
 
Jonathan_Hall:
know,
 
Ran_Aroussi:
there.
 
Jonathan_Hall:
I mean, I've used a lot of templating languages and, you know, PHP is a nice... I mean, if you want to consider it like a templating language on steroids, I think that fits that
 
Ran_Aroussi:
Oh
 
Jonathan_Hall:
niche
 
Ran_Aroussi:
yeah.
 
Jonathan_Hall:
very well.
 
Ran_Aroussi:
Yeah.
 
Jonathan_Hall:
Where it doesn't make sense to me is, you know, building a large application. But if you want to build your templating part in PHP, why not?
 
Ran_Aroussi:
Exactly,
 
Jonathan_Hall:
That's great.
 
Ran_Aroussi:
exactly, exactly. I wouldn't build an entire application with it, that's right, but to do some front end stuff and some
 
Jonathan_Hall:
Yeah.
 
Ran_Aroussi:
quick and dirty stuff, yeah.
 
Jonathan_Hall:
Definitely. Cool, I wasn't expecting a
 
Ran_Aroussi:
You
 
Jonathan_Hall:
rant
 
Ran_Aroussi:
can
 
Jonathan_Hall:
about
 
Ran_Aroussi:
cut
 
Jonathan_Hall:
PHP
 
Ran_Aroussi:
that part
 
Jonathan_Hall:
today, but
 
Ran_Aroussi:
out
 
Jonathan_Hall:
that's nice.
 
Ran_Aroussi:
if
 
Jonathan_Hall:
Ha
 
Ran_Aroussi:
you want.
 
Jonathan_Hall:
ha. Well, Ron, how can people reach out if they're interested in either using your platform or just interested in connecting with you on social media, I suppose, what's the best way to get ahold of you?
 
Ran_Aroussi:
Yeah, so I'm on obviously TraderLogix.com. You can hop in there or you can ping me on Twitter. I will see it's like my surname
 
Jonathan_Hall:
Mm-hmm.
 
Ran_Aroussi:
both on Twitter, LinkedIn, GitHub. So just find me there.
 
Jonathan_Hall:
Awesome. We'll try to put links to all that in the show notes too to make it easy to find you. Before we wrap this up, we like to do picks on this show. Have you thought of anything that you would like to recommend to our audience?
 
Ran_Aroussi:
Ah, I don't have anything clever to say. I'm reading a book, I can recommend it because I'm enjoying it very much. It's called
 
Jonathan_Hall:
Perfect.
 
Ran_Aroussi:
billions, I'm sorry, it's
 
Jonathan_Hall:
Billions.
 
Ran_Aroussi:
called trillions. And it's about the formation of the entire ETF markets and the index funds and all that history. So it's very interesting. I'm almost done. you've done in the next day or two. It's very interesting so I can definitely recommend that. Trillions.
 
Jonathan_Hall:
Awesome. By Robin Wigglesworth, it looks like. That's an awesome name.
 
Ran_Aroussi:
Yeah, yeah.
 
Jonathan_Hall:
Great. Well, my pick is going to be even less serious, I think. My wife and I have been watching Star Trek Picard lately, and there's just a few more episodes left in the season. We're really enjoying it. We just had dinner with some friends over the weekend, and they said this is their favorite season of Picard. It feels the most like Star Trek because it has so
 
Ran_Aroussi:
Where
 
Jonathan_Hall:
many
 
Ran_Aroussi:
is
 
Jonathan_Hall:
return
 
Ran_Aroussi:
it?
 
Jonathan_Hall:
characters
 
Ran_Aroussi:
I
 
Jonathan_Hall:
So.
 
Ran_Aroussi:
have to say this, I was a huge fan of Next Generation, so
 
Jonathan_Hall:
Yeah.
 
Ran_Aroussi:
this is definitely something I need to start watching.
 
Jonathan_Hall:
Picard obviously is there. Riker's a recurring character this season. Troy shows up a few times. Geordi, even Data, sort of. I won't give it too many spoilers, but Data's
 
Ran_Aroussi:
Alright.
 
Jonathan_Hall:
died twice now in canon, and he somehow comes back again. But anyway, I'll leave it at that. Star Trek Picard is my pick for today.
 
Ran_Aroussi:
Good pick.
 
Jonathan_Hall:
Great. Well, thanks so much for coming on. It's been a fascinating chat. It's fun to dig into the technology behind a platform like yours.
 
Ran_Aroussi:
Thank you very much for having me, I really enjoyed talking about it and chatting with you.
 
Jonathan_Hall:
Great. Well, until next time, everybody, thanks for listening. We will see you next week.
Album Art
Tradologics: Cloud Platform for Trading with Ran Aroussi - DevOps 161
0:00
38:33
Playback Speed: