Pull to refresh

My feed

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

Roadmap for Managing Chaos — Planing Migration from a Monolith to Microservices

Reading time22 min
Views1.2K

Roadmap for Managing Chaos - Planing Migration from a Monolith to Microservices

This article tries to provide some insight into the complexities of transitioning from monolithic architectures to microservices. Our goal is to offer a high view perspective on the various considerations and challenges that arise during such migrations, terms and keywords you will encounter and their role in this endeavor.

Read more
Article

UX Designer Job Interview: 10 questions to answer, 5 questions to ask

Level of difficultyEasy
Reading time6 min
Views819

No matter how many degrees you have or how high your experience level is, your recruiters need to evaluate your knowledge of UX design as a whole. But keep in mind that a job interview is not an exam, so here you are expected not to recite the textbook definitions learned by heart, but rather share your personal understanding of UX and your role as a designer in general. Consider talking about how you define UX, what creates value in the design, what are the necessary parts of a UX design process, what are the current trends in UX. You might also be asked to explain the difference between UI and UX to see how you understand the role of each in the development process.

Read more
Article

React — Higher Order Components (HOC)

Level of difficultyMedium
Reading time5 min
Views4.5K

In the ever-evolving realm of web development, mastering advanced concepts is essential for creating robust and flexible applications. In this article, we'll delve into one of these foundational React concepts: Higher-Order Components, commonly known as HOCs. 

Whether you're a seasoned developer seeking advanced techniques or a curious beginner eager to learn, we'll walk through the creation and application of HOCs step by step. Get ready to enrich your development toolkit with this powerful approach while discovering how to enhance the readability, reusability, and maintainability of your code.

Learn it
Article

High-performance network library using C++20 coroutines

Level of difficultyMedium
Reading time17 min
Views21K

Asynchronous programming is commonly employed for efficient implementation of network interactions in C++. The essence of this approach lies in the fact that the results of socket read/write functions are not immediately available but become accessible after some time. This approach allows for loading the processor with useful work during the wait for data. Various implementations of this approach exist, such as callbacks, actors, future/promise, coroutines. In C++, these implementations are available as libraries from third-party developers or can be implemented independently.

Coroutines are the most challenging to implement as they require writing platform-dependent code. However, the recent version of the C++ 20 language standard introduces support for coroutines at the compiler and standard library levels. Coroutines are functions that can suspend their execution, preserving their state, and later return to that state to resume the function's work. The compiler automatically creates a checkpoint with the coroutine's state.

For a comprehensive understanding of C++ 20 coroutines, refer to this article. Below, we examine a code example using coroutines and describe important points applied during implementation.

Read more
Article

How sqlalchemy uses greenlet to call an async Python function from a normal function

Reading time5 min
Views4K

The Python language has two kind of functions — normal functions that you would use in most cases, and async functions. The latter functions are used when performing network IO in an asynchronous manner. The problem with this division is that async functions can only be called from other async functions. Normal functions, on the other hand, can be called from any functions — however, if you call a normal function that does a blocking operation from an async function, it will block the whole event loop and all your coroutines. These limitations usually mean that when writing an using Python`s asyncio, you can`t use any of the IO libraries that you use when writing a synchronous application, and vice versa, unless a library supports usage both in sync and async applications.

Now, the question is, in case you are developing a large and complex library, that, say, allows users to interact with relational databases, abstracting away (some of) the differences between the SQL syntax and other aspects of these databases, and abstracting away the differences between the drivers for that database, how do you support both sync and async usage of your library without duplicating the code of your library? The way sqlalchemy is organized is that regardless of what database and driver for it you are using, you will be calling functions and methods related to Engine, Connection, etc classes, which will do some general work independent of database, then apply the logic specific to your database and finally, call the functions of your database driver to actually communicate with the database. If you are using Python`s asyncio, the database driver will expose async functions and methods, but the rest of the library that is driver‑independent would ideally remain the same. However, the issue is that that you can`t call the async functions of the driver from the normal functions of the core of the library.

Read more
Article

React Custom Hook: useTimeout

Level of difficultyMedium
Reading time2 min
Views2.3K

One of the significant advantages of this custom hook is that it ensures the callback function remains up to date even if it changes during component re-renders. By using a useRef to store the callback reference, the hook guarantees that the latest version of the function is always called.

Read more
Article

A (more) accurate camera sensor dynamic range measurement

Reading time7 min
Views1.3K

Hello, everyone! In this post, let's talk about how to (more) accurately measure the dynamic range of a camera sensor and what can be done with these measurements.

Of course, I am not an expert in computer vision, a programmer or a statistician, so please feel free to correct me in the comments if I make mistakes in this post. Here my interest was primarily focused on everyday and practical tasks, such as photography, but I believe the results may also be useful to computer vision professionals.

Read more
Article

Dealing with sanctions and the other difficult question

Reading time3 min
Views1.2K

In our last article we covered the anatomy of a presale meeting gone wrong. In that article we posed some questions for everyone to think about. What exactly does an American company wanting to hire a Russian custom software development company, feel about this Russian company? What are they afraid of? What are their concerns?

In the end we came up with five concerns.

1. Is the company a fly by night company, is the company a one-day company?

2. Will they be professional in supporting or developing the software that they've sold to us?

3. Will they have proper data security?

And now the two new ones that are because of the mess the world is in now...

