|
Download Sidecar/knowledge/gemini_TechStack.md from smlflg/Sidecar-Workspace: direct link, hf CLI and curl.
- Browser
- Download file 11.2 kB
-
https://huggingface.co/smlflg/Sidecar-Workspace/resolve/main/Sidecar/knowledge/gemini_TechStack.md
- Command line
-
hf download hf://smlflg/Sidecar-Workspace/Sidecar/knowledge/gemini_TechStack.md
-
curl -L -o gemini_TechStack.md https://huggingface.co/smlflg/Sidecar-Workspace/resolve/main/Sidecar/knowledge/gemini_TechStack.md
11.2 kB
| # Samuels Technologie-Landkarte | |
| Technologie-Kompetenz lässt sich nicht aus Lebensläufen ablesen. Sie zeigt sich darin, welche Fehler jemand macht — und wie präzise er sie beschreibt. Diese Karte basiert auf dem, was in sechs Notebook-Analysen sichtbar wurde: durch Code, durch Fehlschläge, durch Fragen, durch Erklärungen. | |
| --- | |
| ## Kernkompetenzen (Advanced) | |
| ### Python — Die Muttersprache | |
| Python läuft durch alle vier Projekte wie ein roter Faden. Nicht als Werkzeug, das man benutzt, weil es verfügbar ist — sondern als Sprache, in der man denkt. | |
| **Async/Concurrency:** Keeper zeigt, was "advanced" hier bedeutet. `asyncio.gather()` mit Semaphores für parallele API-Calls, Event-Loop-Management, der Unterschied zwischen `asyncpg` und `psycopg2` als bewusste Architekturentscheidung: *"asyncpg ist ein asynchroner PostgreSQL-Treiber. Im Gegensatz zu psycopg2 (synchron) blockiert asyncpg nicht den Event Loop während einer Datenbankabfrage. Das heißt: Während eine DB-Query auf Antwort wartet, kann unser Server andere HTTP-Requests bearbeiten."* | |
| Gleichzeitig zeigt das fehlende `await` auf einem async API-Call in Keeper, dass selbst gute async-Kenntnisse gegen subtile Bugs nicht immun sind. Das ist ehrlich — kein gecasteter Skill, sondern ein lebendiger. | |
| **Einsatz in:** Keeper (async pipeline), mAImory (FastAPI backend), NPU Agent (selfai.py, agent_manager.py), Self AI V2 (inference integration), SE-Studium (UML exercise scripts) | |
| ### FastAPI — Produktiv ohne Boilerplate | |
| FastAPI ist Samuels bevorzugtes Backend-Framework für neue Projekte — wegen Python-Vertrautheit, Pydantic-Integration und der automatischen OpenAPI-Dokumentation. | |
| In Keeper wurde eine vollständige REST-API mit Swagger UI, Pydantic-Validierung, async-Endpoints und 8 Microservices aufgebaut. In mAImory war FastAPI explizit als Constraint definiert: *"YES known tech stack (Python/FastAPI)"* — weil Vertrautheit im 4-Wochen-MVP-Sprint wichtiger ist als technische Neuheit. | |
| Reifer Einsatz: Modular routing, startup configuration, error handling. Noch offen: Missing-`await`-Bugs zeigen, dass async FastAPI Tücken hat, die auch Erfahrene treffen. | |
| ### Docker und Docker Compose — Infrastruktur als Code | |
| 8 Services in einem `docker-compose.yml` orchestriert, mit named volumes, internem Networking (`db:5432`, `kafka:29092`, `elasticsearch:9200`), environment variables und health checks. Das ist nicht "ich habe Docker mal ausprobiert" — das ist produktiver Umgang mit Container-Orchestrierung auf mittlerem Komplexitätsniveau. | |
| Cloud-Agnostizismus in mAImory: *"Docker container macht den Provider irrelevant architektonisch. Flexibilität, auf Startup-Credits zu reagieren."* | |
| ### LLM und AI-Integration — Multi-Provider-Denken | |
| Nicht ein LLM-Provider — mehrere, hinter Abstraktionsschichten. In mAImory wurden drei konkrete Adapter implementiert (OpenAI, Claude, MiniMax) hinter einer abstrakten `LLMAdapter`-Schnittstelle. In Keeper übernimmt LangGraph die Orchestrierung (Price Monitor Agent, Deal Finder Agent, Alert Dispatcher). | |
| Das Wichtigste: Samuel denkt nicht in einzelnen API-Calls. Er denkt in Provider-Unabhängigkeit, Fallback-Ketten, Timeout-Budgets. *"LLM market changes rapidly. System must support OpenAI, Claude, and MiniMax without vendor lock-in."* | |
| Aus der Praxis: *"Da ich jetzt schon 6 Monate an einem eigenen KI System mit generativer KI arbeite, kenne ich aus der Praxis ein paar der Tücken die über ein solches System auftreten können."* | |
| ### Software-Architektur und Design Patterns — Das akademische Fundament mit Praxisankern | |
| Das ist vielleicht die stärkste Kompetenz — und die am wenigsten offensichtliche. ADD 3.0, Adapter Pattern, Repository Pattern, Chain of Responsibility, Strategy Pattern: Diese werden nicht nur benannt, sondern angewendet und begründet. | |
| *"Hochgradige architektonische Reife. Studenten neigen oft dazu, einfach alles Coole einzubauen. Du machst das Gegenteil: Du lehnst komplexe Patterns ab und begründest das perfekt mit deinen Constraints."* | |
| Besonders stark: Trade-off-Denken. Jede architektonische Entscheidung kommt mit einer Abwägung, was dabei aufgegeben wird. *"Trade-off Accepted: Sacrifice: Perfect scalability in Phase 1 — Gain: Fast market entry — Worth it: YES."* | |
| --- | |
| ## Solides Wissen (Intermediate) | |
| ### PostgreSQL — Funktional, aber mit blinden Flecken | |
| Keeper zeigt ein solides Schema-Design: UUID Primary Keys, Foreign Keys, Indizes, Multi-Tenant-Unterstützung über eine `users`-Tabelle, ENUM-Typen für Status-Felder. Das Dual-Schema-Problem (synchroner und asynchroner Stack nebeneinander) zeigt allerdings auch, dass Datenbankentscheidungen früh und konsequent getroffen werden müssen. | |
| Der ehrlichste Satz kommt aus mAImory: *"Leider kenne ich mich nicht mit Datenbanken aus."* Das ist keine Schwäche als Geständnis — das ist Selbstkenntnis. Und der erste Schritt, sie zu adressieren. | |
| PostgreSQL-spezifisches Wissen ist vorhanden (Row-Level Security für Multi-Tenant-Isolation, `asyncpg` als Treiber, `pool_pre_ping` für Connection Management). Migrations, Index-Optimierung und Schema-Evolution sind als Lücken identifiziert. | |
| ### Apache Kafka — Konzeptuell stark, praktisch noch begrenzt | |
| Kafka in Keeper: Consumer Groups, Offsets, Topic-basiertes Routing, 7-Tage-Retention konfiguriert. Das "Warum Kafka" ist gut artikuliert: *"Das ist der Vorteil von Kafkas Architektur gegenüber klassischen Message Queues: kein Message Loss."* | |
| Was fehlt: Cluster-Erfahrung (Single-Broker-Setup), Kafka Streams, Schema Registry. Das ist One-Node-Kafka — produktiv, aber nicht Produktionsreif. | |
| ### Elasticsearch — Konzeptionell verstanden, praktisch noch Einsteiger | |
| Keeper verwendet Elasticsearch mit eigenem Analyzer (German Stemmer + ASCII-Folding), konfigurierten Shards und Replicas. Das Verständnis der Rolle ist klar: *"'Zeige mir alle Deals unter 50€ mit Rating > 4.0 sortiert nach Discount' ist eine Zeile in ES, aber ein komplexer Join in SQL."* | |
| Single-Node-Setup für Development — kein Cluster-Betrieb, keine Produktionserfahrung. Explizit selbst so eingestuft: "Beginner/Intermediate". | |
| ### Git und Linux — Tägliches Handwerk | |
| Pop!_OS mit COSMIC Desktop als tägliche Arbeitsumgebung, apt-Paketverwaltung, Systemhärtung, Kommandozeile. Git als Standard-Tool für alle Projekte. Keine Besonderheiten — aber solide Grundlage. | |
| ### Privacy und Security — Eine eigene Kategorie | |
| Ein unerwartetes, tiefes Interessensgebiet: Tor-Netzwerke, VPN-Konfiguration, VeraCrypt-Verschlüsselung, Tails OS, DNS-over-HTTPS, MAC-Adress-Randomisierung, Browser-Fingerprinting-Schutz, Kryptowährungsprivatsphäre (CoinJoin, Monero). | |
| Das Wichtigste dabei ist eine philosophische Grundhaltung: *"Anonymität beginnt nicht im Netz — sie beginnt im Kopf."* Und: *"Wissen ist kein Schutz. Verhalten ist Schutz."* | |
| --- | |
| ## Grundlagen (Beginner / Akademisch) | |
| ### UML — Konzepte klar, Notation in Entwicklung | |
| Software Engineering Kurs an der HS Worms: Alle 5 UML-Diagrammtypen des Kurses durchgearbeitet (Use Case, Activity, Class, Sequence, State). Konzepte verstanden — Notation noch fehleranfällig. | |
| Der zentrale Satz: *"Konzepte habe ich alle verstanden, aber einzelheiten nicht, notierung und feinheiten."* | |
| Ein konkreter Fehler: Ein Horizontal-Flow-Diagramm wurde als "Sequence Diagram" etikettiert, obwohl es ein Communication Diagram war. Inhalt korrekt, Label falsch. Wird mit der Zeit besser — braucht einfach mehr Übung mit Stift und Papier. | |
| ### Cloud Computing — Akademisch solide | |
| IaaS/PaaS/SaaS, die 5 Key Characteristics nach NIST, Public/Private/Hybrid/Community Cloud, Virtualisierung (VMs vs. Container). Korrekte Einordnung realer Dienste: Office 365 ist SaaS + Public Cloud, internes Sozialnetzwerk ist Private Cloud. Solides akademisches Fundament für praxisrelevante Architekturentscheidungen. | |
| ### NPU / Hardware-Level — Versucht, gescheitert, gelernt | |
| Das komplette Hexagon V73 Programmer's Reference Manual (Hardware-ISA-Dokumentation, 400K+ Zeichen) durchgearbeitet. Verständnis von QNN SDK, ONNX Runtime Execution Providers, CMAKE-Build-System für Hardware-Backends, ARM64 vs. x64 Kompatibilitätsmatrizen. | |
| Praktisch: Nichts funktioniert. Aber die Lektion ist klar: *"Hardware-Integration ist ein R&D-Task: Die Nutzung von LLM-Bibliotheken mit spezifischer, neuer Hardware sollte nicht als einfacher Implementierungsschritt betrachtet werden."* | |
| --- | |
| ## Woher gelernt? | |
| | Quelle | Was davon | | |
| |--------|-----------| | |
| | Hochschule Worms (Software Architecture, SE) | ADD 3.0, UML, Cloud Computing, Scrum, Design Patterns | | |
| | Eigene Projekte (Trial-and-Error) | Async Python, Kafka, Elasticsearch, FastAPI, Docker | | |
| | NotebookLM als Lernpartner | Strukturierte Examen-Vorbereitung, Architektur-Coaching | | |
| | Hardware-Dokumentation (Qualcomm) | NPU, QNN SDK, ARM64-Architektur | | |
| | Privacy-Handbook | Tor, VPN, VeraCrypt, Krypto-Privacy | | |
| | 6 Monate GenAI-Praxis | LLM-Integration, Provider-Abstraktion, API-Rate-Limiting | | |
| --- | |
| ## Luecken und Wachstumsfelder | |
| **Datenbankdesign** ist die klar identifizierte Lücke. Migrations (Alembic), Index-Optimierung, Schema-Evolution, normalisiertes Design — das alles existiert als Konzept, aber noch nicht als praktische Routine. *"Ich habe Angst vor diesen beiden sachen."* — Das ist der Ausgangspunkt. Angst benennen ist der erste Schritt. | |
| **UML-Notation** muss von konzeptuellem Verständnis zu Notations-Präzision wachsen. Das braucht Wiederholung mit echten Diagrammen, nicht nur Lesen. | |
| **Präsentations- und Zeitmanagement** — eine Probepräsentation war 3x zu lang. *"Ich bin Faktor 3 über der Zeit, daran muss ich arbeiten."* Die Diagnose ist richtig: Der Unterschied zwischen "alles erklären" und "das Entscheidende kommunizieren." | |
| **NPU / Hardware-Integration** — bleibt ein offenes Feld. Das Wissen ist angesammelt, die Umsetzung scheiterte an unreifer Toolchain. Wenn Qualcomm seine SDKs stabilisiert, ist der Wissensfundus vorhanden, um es erneut zu versuchen. | |
| **Cluster-Betrieb** (Kafka, Elasticsearch) — Produktions-Deployment mit mehreren Nodes ist konzeptuell bekannt, aber nicht praktisch erfahren. | |
| --- | |
| ## Tech-Stack-Evolution | |
| ``` | |
| Anfang Heute | |
| ------ ----- | |
| Python (Basics) → Python (Async Expert) | |
| Einzelne API-Calls → Multi-Provider mit Adapter Pattern | |
| Einzelne Skripte → 8-Service Docker-Compose-Systeme | |
| Kein Architektur-Framework → ADD 3.0, ADRs, QAW, 4+1 Views | |
| Lokaler Code → Event-Streaming mit Kafka | |
| SQL-Grundlagen → PostgreSQL + Elasticsearch (dual) | |
| "LLM verwenden" → LLM orchestrieren (LangGraph, Fallbacks) | |
| ``` | |
| Das Muster: Vom Einzeltool zum System-Denker. Von "es funktioniert" zu "warum funktioniert es, was kostet es, was passiert wenn es ausfällt." | |
| Der nächste Schritt ist sichtbar: von der Architekturplanung zur Implementierungssicherheit — besonders bei Datenbanken und Produktions-Deployment. | |
| --- | |
| *Quellen: Notebooks Keeper_Amazon, Keeper_System, AI_NPU_Agent, mAImory, Software_Architecture (SWA 506), SE_Fundamentals, Self_AI_V2, Digital_Anonym — analysiert am 2026-03-02.* | |