← Back
Blog
//////////////////////////////
////////////////

Finding a picture in an image without marking it up?

Yaroslav Murzaev
Data Scientist
Sep 8

Finding a picture in an image without marking it up?

We often see pictures in images: comics, for example, combine several pictures into one. And if you have an entertainment app where people post memes, like in our iFunny, you’re going to run into that all the time. Neural networks are already capable of finding animals, people, or other objects, but what if we need to find but another image in the image? Let’s take a closer look at our algorithm so that you can test it with a notebook in Google Colaboratory and even implement it in your project.

Onboarding a Senior QA: week-by-week plan

Daria Kudryavtseva
QA Lead
Aug 25

Over the past 4 years, we’ve developed an adaptation process enjoyed even by ultra-experienced newcomers. Today, we’ll share its main stages and a basic checklist. You can easily adjust them to fit engineers of any level that you hire.

Features of Practical Use of Various Algorithms of the Multi-Armed Bandit

FunCorp
Aug 19

Most articles about the algorithms of the multi-armed bandit are too academic. They are filled with formulas and seem to imply that we have an immutable set of handles for pulling and n→∞ attempts. I will try to talk about these algorithms from the point of view of an ordinary developer, taking into account the real conditions in which our iFunny application for recommending memes works.

Stopping NSZombie Invasion (Code Included)

FunCorp
Aug 10

We share the zombie object detection mechanism we made for the iFunny app, and present tips for those who also want to get rid of this issue. So you turn on your laptop, open Crashlytics, and voila: EXC_BAD_ACCESS objc_release… What now?

Working with Large Images in Android

FunCorp
Aug 2

Imagine how much memory space a 10k-pixel comic book takes up. And now imagine that you can’t compress it because if you did, it would lose too much quality and become unreadable. Curious how we at FUNCORP deal with this? Then read on!

Ten Mistakes to Avoid When Creating a Recommendation System

Aleksandr Dzhumurat
Lead Data Scientist
Jul 27

We’ve been long working on improving the user experience in UGC products with machine learning. Here are our ten key lessons of implementing recommendation systems in business to build a really good product.

What iOS Developers Should Be Prepared For When Integrating In-App Advertising in 2022

Evgeniy Zavolozhanskiy
iOS Developer
Jul 20

The iOS team of iFunny has gone from a completely ad-free model to using a variety of ad networks and formats in their popular entertainment app. In this article, we will discuss some of the less-apparent nuances of working with advertising SDKs that can affect the user experience and performance of your product and share the code that will help you fix them.

Deep Learning with a Small Training Batch (or Lack Thereof)

Yaroslav Murzaev
Data Scientist
Jul 7

Overview of self-supervised methods.

While the demand for neural networks is growing, most state-of-the-art approaches to adapt them to business needs often lag, hindered by insufficient or absent markup. Supervised learning is hardly feasible in this situation, and standard unsupervised methods won’t work for most of your tasks. This is where self-supervised plans come to the rescue. Depending on the task, they require next to no markup or none at all.

How Do You Grow a Senior QA on Your Team?

Alexey Anisimov
Head of QA
Jun 20

Practical Guide to Create a Two-Layered Recommendation System

Gleb Abroskin
ML-engineer
Jun 8

A developer’s perspective (MLOps inside)

At iFunny, we are trying to compose the best possible feed of memes and funny videos. To rate our job, people use smile/dislike buttons and comments. Some of them even post memes about our efforts.

Putting a two-layered recommendation system into production. Bonus: we reveal the dataset!

Aleksandr Dzhumurat
Lead Data Scientist
May 20

Recommendation systems will always stay relevant — users want to see personalized content, the best of the catalog (in the case of our iFunny app — trending memes and jokes). Our team is testing dozens of hypotheses on how a smart feed can improve user experience. This article will tell you how we implemented the second-ranking level of the model above the collaborative one: what difficulties we encountered, and how they affected the metrics.

11 Traits of a Senior QA Engineer

Alexey Anisimov
Head of QA
May 5

Founded on years of work experience in testing

There is a tremendous variety of QA Engineer vacancies, ranging from junior to lead tester and even to principal QA Engineer. We’re often asked what qualities a senior-level tester should have compared to junior or middle-level ones. Let’s try to answer this.