4. Will they be able to complete the project on time? This includes proper internet access an infrastructure to support IT.

5. Where is your team located? Are you still located in Russia?

Now we're going to look at the last 2, number four and five.
However let's look at number 5 first.

Many IT companies today if they want to work with the United States or even Europe they must not have their developers located inside of Russia. Matter of fact it goes so far that if a developer is located in Russia and they're using a VPN and somehow the VPN is breached the credentials are canceled for that developer to work on the project.

It's for this reason that Russian IT companies are opening offices around the world. Let's look at Armenia as an example.

Wait a minute I have to go back for a second...... We must discuss how countries look to America Canada and Western Europe. I basically give them a score based on questions that are brought up in the mind of the American company or European company.

Read more
Article

React Custom Hook: useStorage

Level of difficultyMedium
Reading time3 min
Views2.5K

One of the key advantages of this custom hook is its simplicity. You can use it to store any type of data, such as strings, numbers, or even complex objects, with just a few lines of code. Additionally, useStorage handles the serialization and deserialization of data for you, so you don't have to worry about converting values to and from JSON.

Read more
Article

2. Information Theory + ML. Mutual Information

Reading time11 min
Views1.2K

In Part 1, we became familiar with the concept of entropy.

In this part, we will delve into the concept of Mutual Information, which opens doors to error-resistant coding, compression algorithms, and offers a fresh perspective on regression and Machine Learning tasks.

It is an essential component that will pave the way, in the next section, for tackling Machine Learning problems as tasks of extracting mutual information between features and the predicted variable.

Here, there will be three interesting and crucial visualizations.

The first one will visualize entropy for two random variables and their mutual information.
The second one will shed light on the very concept of dependency between two random variables, emphasizing that zero correlation does not imply independence.
The third one will demonstrate that the bandwidth of an information channel has a straightforward geometric interpretation through the convexity measure of the entropy function.

In the meantime, we will prove a simplified version of the Shannon-Hartley theorem regarding the maximum bandwidth of a noisy channel. Let's dive in!

Read more
Article

The art of prioritization in product management

Level of difficultyMedium
Reading time7 min
Views6.7K

Product management runs on choices. What to develop next, what to put on hold, and what to discard altogether. Getting these choices right steers products toward success. It's more than just a list; it's understanding needs, managing resources, and aligning with the company vision. Prioritization is, without a doubt, a major skill for any product manager.

For most of us, the daily challenge is juggling plenty of tasks, features, and stakeholder requests. But not all demands carry the same weight. It's easy to get swayed by the loudest voice in the room or the most recent email in the inbox, but these aren't necessarily what the product or the users need most urgently.

To get it right in product management, we need the right tools and approaches. Let's see what it takes to nail prioritization.

Key challenges in prioritization

As I noted before, in product management, facing various and often unpredictable challenges is part of the job. However, deciding which tasks to prioritize can be especially confusing, and here are a few factors to consider.

1. Changing customer demands: Customers are the heart of any product, and their needs and desires can evolve rapidly. One day, a feature might be all the rage; the next, it's old news. For instance, a messaging app might find its users clamoring for dark mode due to its increasing popularity across platforms. Adapting to these shifting demands requires constant observation and a readiness to pivot.

2. Evolving market trends: The broader market can influence product decisions as much as individual user feedback. If there's a sudden surge in voice-activated technologies, products that don't incorporate voice features might find themselves left behind. Staying attuned to the market means continuous research and the agility to tweak your product roadmap accordingly.

Read more
Article

React Custom Hook: useStateWithValidation

Level of difficultyMedium
Reading time2 min
Views1.6K

One of the key advantages of this custom hook is its flexibility. You can pass any validation function that suits your specific requirements. Whether it's checking the length of a string, ensuring a numeric value falls within a certain range, or performing more complex validations, useStateWithValidation has got you covered.

Read more
Article

The anatomy of a pre-sale meeting to the USA

Reading time5 min
Views807

My name is Paul Karol and I work connecting Russian IT with their customers in the United States. Please find on Hbar my previous article for a complete explanation of my credentials.

Today we're going to look at a presale meeting that was not successful and we will explain exactly how the Russian company lost this business. Please take a look at this photograph.

Going into this presale meeting the client (large American chain store) had worked with the software for a little more than a month and we're pretty happy with the result. From all indications they were going to buy the software this day. The sales manager had a good relationship with the American managers of the company. There was lots of buying sign that was known to the Russian company prior to this presale meeting. Suffice to say that they believe that they would have an easy sale today.

There was some very specific things that the Russians did that cost them this business.

We will be using this as a case study and we will discuss exactly everything that they did as a mistake and how to not do these same mistakes for your company.

First we must do some brain work. A thought experiment, if you will. What do you believe are the concerns of an American company doing business with Russian IT developers today. The current situation between the countries does make it more difficult but the same exact concerns are still there from before maybe slightly more amplified and there may be one more concern that wasn't there prior to the difficulties in Ukraine.

Read more
Article

React Custom Hook: useStateWithHistory

Level of difficultyMedium
Reading time3 min
Views2K

In this article series, we embark on a journey through the realm of custom React hooks, discovering their immense potential for elevating your development projects. Our focus today is on the "useStateWithHistory" hook, one of the many carefully crafted hooks available in the collection of React custom hooks.

Read more