Skip to content
View pavelmaksimov's full-sized avatar

Block or report pavelmaksimov

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
pavelmaksimov/README.md

Hi! 👋

I'm a Backend Engineer / Python Developer exploring how software development changes in the era of AI-assisted and vibe coding.

In the past, I focused heavily on software architecture, design patterns, and principles for managing complexity and maintaining code quality. Today, I'm trying to transfer these ideas into AI coding harnesses — the workflows, tools, skills, rules, memory, and agent orchestration that shape how coding agents work.

My current focus is on studying and comparing different harness approaches, finding the most effective ones, and designing development flows and multi-agent orchestration that help AI agents build software more reliably, efficiently, and with higher quality.

I share my experiments, tools, and findings in my Telegram channel.

🚀 My Projects

AI

Stack & Harness — a quick start for new projects

Python Harness — a quick start for python projects

LLM Wiki template

harness-benchmark - benchmark for harness

🛠️ Static Analyzers

I've created several static analysis tools for managing complexity and enforcing architectural constraints in Python projects.

🍰 layers-linter - Enforces layered architecture constraints.

Designed to enforce architectural constraints related to:

  1. Separating modules by their technical roles and controlling dependency directions between them.
    It analyzes imports between modules and reports cases where dependencies between layers violate the configured direction.

  2. Restricting the use of specific libraries within certain layers.
    It analyzes library imports and reports cases where a library is imported from a layer where it is not allowed.

Configuration is defined in a TOML file describing the layers and allowed dependency directions.

It is especially useful for teams working on complex projects.

Can be used as a standalone tool or as a flake8 plugin.

💉 di-linter - Detects dependency injection violations.

Enforces the Dependency Inversion Principle.

The tool detects cases where dependencies are created or accessed directly inside functions instead of being provided from the outside.

It is useful for projects that rely on DI containers or follow Clean Architecture principles, helping make the code more testable and maintainable.

The linter supports configuration via a TOML file.

Can be used as a standalone tool or as a flake8 plugin.

🏷️ domain-types-linter - Restricts the use of primitive types in annotations.

Ensures that type annotations use domain-specific types instead of generic primitive types such as str, int, etc.

It analyzes type annotations and detects violations such as the use of primitive types, their aliases, or generic types without domain-specific parameters.

Can be used as a standalone tool or as a flake8 plugin.

🧱 bounded-contexts-linter - Enforces isolation between Domain-Driven Design bounded contexts.

Ensures that dependencies between modules only occur within the same bounded context, preventing unauthorized imports between domains.

Allows you to explicitly define a shared kernel and shared scope for common modules.

The linter supports configuration via a TOML file.

Can be used as a standalone tool or as a flake8 plugin.

⚙️ Development Tools

🏛️ project-architecture-template - Layered architecture template for Python projects.

Provides a preconfigured project structure, configuration files, and base modules for quickly starting a new project.

Includes:

  • Documented layered architecture
  • Preconfigured linters
  • Preconfigured factories and test fixtures
  • GitLab CI/CD configuration
  • PostgreSQL integration
  • Alembic database migrations
  • And more
🏗️ sqlalchemy-fastapi-endpoint-factory - CRUD endpoint generator for FastAPI.

A tool for automatically generating FastAPI CRUD endpoints based on SQLAlchemy models.

It allows you to quickly build REST APIs for working with data without manually defining routes.

For example, an endpoint for any Pydantic model can be generated with a single line of code.

Useful for prototyping and speeding up development with FastAPI and SQLAlchemy.

📡 API Clients

🛍️ tapi-yandex-market - Python client for the Yandex Market API.

📢 tapi-yandex-direct - Python client for the Yandex Direct API.

📈 tapi-yandex-metrika - Python client for the Yandex Metrica API.

Other

🌊 FlowMaster - Framework for building ETL/ELT pipelines using YAML configuration.

🧠 algorithms - A collection of algorithmic problems, solutions, and notes about mistakes I made while solving them.

📊 attributions - Attribution tool for marketing analytics.

🧩 Script-Master - A service for scheduling and orchestrating script execution based on YAML configuration files and predefined execution plans.


📬 Contacts

Telegram: @pavel_maksimow

Pinned Loading

  1. tapi-yandex-metrika tapi-yandex-metrika Public

    Библиотека для всех API Яндекс Метрика

    Python 168 19

  2. FlowMaster FlowMaster Public

    ETL flow framework based on Yaml configs in Python

    Python 22 3

  3. tapi-yandex-direct tapi-yandex-direct Public

    Python библиотека API Яндекс Директ

    Python 62 12

  4. tapi-yandex-market tapi-yandex-market Public

    Python библиотека для API Яндекс Маркет

    Python 13 1

  5. galytics3 galytics3 Public

    Обертка над стандартной библиотекой google_api_python_client для легкой работы с API Google Analytics v3

    Python 17 5

  6. clickhousepy clickhousepy Public

    Python обертка для запросов в БД Clickhouse

    Python 9