Oleh Baranovskyi
Software Craftsman · Technical Author
Coding tips & tricks, functional & object-oriented programming, design principles, patterns, refactorings, overviews, skill-improving articles
AI
Python
Bash
.NET
C#
JS/TS
Node.js
HTML
CSS/SASS
Lua
Vim/Neovim
© 2026 obaranovskyi.com
About
Pet
Projects
Blog
Favorites
When Context Breaks: Understanding Context Rot in LLMs
Understanding RAG: How Retrieval-Augmented Generation Makes AI Actually Useful
What Is an AI Agent and How to Build One
Feature Flags in .NET with LaunchDarkly
MediatR for Beginners: From Controller to Database
Python: Packages
How to be more productive in chrome
Cheatsheet: Tmux
How to setup a mock server with JWT token authentication
How to add custom bash scripts to the system
Quick substitutions with the custom operator
Understand build-in/utility types
Encapsulate algorithm in the new class
The ultimate guide to observables vs promises
CMD Cheat Sheet - Command line cheat sheet
Time tracker - Work time tracker
My culinary story - A website where everyone can have his culinary page
Interview Questions: Entity Framework Core
What Is a System Prompt and Why It Matters
Mastering the PRD: A Practical Guide to Product Requirements
Zero-Cost AI: How to Access Free LLM Models via OpenRouter
Cheatsheet: GitHub Copilot Symbols
Feature Flags in .NET with LaunchDarkly
Profit Flow - Manage Deals in Crypto
Cheatsheet: Docker
Window management on Mac
Cheatsheet: Tmux
Blog Website - Part 2: Web Component Library
How to SSH without password
Process management in linux
Indexed access type is awesome
CMD English Assist - Command line English assistant
How do you clean RxJs
Subject
?
CMD Cheat Sheet - Command line cheat sheet
JS
Symbol
and Well-known symbols
Incomes and Expenses - Mobile app to track your budget
Interview Questions: Entity Framework Core
When Context Breaks: Understanding Context Rot in LLMs
MCP Servers and Clients: The Protocol That Connects AI to the Real World
What Is an AI Agent and How to Build One
Cheatsheet: PowerShell
MediatR for Beginners: From Controller to Database
Python: Packages
Better terminal file management with Ranger
Cheatsheet: Lua
Blog Website - Part 2: Web Component Library
How to make a typescript shared library
Publishing TypeScript package to npm
Docker Starter Kit
Indexed access type is awesome
CMD English Assist - Command line English assistant
Even better combinator predicates with factories
The simple way to reload data using rxjs
English assist - expand vocabulary using memory cards
JS Helpers - JavaScript Util Library
Python: Thinking in Objects: Mastering OOP Concepts with Python
Python
RxJs
Vim
Bash
Linux
TypeScript
Neovim
npm
JavaScript
Pinia
Firebase
Express
Refactoring
SocketIO
CSS
PowerShell
React
HTML
DesignPatterns
Techniques
NodeJS
MongoDB
Angular
Nginx
AngularJS
Vuejs
Redis
AngularMaterial
Redux
FunctionalProgramming
Testing
SQL
ORM
SSL
CommandLine
Mobile
Ionic
NestJS
TypeORM
GraphQL
Namecheap
Jest
JWT
Mocha
SQLAlchemy
Tmux
Lua
MacOS
Amethyst
Docker
WebComponents
Chrome
Git
PostgreSQL
SQLite3
NextJS
Bootstrap
CLI
.NET
C#
SQL Server
ASP.NET Core
Entity Framework Core
Mac
VS Code
Azure Pipelines
GitHub Copilot
AI
Agent
Automation
n8n
LLM
RAG
MCP
CTRL
+K
What Is a System Prompt and Why It Matters
Apr 10, 2026
AI
LLM
Prompt Engineering
What Is Context Engineering?
Apr 10, 2026
AI
LLM
Context Engineering
Context in Practice: What It Contains and How to Use It
Apr 8, 2026
AI
LLM
Context
When Context Breaks: Understanding Context Rot in LLMs
Apr 8, 2026
AI
LLM
Mastering the PRD: A Practical Guide to Product Requirements
Apr 5, 2026
Product
PRD
AI
An Introduction to Vibe Coding
Apr 4, 2026
AI
Vibe Coding
Productivity
Prompt Engineering
MCP Servers and Clients: The Protocol That Connects AI to the Real World
Mar 23, 2026
AI
MCP
How to Think in Prompts: A System for Better AI Results
Mar 22, 2026
AI
Understanding RAG: How Retrieval-Augmented Generation Makes AI Actually Useful
Mar 22, 2026
AI
RAG
Zero-Cost AI: How to Access Free LLM Models via OpenRouter
Mar 21, 2026
AI
OpenRouter
LLM
Getting Started with n8n
Mar 19, 2026
AI
n8n
Automation
What Is an AI Agent and How to Build One
Mar 16, 2026
AI
Agent
TypeScript
Cheatsheet: GitHub Copilot Symbols
Mar 15, 2026
GitHub Copilot
AI
Coming soon
Interview Questions: Entity Framework Core
Mar 4, 2026
Entity Framework Core
Cheatsheet: PowerShell
Mar 2, 2026
PowerShell
Azure Pipeline Configuration for .NET Applications
Feb 28, 2026
.NET
Azure Pipelines
Feature Flags in .NET with LaunchDarkly
Feb 22, 2026
ASP.NET Core
C#
.NET
LaunchDarkly
.NET CLI Cheatsheet
Nov 28, 2025
.NET
CLI
C#
MediatR for Beginners: From Controller to Database
Nov 28, 2025
ASP.NET Core
Entity Framework Core
C#
.NET
SQL Server
Setup .NET MVC with Docker and SQL Server on Mac
Nov 28, 2025
Docker
SQL Server
ASP.NET Core
Entity Framework Core
Mac
VS Code
C#
Coming soon
Vim Productivity Boost: Quick Tips for Better Editing
Jan 28, 2024
Neovim
Vim
Coming soon
Cheatsheet: SQL
Jan 9, 2024
SQL
PostgreSQL
Cheatsheet: Docker
Dec 16, 2023
Docker
Better terminal file management with Ranger
Dec 4, 2023
Ranger
Cheatsheet: Git
Nov 30, 2023
Git
How to be more productive in chrome
Nov 27, 2023
Chrome
Vim
Window management on Mac
Nov 24, 2023
MacOS
SpaceId
Amethyst
JankyBorders
Cheatsheet: Lua
Nov 21, 2023
Lua
Cheatsheet: Bash
Nov 11, 2023
Bash
Linux
Cheatsheet: Tmux
Nov 10, 2023
Tmux
How to setup a mock server with JWT token authentication
June 6, 2023
NodeJS
How to setup Node.js project with TypeScript and Nodemon
June 2, 2023
NodeJS
TypeScript
How to make a typescript shared library
June 2, 2023
TypeScript
How to SSH without password
May 20, 2023
Linux
Setup ftp server with secure connection
May 19, 2023
Linux
How to add custom bash scripts to the system
May 9, 2023
Bash
Linux
Publishing TypeScript package to npm
May 5, 2023
TypeScript
npm
Process management in linux
May 2, 2023
Linux
How to run Ex Commands without jumping around
May 2, 2023
Vim
Neovim
Quick substitutions with the custom operator
Apr 30, 2023
Vim
Neovim
Indexed access type is awesome
Jan 17, 2022
TypeScript
Understand build-in/utility types
Jan 17, 2022
TypeScript
unknown
vs
any
Jan 17, 2022
TypeScript
Using
const
assertion
Jan 17, 2022
TypeScript
Better validations with includes and selector function
Dec 24, 2021
Techniques
TypeScript
JavaScript
Refactoring
Consider using predicate combinators
Dec 24, 2021
Techniques
TypeScript
JavaScript
Refactoring
Encapsulate algorithm in the new class
Dec 24, 2021
Techniques
TypeScript
JavaScript
Refactoring
Even better combinator predicates with factories
Dec 24, 2021
Techniques
TypeScript
JavaScript
Refactoring
Use callbacks to encapsulate code that changes
Dec 24, 2021
Techniques
TypeScript
JavaScript
Refactoring
How do you clean RxJs
Subject
?
Dec 16, 2021
RxJs
The ultimate guide to observables vs promises
Dec 11, 2021
RxJs
Never get stuck with object updates
Dec 8, 2021
RxJs
The simple way to reload data using rxjs
Dec 1, 2021
RxJs
Delete and yank lines without a single move
May 29, 2021
Vim
Neovim
JS
Symbol
and Well-known symbols
Mar 30, 2018
JavaScript
Setting up Node environment for Utility Library using ESDoc, Mocha+Chai and TDD approach
Mar 11, 2018
NodeJS
JavaScript
Filter by type
Tech articles
Cheatsheets
Environment
Interview Questions
Sort by
Name
Date
DESC
Tags
4
RxJs
5
Vim
2
Bash
5
Linux
13
TypeScript
4
Neovim
1
npm
7
JavaScript
5
Refactoring
1
PowerShell
5
Techniques
3
NodeJS
1
SQL
1
Tmux
1
Lua
1
MacOS
1
Amethyst
2
Docker
1
Chrome
1
Git
1
PostgreSQL
1
CLI
4
.NET
4
C#
2
SQL Server
3
ASP.NET Core
3
Entity Framework Core
1
Mac
1
VS Code
1
Azure Pipelines
1
GitHub Copilot
13
AI
1
Agent
1
Automation
1
n8n
5
LLM
1
RAG
1
MCP
Please enable JavaScript to continue using this application.