In this article, we’re going to present the full process we went through when we decided to change our main product color palette to make it more accessible and usable. We will list the reasons that got us into this process, the defined goals, the preparations both on the front-end side and the user interface side, and the process itself. …
RxJS is by far the hottest library for reactive programming in the web for the past few years. It is built on fascinating concepts and paradigms which are worth digging into that aren’t in scope of this post (what is “reactive”, “declarative”, functional programming concepts and more..).
Our team heavily uses RxJs on our large scale application and on libraries we write, and it definitely makes our code beautiful and easier to read. In this post, we’ll share with you some tips that we, the Frontend group at SentinelOne, think are really practical.
Disclaimer: Some of the code examples are…
In the following post, we’ll review the Dependency Injection as a technique which meant to help us produce a more loosely coupled code which is highly important when working on large-scale projects.
Loosely coupled code? Yep, In a multi-paradigm language, a practical system may contain Classes and Interfaces, putting Object Oriented approach and inheritance aside, a class that points to another concrete class becomes coupled to it and thus harder to refactor/replace implementations.
DI most simple form (that you probably know) is in passing the dependency into the consumer constructor as follows:
At SentinelOne, we work with a lot of sparse data. Our static engine uses many features about files on the client’s computer. We scan those files and extract a numeric array to feed into our models. That data tends to be sparse. Luckily,
scipy have many great features for working with sparse data, but sometimes, we need a little extra.
D3 is one of the most popular libraries for data visualisation, and learning its modules (APIs) is extremely powerful when you aim to create beautiful custom infographics.
D3 stands for Data Driven Development as the name applies, by using it we visually express our most important thing: data.
We do so by manipulating DOM HTML/SVG group of elements, but we can also select just one Canvas element and draw performant graphics directly using the Canvas API (This way we’ll prevent browser layout calculations that could get expensive if we have hundreds or…
At SentinelOne, we provide full visibility into managed endpoint data. Over time, the amount of the events became huge, handling around 200 billion events a day. While collecting data and storing it is easy enough, querying the data quickly and efficiently is the main challenge.
In this blog, we will share how we overcame this challenge and achieved the ability to quickly query tremendous amounts of data.
Our event stream results in a lot of small files, which are written to S3 and HDFS. We store our partitions in Hive Metastore and query it with Presto. …