Search
Write a publication
Pull to refresh

My feed

Type
Rating limit
Level of difficulty
Warning
To set up filters sign in or sign up
Article

How to Create Effective Product Funnels with Event Tracking

Level of difficultyMedium
Reading time8 min
Views1.2K

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
Article

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

Reading time11 min
Views2.6K

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
Article

Setting Up an Experiment Environment for Data-Driven Product Development

Level of difficultyMedium
Reading time8 min
Views1K

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
Article

Machine Learning for price optimization

Level of difficultyMedium
Reading time27 min
Views7.6K

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
Article

TRIZ: The Problem-Solving Methodology for Product Managers

Level of difficultyEasy
Reading time11 min
Views2.8K

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
Article

Business process management. Part 1. Why bother?

Level of difficultyEasy
Reading time4 min
Views18K

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
Article

On the difference between regular functions and Lambdas

Level of difficultyMedium
Reading time11 min
Views3.3K

The point of this article is to explore Lambda functions, their dirrerences from regular functions and how they are implemented, based on C++, Python and Java programming languages.

Throughout this article I will be using godbolt.org to compile code and see machine code or byte code.

Read more
Article

An introduction to the world of AI for designers

Level of difficultyEasy
Reading time5 min
Views1.7K

Every day a new neural network appears and every day more opportunities are opened to designers to simplify their workflow. Someone fundamentally refuses to use them, because “there is no life in machinex and technologies”, and someone is only happy to find a way to reduce the amount of work. Personally, I belong to the second type and want to share the most detailed gait on neurons I have acquired lately. 

Read more
Article

Networking for Programmers: How to Build Connections and Get Hired

Level of difficultyEasy
Reading time8 min
Views2.4K

As a programmer, building connections with industry professionals can help you in advancing your career. Whether you're looking for a new job or want to connect with industry professionals, networking can help you achieve your goals. In this article, we'll examine the importance of networking for programmers and share practical tips and techniques for making strong connections in the programming community.

From attending industry events to exploiting social media for developing soft skills and building a personal brand, we'll cover everything you need to know to network effectively as a programmer. So, whether you're just starting your career or looking to take it to the next level, read on to learn how to build connections and get hired through effective networking.

Read more
Article

Google SSO for Kibana straightforward way on basic license

Level of difficultyEasy
Reading time5 min
Views3.3K

As many times before, I keep writing cheat sheets after the tasks which made me search a lot and glue things together before I found a solution. Long story short, this time I was asked to set up Google SSO for Kibana without switching from a basic license to a paid one. Kibana, by the moment, already had authentication set up and the customer wanted to log in there with the use of Google Workspace user accounts. Along with that, the customer wanted to keep user account which was already there, in Kibana. There was no need for role mapping or other advanced features, just plain SSO and that's all. As you probably know Elastic provides SSO feature only on paid license, so I have had no other way to get it working except for using 3rd party software. But first things first, let's list the steps we should go over:

Read more
Article

Automation in mobile QA testing

Level of difficultyMedium
Reading time7 min
Views1.3K

It takes a lot of time and effort to develop a game. Finding and fixing errors before the release is one of the most crucial stages of the whole process, and the bigger your project is, the more people are usually involved in testing. Even the most uncomplicated games require a proper and thorough examination by QAs. The processes are automated to provide high-level project maintenance by increasing testing speed and reducing the influence of the human factor.

Automated testing is done with the help of specific programs, like Selenoid and Appium (although such frameworks are rarely used in games). 

However, the chances of successful automation depend primarily on the genre. Plus, it doesn’t cover all stages. For example, while the analytical issues can be automated, the visual aspect and gameplay are still tested manually (or are they really? We’ll get back to this later). We differentiate the two most popular types of auto testing: 

Read more
Article

Langton's ant: a mystery cellular automaton

Reading time4 min
Views3.1K

The life of Langton's Ant seems sad and lonely, but, as we'll soon discover, he is not ready to put up with such an outrageous situation and is trying his best to escape. American scientist Christopher Langton invented his ant back in 1986. Since then, no one has been able to explain the strange behavior of this mysterious model...

Read more
Article

Array of weak in Swift

Level of difficultyMedium
Reading time2 min
Views6.6K

In Swift, when working with objects, it’s important to manage memory correctly. One way to do this is by using weak references to avoid retaining objects too long and causing memory leaks. In this article, we will discuss how to create an array of weak references in Swift using a generic wrapper.

Read more
Article

GNU radio 802.11 black box optimization

Level of difficultyMedium
Reading time5 min
Views3.1K

In this post I'll share my experience in adjustment of WiFi physical channel. The channel was implemented on a software defined radio (SDR) platform. WiFi looks like a very complicated thing standardized over hundreds of pages. Could a non-expert with a PC and a couple of 100$ devices (HackRFs) somehow improve it? Here I try to develop a WiFi optimization approach basically agnostic of protocol implementation details. There's some math and Python programming in it.

Read more
News

Boosting Your Terminal Productivity: Shell GPT

Reading time1 min
Views4.3K

As developers, we spend a significant amount of time in the terminal, executing commands, writing scripts, and trying to solve problems. But, how many times have you found yourself stuck, trying to remember the correct syntax or flag for a command, or spending hours looking for a specific code snippet?

sgpt "nginx default config file location" # -> The default configuration file for Nginx is located at /etc/nginx/nginx.conf.

sgpt "docker show all local images" # -> You can view all locally available Docker images by running: docker images

Read more
Article

About «free» #iam, #oidc, #saml, #etc

Level of difficultyMedium
Reading time2 min
Views1.2K

There is a task to develop a solution that allows:

- Access control to web applications via #oidc/#saml

- Access control to vanilla #Kubernetes

- SSH access control to bare-metal hosts - using SSH certificate technology if possible

- Authorizing users to other server applications such as #Vault, #PostgreSQL, #Kafka, #ClickHouse, #MongoDB

- Being able to connect users from third-party organizations to certain resources based on group membership, etc

- Ensuring that everything described above works, including the bare metal environment

Read more
Article

The Collatz conjecture is the greatest math trick of all time

Reading time4 min
Views3.7K

On the Internet and in non-fiction literature you can often find various mathematical tricks. The Collatz conjecture leaves all such tricks behind. At first glance, it may seem like some kind of a trick with a catch. However, there is no catch. You think of a number and repeat one of two arithmetic operations for it several times. Surprisingly, the result of these actions will always be the same. Or, may be not always?

Read more