Detecting image duplicates

Yaroslav Murzaev
Data Scientist
Apr 20

The articles that will come in handy

Approximately 100,000 units of varying content come through our iFunny app daily, and every single one of them needs to be checked. We have already dealt with forbidden imagery by creating a classifier that automatically bans it. Next up — old memes, reuploads, and straight-up doubles that users try to sneak past the moderation.

To get rid of those, we have introduced a duplicate detection system. It had already gone through several iterations, but at some point, we realized it was impossible to put version-to-version improvements in proper perspective. And so we ventured into the Net, searching for books and articles that would allow us to examine currently existing approaches to duplicate detection and — most importantly — to their quality assessment. You can see what we’ve found below.

Do you want some Prebid?

Vitaly Zagorskiy, Anastasiya Razheva
Apr 5

FUNCORP’s services and advertising infrastructure have recently undergone significant changes. In addition to the Prebid Mobile, we now also support and develop the Prebid Server to work with our apps.

We chose Prebid because we’ve been using its Software Development Kit for a long time and have enough experience and competence in working with it. This expertise allows us to improve and develop the service without compromising its stability. As a result, Prebid has become one of the critical services within our infrastructure.

Decentralized Webpack Configuration

Ekaterina Yarkeeva
Senior Engineer
Mar 21

It is pretty standard that as a project grows, so does the complexity of its build. Too many different technologies, third-party components, libraries, lints, server-side rendering, and project-specific nuances — as a result of all this, the configuration of a build may involve more than a thousand strings.

Image clustering using CLIP neural network

Oleg Sokolov
Senior Python Developer
Feb 25

This article explains how you can automatically divide a dataset of images into clusters classified by qualitative contextual feature, thanks to embeddings from the much talked about neural network called CLIP created by Elon Musk’s company. I will give you an example using the content from our iFunny app.

The Easy Way to Remove Private Data

Andrey Gromov
Backend Developer
Jan 20

The right to be forgotten by the User’s request

There are different ways to remove a user’s personal information at the user’s request to make a product compliant with the CCPA or GDPR. The most basic method is to handle every request received by mail manually. The important thing is to make sure the process is as straightforward as it can be and clear to the user. So a little automation is not such a bad idea.

The 2021 Year in Review in Tech

Denis Litvinov
CIO at FunCorp
Dec 21

In 2020, for the first time since World War II, the world was faced with an epic, uncontrollable crisis. The overwhelming majority of the world’s commercial industries, including the tech industry, have had to deal with the negative impact of the pandemic.

App Tracking Transparency: What has changed in the wake of Apple’s new privacy policy

Evgeniy Zavolozhanskiy
iOS Developer
Dec 7

Apple set the entire mobile advertising market on edge last year when it announced the pending enactment of its new privacy policy for the App Store. From now on, app developers are required to seek users’ permission to track their devices for advertisers (yes, that’s the controversial IDFA). The new deal, delayed several times, was finally enacted at the beginning of this year.

How to Classify Data Without Markup

Yaroslav Murzaev
Data Scientist
Oct 21

iFunny users upload about 1,000,000 pieces of content to the app every day, including not only memes but also racism, violence, pornography, and other inappropriate material.

Previously, we checked all this manually, but now we are developing automatic moderation based on convolutional neural networks. We have already trained the system to divide content into three classes: it recognizes what can be included in user feeds, what needs to be removed, and what is hidden from the shared feed. To make the algorithms more accurate, we decided to add a specification for removing content that did not have such markup before.

Testing Your Implementation on Ad Networks

Daria Kudryavtseva
QA Mobile Team Lead
Apr 20

Testing ad integrations is quite a tedious process. Since we work with third-party SDKs that can hardly be controlled, it can be challenging to automate the testing process. Nevertheless, to reduce testing time, we have developed and implemented a debug panel, which we will discuss in this article.

More information about us, as well as photos and videos in our public pages:
© Copyright 2022, FUNCORP

We plan to continue our growth and development by entering new markets and finding new business niches. Take a look at open positions. Perhaps there is one that is right for you!

If you know a passionate Software Developer who's looking for job opportunities, e-mail us at job@fun.co. In case of successful recommendation you will get a $3000 reference fee.