ElasticSearch Out of the Box Use Cases

Elasticsearch is a distributed, RESTful search and analytics engine capable of addressing a growing number of use cases. As the heart of the Elastic Stack (ELK), it centrally stores your data so you can discover the expected and uncover the unexpected. In this post, we’re investigating some features and out of the box use cases for ElasticSearch in the field of NLP. Search Enhancement Features ElasticSearch provides us with a sort of cool stuff to enhance our end-user search experience. You Complete Me Effective search is not just about returning relevant results when a user types in a search phrase, … Continue reading ElasticSearch Out of the Box Use Cases

SNS & Async Lambda VS. API Gateway as Lambda Triggers

AWS Lambda integrates with other AWS services to invoke functions. You can configure triggers to invoke a function in response to resource lifecycle events, respond to incoming HTTP requests, consume events from a queue, or run on a schedule, and so on. In this post, we’re discussing two event sources of Lambda: AWS SNS events. Asynchronously calls by other Lambda. And comparing them to the APIGW (API Gateway). SNS (Simple Notifications Service) When a message is published to an SNS topic that has a Lambda function subscribed to it, the Lambda function is invoked with the payload of the published … Continue reading SNS & Async Lambda VS. API Gateway as Lambda Triggers

User Profiling Using AWS ElasticSearch – RomCom use case.

Personal differences and preferences marks a very important part of our identity, and optimizing the user experiences based on them can be a great tool in improving users engagement. In our previous post to tackled the issue of personalized recommendations and how can ElasticSearch make the process extreemly simpler. However in order to build a robust personal recomendation system it is paramount to have an idea of each user. Who are they and what do they like. This is commonly refered to as a user profile. In this post we will present a road map to enabling user profiling with … Continue reading User Profiling Using AWS ElasticSearch – RomCom use case.

Visualization Platforms for Data Search — Amplitude VS Kibana

In the world of Big Data, data visualization tools and technologies are essential to analyze massive amounts of information and make data-driven decisions. Visualization is an increasingly key tool to make sense of the trillions of rows of data generated every day. Our eyes are drawn to colors and patterns. We can quickly identify red from blue, square from circle. Our culture is visual, including everything from art and advertisements to TV and movies. Data visualization is another form of visual art that grabs our interest and keeps our eyes on the message. Hence, starting from the data value in … Continue reading Visualization Platforms for Data Search — Amplitude VS Kibana

RomCom — The Personalized Recommendation System For Almeta

The nice thing about working in Almeta, is that we are our own users. As a platform for the best Arabic content on the web, we want to deliver the best content for each user. For us. For each Arabic-speaking reader. As usual, many company think of “personalization” as the way to go to improve engagement, reach, or even acquisition. Just let the user tell you what he wants, fit a model against his needs, and let him see what he wants to see. Not what he should see. We tend to disagree. Given our own unique thoughts, interests and … Continue reading RomCom — The Personalized Recommendation System For Almeta

Communication/Messaging Tools and Patterns between Microservices

When it is designed, microservice, required to remember that other services will need to integrate with it. There is no general best style of communication that should be used. In practice, we need to find the best solutions for the problem at hand. In this post, we’re discussing different approaches and technologies used in designing the communication between microservices, shading light on the most common communication services provided by AWS, trying to make preferences towards the different patterns and services taking different factors into the consideration. Communication Patterns In this section, let’s introduce you to the two major communication patterns … Continue reading Communication/Messaging Tools and Patterns between Microservices

Git submodules in the python world Why and How

The basic principle that makes many professional tech companies professional is the simple principle of domain engineering. Basically working for a long period of time on a small set of domains with the hope that you will grow your codebase to be more efficient and successful in developing projects from these domains. the main component in this formula is the idea of code reuse. Sooner or later you will have a certain piece of code that you will use constantly across all your projects, if we are talking about NLP these might be your text normalizers your features extractors or … Continue reading Git submodules in the python world Why and How

How to Version Control Your Machine Learning? – A Look into Data Version Control (DVC)

If you have spent time working with Machine Learning, one thing is clear: it’s an iterative process. Machine learning is about rapid experimentation and iteration, each experiment consists of different parts: the data you use, hyperparameters, learning algorithm, architecture, and the optimal combination of all of those Throughout this iterative process, your accuracy on your dataset will vary accordingly, and without keeping track of your experimenting history you won’t be able to learn much. Versioning lets you keep track of all of your experiments and their different components. How to Version Control ML Projects? One of the most popular ways … Continue reading How to Version Control Your Machine Learning? – A Look into Data Version Control (DVC)

AWS Batch Jobs — An Overview

AWS Batch enables you to run batch computing workloads on the AWS Cloud. This service can automatically provision compute resources and optimizes the workload distribution based on the quantity and scale of the workloads. Related Definitions Jobs: A unit of work (such as a shell script, a Linux executable, or a Docker container image) that you submit to AWS Batch. It runs as a containerized application on an Amazon EC2 instance in your computing environment, using parameters that you specify in a job definition. Container images are stored in and pulled from container registries. Job Definitions: specifies how jobs are … Continue reading AWS Batch Jobs — An Overview

AWS Lambda and SQS Payload Limitation

In this post, we’re talking about deploying an AI service that processes the political news articles in Almeta’s database. The service is assumed to be deployed as AWS Lambda function, with the use of AWS SQS to maintain the incoming requests while the function is throttled. An important limit to be considered in such a situation, is the limit that is put on the payload size by both AWS Lambda and AWS SQS. Along this post, we investigate what is this limit for each of the two services and how are we affected by it. AWS SQS There are two … Continue reading AWS Lambda and SQS Payload Limitation

Almeta App — Caricature Tab

Caricature Tab is a new incoming feature planned to be a part of the Almeta News app soon. In its primary version, the feature will provide the user with a stack of in-house designed Caricature images to enjoy browsing. If you’re curious about how we in Almeta manage to handle such new features, then you will discover this in this post. In this post, we’re showing the entire process towards making decisions to answer a bunch of design and deployment related questions: Where to store the images? How to handle new ones? Do we need caching? What to store in … Continue reading Almeta App — Caricature Tab

A Guideline for Writing Research/Tech Blogs

Intro In Almeta you have to write a lot for those research tickets you have in a Sprint. You’ve to read tons of research, academic, and sometimes boring paper. But, when you write your proposal, you don’t have to write like them. As a matter of fact we want to be as close to non-techies as possible when writing our tech blogs. So, you’re an engineer and you love to code. You are a machine learning engineer and you love to read. You’re both and here comes a research/investigation ticket. You read, read, and read some more and now comes … Continue reading A Guideline for Writing Research/Tech Blogs

Our Agile/Scrum Setup in Almeta

Intro We’re currently trying with different style. Between Agile/Scrum and Kanban. This is the latest we’re doing. We’re going to keep this post updated. The Team in Almeta We are a remote, cross functional team. We try to have balance in skill we have. We favor T shape employees. We <3 Valve. Skin in the Game: In a startup you’ve to eat your own food. And you’ve to take extra responsibility for any code you develop. We don’t have researchers and engineers. We have research-engineers. Those who learned to do research, develop ideas, write their code and also bring them … Continue reading Our Agile/Scrum Setup in Almeta