I'm Ahmed, a software engineer focused on building reliable web applications with PHP, Symfony, API Platform, clean architecture, and pragmatic engineering practices.
{
"Ahmed": {
"role": "Software Engineer",
"profile": {
"summary": "I build reliable, maintainable web applications with a strong focus on architecture, quality, security, and production constraints.",
"mindset": [
"Pragmatic engineering",
"Clean architecture",
"Hexagonal architecture",
"Domain-Driven Design",
"Maintainable code",
"Security-first thinking",
"Robust production delivery"
]
},
"what_i_work_on": {
"description": "I design and build scalable web applications, with a strong attention to maintainability, domain boundaries, automated checks, and production constraints. I particularly like **hexagonal architecture** and **Domain-Driven Design** when they help make the business model clearer.",
"principles": [
"Code that is easy to reason about",
"Code that respects domain boundaries",
"Code shaped by hexagonal architecture and DDD when the domain calls for it",
"Code that is easy to test",
"Applications robust enough to survive real usage"
],
"day_to_day": [
"PHP",
"Symfony",
"API Platform",
"Asynchronous processing",
"Search engines",
"CI/CD workflows",
"Technical audits",
"Quality audits",
"Security audits",
"Performance audits"
]
},
"open_source": {
"api_platform": {
"role": "Active contributor",
"url": "https://api-platform.com/community/contributors/ahmed-bhs/"
},
"symfony": {
"role": "Contributor to features and documentation",
"profile": "https://connect.symfony.com/profile/famas23"
}
},
"projects": {
"doctrine_doctor": {
"name": "Doctrine Doctor",
"focus": "Doctrine and Symfony tooling for detecting ORM issues and improving persistence-layer quality",
"topics": [
"Doctrine ORM",
"Symfony",
"Static analysis",
"Performance",
"Developer experience"
],
"repository": "https://github.com/ahmed-bhs/doctrine-doctor"
},
"pyra": {
"name": "Pyra",
"focus": "Project maintained by Ahmed around pragmatic tooling and software quality",
"topics": [
"Tooling",
"Automation",
"Software quality"
],
"repository": "https://github.com/ahmed-bhs/pyra"
}
},
"stack": {
"back_end": [
"PHP",
"Symfony",
"API Platform",
"eZ Platform",
"Async queuing"
],
"front_end": [
"HTML5",
"CSS3",
"jQuery",
"Angular",
"Bootstrap"
],
"search": [
"Elasticsearch",
"Solr"
],
"practices": [
"SOLID",
"DRY",
"KISS",
"YAGNI",
"Separation of Concerns",
"Design patterns",
"Clean architecture",
"Hexagonal architecture",
"Domain-Driven Design",
"CI/CD",
"Audits"
]
},
"engineering_principles": {
"code_design": [
"SOLID principles",
"SRP - Single Responsibility Principle",
"OCP - Open/Closed Principle",
"LSP - Liskov Substitution Principle",
"ISP - Interface Segregation Principle",
"DIP - Dependency Inversion Principle",
"DRY - Don't Repeat Yourself",
"KISS - Keep It Simple",
"YAGNI - You Aren't Gonna Need It",
"Separation of Concerns",
"Composition over inheritance",
"High cohesion and low coupling",
"Program to an interface, not an implementation",
"Interface-driven design",
"Explicit boundaries",
"Tell, Don't Ask",
"Law of Demeter",
"Fail fast",
"Principle of least astonishment",
"Information hiding",
"Encapsulation",
"Prefer immutability for value objects",
"Avoid temporal coupling",
"Avoid primitive obsession",
"Make dependencies explicit"
],
"architecture": [
"Clean architecture",
"Hexagonal architecture",
"Domain-Driven Design",
"Layered architecture when it fits",
"Ports and adapters",
"Dependency inversion",
"Dependency rule",
"Stable dependencies principle",
"Stable abstractions principle",
"Acyclic dependencies principle",
"Bounded contexts",
"Ubiquitous language",
"CQRS when the problem justifies it"
],
"quality": [
"Testing pyramid",
"Fast feedback loops",
"Automated checks",
"Static analysis",
"Code reviews",
"Refactoring discipline",
"Observability",
"Performance awareness",
"Security by design"
],
"maintainability": [
"Reduce cognitive load",
"Prefer readability over cleverness",
"Make invalid states hard to represent",
"Use clear naming",
"Keep business rules close to the domain",
"Avoid accidental complexity",
"Document decisions, not obvious code"
]
},
"patterns": {
"creational": [
"Factory Method",
"Abstract Factory",
"Builder",
"Prototype",
"Singleton when framework-managed and justified"
],
"structural": [
"Adapter",
"Bridge",
"Composite",
"Decorator",
"Facade",
"Proxy",
"Data Transfer Object"
],
"behavioral": [
"Strategy",
"Command",
"Observer",
"Mediator",
"State",
"Specification",
"Template Method",
"Chain of Responsibility",
"Iterator",
"Null Object"
],
"enterprise_application": [
"Repository",
"Service Layer",
"Application Service",
"Domain Service",
"Unit of Work",
"Data Mapper",
"Identity Map",
"Value Object",
"Aggregate",
"Domain Event",
"CQRS",
"Event Dispatcher"
],
"php_and_symfony": [
"DTO",
"ArrayIterator",
"ArrayAccess",
"Accessor",
"Normalizer",
"Serializer",
"Form Type",
"Event Subscriber",
"Event Listener",
"Compiler Pass",
"Service Decorator",
"Message Handler",
"Voter",
"Constraint Validator"
],
"testing": [
"Test Double",
"Mock",
"Stub",
"Fake",
"Fixture",
"Mother Object",
"Builder for tests"
]
},
"certifications": [
"Certified Symfony Developer",
"Certified eZ Platform Developer"
],
"security": {
"platform": "Root Me",
"profile": "https://www.root-me.org/ahmed-36606",
"interest": "Cybersecurity challenges and security-aware development"
},
"connect": {
"github": "https://github.com/ahmed-bhs",
"twitter": "https://twitter.com/AhmedEHASSINE"
}
}
}









