• Feature Engineering: Techniques and Best Practices for Data Scientists

    • Tutorial

    The most important stage in the data science process is feature engineering, which entails turning raw data into useful features that might enhance the performance of machine learning models. It calls for creativity, data-driven thinking, and domain expertise. Data scientists can improve the prediction capability of their models and find hidden patterns in the data by choosing, combining, and inventing relevant features. Handling missing data, scaling features, encoding categorical variables, constructing interaction terms, and other procedures are examples of feature engineering techniques. The best practises involve investigating the data, testing and improving features iteratively, and applying domain knowledge to draw out important information. The accuracy and effectiveness of machine learning models are significantly influenced by effective feature engineering.

    Read more
  • Technical Game Design. Configs, balance and content in the example of PC strategy

    • Case
    • Translation

    One of the common tasks that both beginners and experienced game designers face is describing a large amount of content to pass its parameters to the engine. This is not an easy task, given that it is very difficult to find materials on the technical aspects of game design. Well, let’s figure out how to transfer data to the engine.

    Read more
  • Push notifications: why we need them, how to do them. How to write push notifications that won't piss you off

    Push notifications are similar to promoters. You're peacefully walking down the street, and suddenly promoters approach you, urging you to take their flyers. You take them, but you don't read them and throw them into the nearest trash can.

    The same goes for push notifications. You're reading an article, and suddenly a notification pops up with a promo code for free delivery of products. Then another one arrives, informing you about a giveaway. And then another one, offering a discount on all fruits. Notifications can appear on your screen at any time. If there are too many of them, your reaction is either to ignore them or disable them.

    In this article, we will talk about how to write push notifications that people will click on and show you how to build a push notification strategy. At the end, we will provide a template for a push notification strategy.

    Push Notifications - What is it?

    A push notification is a pop-up message on a smartphone screen. To send one, you need to use a delivery service. You can send a notification instantly, schedule it for a specific time, or set up a trigger-based delivery - a chain of notifications that will be triggered by specific user actions.

    Triggered push notifications are sent after a specific action is taken. For example, if a person starts adding items to their cart but doesn't complete the purchase, you can send them a notification urging them to complete the transaction after a certain period of time.

    Notifications are sent to users who fall into specific segments for targeting. Segments are formed based on specific events. For example, the event "6 hours ago, a product was added to the cart but no purchase was made" will divide users into two segments: those who made a purchase and those who didn't.

    Read more
  • Monitoring CPU/RAM/disk metrics with OpenTelemetry and Uptrace

    • Tutorial

    OpenTeleletry Collector is an open source data collection pipeline that allows you to monitor CPU, RAM, disk, network metrics, and many more.

    Collector itself does not include built-in storage or analysis capabilities, but you can export the data to Uptrace and ClickHouse, using them as a replacement for Grafana and Prometheus.

    When compared to Prometheus, ClickHouse can offer small on-disk data size and better query performance when analyzing millions of timeseries.

    Read more
  • Concept Art in Game Design: An Introduction to its Significance and Fundamental Principles

    Let's talk about concept art, one of the main pillars in the digital art world. Concept art is the foundational and fundamental stage of any media industry project, where bold design choices are made and the best one is selected, shaping the overall style of the product. "Concept" refers to abstract ideas and fresh designs, while "art" entails the intentional use of imagination to create objects for immediate contemplation, which can be assessed for their aesthetic appeal in terms of appearance, sound, or even words. The exact origin of the term is not entirely clear, but some attribute its first mention to Walt Disney Feature Animation during the creation of characters for the first feature-length animated film, Snow White and the Seven Dwarfs, in the 1930s. It was during this time that an entirely new profession, later known as "concept artist," began to take form and became highly sought after in the media industry.

    Read more
  • The Power of Email Marketing: Engaging Customers for Business Growth

    • Case


    Email marketing has emerged as a vital tool for businesses to nurture customer relationships and drive growth. In this article, we will explore the immense potential of email marketing through personal experiences and examples from renowned companies. From personalization to segmentation, retargeting, and building anticipation, discover how these strategies can elevate your email campaigns and deliver remarkable results.

    The Art of Personalization in Email Marketing:
    Personalization is a key aspect of successful email marketing. Take, for example, Amazon's tailored recommendations and exclusive offers. By delivering personalized content that matches customers' preferences and interests, Amazon creates a sense of exclusivity and fosters customer loyalty. In my own experience, implementing personalization in email campaigns resulted in increased open rates, click-through rates, and conversions. It's clear that customers appreciate the effort put into crafting messages specifically for them.

    Read more
  • How Java works with fonts

    Hello!

    In this article, I will try to briefly describe how Java Virtual Machine works with fonts. Once I needed to change the font used by the JVM and, surprisingly, found only pieces of legacy information about this. I spent a little time investigating the problem and now want to share this information with anybody who could find it useful. Feel free to leave any comments :)

    Read more
  • Business Process Management Part 2. How to

    • Tutorial

    This article is written in a how-to style. It is based on my personal experience and opinions, so it may omit some steps that are common in BPM practice but that I have not encountered in my work. The topic is broad, and each section deserves a separate article. Therefore, if you are interested in a specific topic, please comment, and I will prepare a more detailed description.

    Read more
  • How to Create Effective Product Funnels with Event Tracking

    • Tutorial

    Regardless of how mature the product is, its owner will always be curious about how it performs, what the conversion rates are, and what areas for improvement there are. One of the most important tools that product owners should get access to at some point in time is an event tracking system.

    Read more
  • Exploring a possible implementation of non-blocking IO by writing a server on pure syscalls

    • Translation

    How do people usually write a server if they don't really care about performance? A program starts, then starts accepting incoming connections from clients and starts a new thread for each client, which is engaged in servicing this client. If you use framework, like Spring or Flask or Poco there, then it does something like this inside itself - the only difference is the threads can be reused, that is, taken from a certain pool. It's all quite convenient, but not too effective (and Spring is bad). Most likely, your threads serving clients do not live long and most of the time they are waiting either to receive data from the client or to send it to the client - that is, they are waiting for some system calls to return. Creating an OS thread is quite an expensive operation, as is context switching between OS threads. If you want to be able to serve a lot of customers efficiently, you need to come up with something else. For example, callbacks, but they are pretty inconvenient (though there are different opinions on this).

    Another option is to use non-blocking I/O in combination with some kind of implementation of user-space threads (fibers). In this article I will show you how to write all this with your own hands.

    Read more
  • Setting Up an Experiment Environment for Data-Driven Product Development

    As a product owner, it is common to face the question of whether to proceed with option A or option B. Or, which version of the screen should be implemented to achieve better results? Making such decisions can be challenging, especially when you are under tight deadlines with limited resources. Furthermore, such decisions are made based on personal judgment or copying the approach of a competitor, which can lead to suboptimal results.

    The good news is that one can avoid such pitfalls by setting up a simple experiment environment that requires relatively low effort. In this article, we will describe how you can achieve this.

    Read more
  • Machine Learning for price optimization

    • Tutorial
    • Translation

    This is a translated and adopted article I wrote for the Aha'22 (30 May 2022) conference. It describes an approach to a marketplace prices optimisation. Here I've outlined some important definitions and tried to define the scopes and roles of ML, algorithms, and humans in optimal pricing. Although the article covers rather basic things, still, you can find out some new formulas and ideas, because these basics are somewhat "well-known only in a very closed clubs", and besides, the real gem found here is the detailed recipe for ML engineers how to build optimal pricing systems.

    Read more
  • TRIZ: The Problem-Solving Methodology for Product Managers

    • Opinion

    Background

    As a product manager with over a decade of experience, I'm always looking for new ways to enhance my skills and help other product managers advance in their careers. One area that many companies focus on during the job interview process is analytical and creative problem-solving. And as product managers, we encounter these types of challenges on a daily basis. It's important to stay sharp and continuously develop our problem-solving abilities. That's why I made it a habit to practice a logic puzzle every day. But I also wondered if there was a common approach to solving these puzzles. That's when I discovered TRIZ – the Theory of Inventive Problem Solving. In this article, I'll provide an overview of what TRIZ is and how it can be applied in product management. Then, I'll apply TRIZ principles to solve a series of logical puzzles, showcasing the power and effectiveness of this methodology. So whether you're an experienced product manager looking to enhance your skills or someone who enjoys a good brain teaser, read on to discover the power of TRIZ!

    If you find TRIZ to be a useful tool for problem-solving and innovation, there are many resources available to help you delve deeper into the methodology. The TRIZ Journal, for example, offers enough information on TRIZ, including case studies, articles, and other resources. You can also find books and online courses that provide a more in-depth look at TRIZ and how it can be applied in different industries and contexts. So if you're interested in learning more, there are plenty of opportunities to expand your knowledge and apply TRIZ to your work.

    Read more
  • Business process management. Part 1. Why bother?

    This is the first post in a series on Business Process Management (BPM). Having worked as a business analyst and product manager in various companies ranging from middle-sized startups to big corporations, I have observed differences in approaches to business process management - from almost complete disregard to excessive attention. So, I decided to share my views on the topic, why I think BPM is important, especially when a company grows fast and switches from the startup stage to a grown company, and what approach I think might work for a company of average size without involving too much time and resources.

    Read more