Asetov Rauan

Python Backend & Full-Stack Engineer

I design, build, and maintain complex, high-load systems that solve real business problems and scale to any workload.

GitHub Email Telegram

Key Projects

A deep engineering dive into my most significant works.

βš™οΈ

E-commerce Automation System (Afterbuy)

A high-performance ecosystem for parsing, processing, and managing data, which reduced manual operation time from 1 hour to 5 minutes and handles >100,000 requests per day.

Technical Deep Dive:

Architectural Decisions
  • Layered Architecture: Strict separation into `Routers`, `Services`, and `Repositories` for logic isolation and easier testing.
  • Dependency Injection: Active use of `FastAPI.Depends` for managing dependencies and DB sessions, ensuring clean code.
  • Lazy DB Initialization: A custom `DatabaseHelper` for `SQLAlchemy` that creates the `engine` only on the first call, which is critical for compatibility with `Celery`.
  • Reverse-Engineering: Instead of fragile HTML parsing, HTTP request analysis and Afterbuy's internal API were used.
Scalability and Performance
  • Asynchronous Pipeline: `FastAPI` + `AIOHTTP` + `asyncpg` provide a fully non-blocking I/O, allowing hundreds of concurrent requests to be processed.
  • Background Processing: All long tasks (>1 sec) are offloaded to `Celery`, ensuring an instant API response.
  • Aggressive Caching: `Redis` is used for caching API responses, product data, and sessions, reducing the load on the DB.
  • Rate Limiting: `slowapi` protects the service from excessive client load.
✍️

The Loom: Real-time Collaborative IDE

A pet project to explore Conflict-Free Replicated Data Types (CRDT). It is a browser-based IDE where multiple users can edit code simultaneously, like in Google Docs.

Technical Deep Dive:

Algorithmic Core
  • CRDT Implementation: Implemented the `Logoot` algorithm for text data, chosen for its balance between metadata and performance.
  • Fractional Identifiers: Each character has a unique, densely packed positional identifier, allowing characters to be inserted between any two without re-enumeration.
  • Tombstones: To handle deletions, "tombstones" are used to preserve history and correctly apply operations that arrive late.
Low-Level Optimization
  • Binary Protocol: To minimize latency, a binary protocol (`Protocol Buffers`) over `WebSockets` is used instead of JSON. This reduced traffic by ~40%.
  • Operation Batching: The client does not send every operation (keystroke) immediately, but collects them in batches and sends them every 100 ms.
  • Zero-copy parsing: On the server, where possible, zero-copy techniques are used for parsing binary messages.
πŸ—ΊοΈ

Graph Visualization & Algorithms

An interactive tool for visualizing graphs and step-by-step execution of classic graph algorithms, written using low-level rendering libraries.

Technical Deep Dive:

GPU-Accelerated Rendering
  • OpenGL Pipeline: Modern `OpenGL` with custom shaders (GLSL) is used to draw thousands of vertices and edges.
  • VBO & EBO: Graph geometry data is loaded directly into the video card's memory via `Vertex Buffer Objects`.
  • Instanced Rendering: To draw identical elements, the `Instanced Rendering` technique is used, allowing thousands of objects to be drawn in a single API call.
Efficient Algorithms and Data Structures
  • Fibonacci Heap: For Dijkstra's algorithm, a `Fibonacci Heap` is used instead of a binary heap for asymptotic acceleration.
  • Disjoint Set Union (DSU): For Kruskal's algorithm, a DSU structure is implemented with "path compression" and "union by rank" optimizations.
  • Spatial Indexing: For fast vertex lookup by mouse click (picking), a `Quadtree` is used, allowing a node to be found in O(log N).
πŸ™‚

Emoji Hub: Dynamic Search and Favorites

A high-performance web application for viewing, searching, and filtering emojis with personalized collections for each user.

Technical Deep Dive:

Dynamic Frontend
  • Infinite Scroll: The frontend, built with "vanilla" JS, uses the **Intersection Observer API** to load emojis on scroll.
  • UI Optimization: **Web Workers** are used for background filtering and searching without blocking the main thread and freezing the interface.
  • Debouncing: The search query is sent to the server not on every keystroke, but with a delay (debounce) to reduce the load.
Backend Performance
  • Aggressive Caching: Search and filter results are cached at multiple levels: in **Redis** on the backend and in `localStorage` on the frontend.
  • Full-Text Search: For fast and relevant search, **PostgreSQL Full-Text Search** with `tsvector` vectors is used, which is much more effective than a simple `LIKE`.
  • Cursor-based Pagination: Instead of traditional offset/limit pagination, which slows down on large datasets, Keyset/Cursor Pagination is used.

Other Projects and Technical Demos

Wildberries Data Visualization

A Django application for parsing data from Wildberries and its subsequent visualization. Uses Celery for background tasks and DRF for the API.

GitHub

Salary Calculator (Clean Architecture)

A project with an emphasis on clean architecture and 100% test coverage (Pytest). A demonstration of a deep understanding of vanilla Python.

GitHub

Django Menu App (Template Tags)

A demonstration of a deep understanding of Django: recursive templates, custom template tags for building a tree-like menu from the DB in a single query.

GitHub

Reliable bots for marketplaces

A series of bots for sites with an API (Amazon) and without (Tutti) using Playwright. Implemented complex retry mechanisms and exponential back-off.

(NDA, code upon request)

Team-Task-Manager (TTM)

An analogue of Trello, written to hone skills in Django and React. Allows task management in teams.

GitHub

Watch Book (Social Network)

A social network concept for book lovers. Planned as a high-load project with a graph database for recommendations.

(In development)

Disposable Secrets

A service for sharing secrets that self-destruct after the first read. A demonstration of working with Redis and its TTL mechanisms.

GitHub

Tetrika Solutions (Test Task)

A test task that includes parsing, data processing, and code coverage with tests. A good example of solving typical problems.

GitHub