Introduction Building intelligent systems at scale is tricky. On the surface, modern AI gives us powerful components (LLMs, Transformers, ML) ready to integrate into our applications. Yet assembling these pieces into a coherent, resilient, and cost-effective whole remains a tough challenge, especially as systems grow beyond simple request-response patterns. This article presents a comprehensive…
Hello world! My name is Vladimir, an Engineering Manager, Software Engineer, and a slow and lazy writer. I have Master degree in Computer Science and background in Content Management Systems, Web Development Agencies, and Product Engineering from small start-ups to large global scale-ups. Interests Currently I write mostly about: Managing Software Engineering teams Building complex systems with a…
Introduction and recap of Part 1 Welcome back to our journey into Visual AI Engineering with PyFlyde! In this second part of our tutorial, we’ll dive deeper into the fascinating world of AI and data engineering, combining modern tools and libraries with the intuitive power of visual programming. In Part 1 of this tutorial, we embarked on an exciting journey to build a flexible data…
Introduction Building data pipelines often involves integrating multiple tools and services into complex workflows. While traditional programming approaches are effective, visual tools can offer a more intuitive and streamlined way to design and manage these workflows. In this tutorial, we will explore how to use Flyde, a visual programming tool, to construct a web scraper that feeds into a…
In memory of J. Paul Morrison. May he rest in peace, and his work continue to live. I started this article in 2018 as a collection of observations and ideas that I wanted to share with the Flow-based Programming community. It didn’t go beyond a quick draft that never got published. During the next 4 years I barely thought about Flow-based Programming. My focus was on figuring out how…
Natural weekly rhythm Synchronize the rhythm of a week with productivity cycles for majority of people in the team to reduce stress and increase effectiveness. This article is part of Engineering Manager’s Runbook. You can support the project by starring the repo or sharing it with your network. Infographics Situation If you are creating team’s meetings schedule from scratch or looking…
Any Engineer in the team can lead a project. Any project should have a technical lead. Infographics Motivation Typically in many teams an Engineering Manager is responsible, among other things, for collecting technical requirements for initiatives, making high level technical decisions, documenting solutions, setting up communication within the team and with external stakeholders, addressing…
Keeping track of tasks helps in many ways. Remember the milk - check. Get things done - check. Build healthy habits - check. Get an overview of your progress - check. Control your life - well, that’s arguably possible. Feel more of contentment and accomplishment - check! In this article I’m going to share the framework I’ve been using for organizing my tasks over the last few…
Software Design is hard. It is complicated, it takes years to learn (in a sense that you really know what you are doing and why, compared to just copying and pasting something that you read somewhere) and sometimes it is counter-intuitive. I started making these notes to better understand SOLID design principles myself while reading the “Clean Architecture” by Robert C. Martin. The…
My journey at The Grid was over and I had 3 months before the start of a new contract, so I took an opportunity to fill a position of an interim CTO at Dater.com, a new dating app that is going to change the industry by moving from “post & search” approach to online & offline game-alike activity. The main challenge was setting higher standards of development culture within the team and…
Using NPM Shrinkwrap to force NoFlo 0.8 Recently released 0.8 branch of NoFlo introduces several fundamental changes as well as a backwards compatibility layer for long-existing applications. However, the backwards compatibility layer is only capable of doing its job if all NPM dependencies in a project use noflo@0.8.*. Which means that if a project uses an old library that depends on something…
Development efficiency challenges in NoFlo Programming with NoFlo is getting more and more smooth with every release. However, if maintaining a NoFlo application is your day-to-day job you may notice some inconveniences. Defining new components is slow Every time you add a new component you have to define a pretty massive hash map of its ports, their data types and preferably at least…
On NoFlo Database Applications Thinking over common parts of database applications… … I came to some conclusions below Common application architecture Steps common to all route graphs The only processing step that is often present and easy to decompose is Validate (fig. I and II). String of pearls or Pipeline or Request backbone Request flow should be serial, it simplifies synchronization…
Getting All Things NoFlo This article describes things which are yet TODO to get the entire server architecture running on NoFlo (and in Flowhub), problems related to them and potential solutions. Request Isolation By default there is no isolation between IPs belonging to different user requests in NoFlo networks. Solution 1 (current): a new Network instance per request Express does its job…
Comparison of dataflow models Mathematical model of choice Comparison criteria and analysis methods should be chosen before performing actual analysis. We will solve the task of parallel computation model evaluation as a multiple criteria choice. In order to do this, a set of particular criteria is outlined and for each of them a mapping to the real numbers set is defined: k(x):i(x)→R(1) where x -…