- Germany
- https://abdullahkhdir.me/
-
Developer
-
Joined on
2026-07-19
Hi 👋, I'm Abdullah Khdir
A Syrian passionate full stack and software developer living in Germany
🔭 I’m currently working in Telecom on Tool for Organizing, managing, archiving and arranging company contracts
🌱 I’m currently learning and building a Framework using Node & Express JS Express, Node JS
👯 I’m looking to collaborate on Node JS Projects
🤝 I’m looking for help with building an infrastructure (Framework) using Node JS Technology Node JS
🦊 Most of my current development work is hosted in private Forgejo repositories: View my Forgejo profile
👨💻 All of my projects are available at Github Projects
📝 I regularly fork interesting projects Forked projects
💬 Ask me about React, PHP (Laravel), Node, Express, Java (Swing), C++, C# (WPF)
📫 How to reach me AbdullKhdir@gmail.com
📄 Know about my experiences
English: CV
Deutsch: Lebenslauf
⚡ Website Web
My Skills
I ❤ Open Source.
Code Principles
Practical principles used to keep the codebase simple, readable, maintainable, and scalable.
🟢 1. KISS — Keep It Simple, Stupid
Prefer the simplest solution that solves the real problem.
Avoid unnecessary complexity, clever abstractions, or systems that are bigger than the actual requirement.
🟢 2. YAGNI — You Aren’t Gonna Need It
Do not build features, abstractions, or architecture before they are actually needed.
Build for the current real use case first, then extend when there is a proven reason.
🟡 3. DRY — Don’t Repeat Yourself
Avoid duplicating the same logic in multiple places.
Shared logic should usually live in a function, helper, component, hook, service, or config.
Note: Do not force abstraction too early. A little duplication is sometimes better than a bad abstraction.
🟢 4. Readable > Clever
Prefer code that is easy to understand over code that is smart but confusing.
Code is read more often than it is written, so clarity is more valuable than clever tricks.
🔵 5. Separation of Concerns
Keep different responsibilities separated.
Examples:
- UI components render layout and visuals.
- Hooks manage state and reusable behavior.
- Services handle API calls.
- Utilities handle pure reusable logic.
- Config files store shared constants and settings.
🔵 6. Single Source of Truth
Important data, configuration, routes, translations, theme values, and shared constants should live in one trusted place.
Avoid manually copying the same value across multiple files.
🔵 7. Composition over Inheritance
Build behavior by combining small, focused pieces instead of creating deep inheritance chains.
This is especially useful in React, where components can be composed together cleanly.
🟣 8. SOLID
SOLID is a group of object-oriented design principles used to create flexible and maintainable code.
S — Single Responsibility Principle
A class, module, function, or component should have one clear responsibility.
O — Open/Closed Principle
Code should be open for extension but closed for unnecessary modification.
L — Liskov Substitution Principle
A subtype should be usable wherever its parent type is expected.
I — Interface Segregation Principle
Do not force code to depend on methods or properties it does not use.
D — Dependency Inversion Principle
Depend on abstractions instead of concrete implementations when it makes the code easier to change or test.
🟠 9. Fail Fast
Detect invalid state early and throw clear errors.
It is better to fail with a clear message than to continue with broken data and crash later in a confusing place.
🟠 10. Principle of Least Surprise
Code should behave the way another developer expects based on its name, structure, and purpose.
Example:
A function named getUser() should not delete, update, or mutate the user.
🔴 11. Avoid Premature Optimization
Do not make code complex for performance reasons before there is a real measured bottleneck.
First make it correct.
Then make it readable.
Then optimize only where needed.