Skip to content
View rabbitix's full-sized avatar
✌️
coding python
✌️
coding python

Block or report rabbitix

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 supported. This note will be visible to only you.
Report abuse

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

Report abuse
rabbitix/readme.md
╔═══════════════════════════════════════════════════════════════╗
║                                                               ║
║          ali fazeli  ·  python backend engineer               ║
║                                                               ║
╚═══════════════════════════════════════════════════════════════╝

Typing SVG


$ whoami

engineer = {
    "name":     "Ali Fazeli",
    "role":     "Python Backend Engineer",
    "languages": ["Python", "SQL"],
    "speaks":   ["en_US", "fa_IR"],
    "contact":  "rabbitix98@gmail.com",
    "focus":    "FastAPI · Pydantic v2 · SQLAlchemy · Clean Architecture",
}

I build maintainable, type-safe backend systems with a strong emphasis on clean separation of concerns and long-term sustainability. My projects are structured to scale — both in codebase complexity and team size.


$ ls -la tech_stack/

Layer Tools
Framework FastAPI · Django
ORM / DB SQLAlchemy · SQL (PostgreSQL, SQLite)
Validation Pydantic v2 · Python type system
Architecture Clean Architecture · Domain-Driven Design
Infra Docker · Git

$ tree src/

src/
├── configs/        # App configuration & env management
├── helpers/        # Shared utilities & exception handling
├── logics/         # Pure business logic — framework-agnostic
├── model/          # Domain models, DTOs, type definitions
├── repositories/   # Data access layer (adapters pattern)
└── services/       # Orchestration & use-case layer

Why this structure? Each layer has one reason to change. The domain logic never imports from FastAPI. Repositories are swappable. Tests are fast because they don't need a running server.


$ cat philosophy.md

  • Type safety first — if it's not typed, it's not done
  • No magic — explicit over implicit, always
  • Repository pattern — decouple persistence from logic
  • Fail loudly early — validation at the boundary, not deep inside
  • Write for the next engineer — including future-me

$ git log --stat


$ ./contact.sh

Email   GitHub


contribution snake

if a repo helped you, a ⭐ goes a long way

Pinned Loading

  1. APD APD Public

    Aparat Playlist Downloader script using request and beautifulSoup

    Python 3

  2. search in table data with css search in table data with css
    1
    <!DOCTYPE html>
    2
    <html lang="fa" dir="rtl">
    3
    <head>
    4
        <meta charset="UTF-8">
    5
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
  3. PTB init bot with proxy PTB init bot with proxy
    1
    import logging
    2
    
                  
    3
    from telegram.ext import (Updater, Dispatcher, ConversationHandler, CommandHandler,
    4
                              MessageHandler, RegexHandler, Filters,
    5
                              CallbackContext,)
  4. SyntaxArc/ArchiPy SyntaxArc/ArchiPy Public

    Architecture + Python – perfect for structured design.

    Python 37 20