I'm a software developer studying at 42 Firenze, driven by one thing: understanding how things really work under the hood.
Before 42, I spent 3 years working in a professional dev team on Raven ECMS β an enterprise banking platform used by international financial institutions. That experience showed me how real software is built: Agile workflows, working alongside business analysts, and shipping in production environments.
But I realized I wanted deeper foundations. So I joined 42 Firenze β no teachers, no lectures, just you, the problem, and your peers. It's the hardest and most honest way to learn programming.
Alongside systems programming, I've been going deep on AI-assisted development β not using AI as a shortcut, but learning to orchestrate it properly: writing specs, building pipelines, and always knowing what the code is actually doing.
This is where I've invested seriously over the past year. I don't use AI to generate code I don't understand β I use it as a force multiplier when I already know what I want to build.
- Multi-agent pipelines with Claude Code: parallel/sequential subagents with specialized roles (Explore, Plan, Execute)
- Custom Skills with context-based auto-invocation β pattern matching, progressive disclosure
- MCP Server integrations: Playwright, PostgreSQL, GitHub, Notion β full end-to-end automation
- Slash Commands for repeatable git-integrated workflows
- BridgeEye β a Telegram bot that fetches live crypto market data and uses Claude to reason through technical analysis for users
- Morpheus β an AI voice agent integrated into my portfolio site (ElevenLabs + custom prompt engineering), designed to qualify visitors conversationally
- Write
CLAUDE.mdfiles to define project conventions, agent routing, and context rules - Orchestrate with Opus, execute with Sonnet β cost-aware model selection
- Use Hooks for event-driven automation
- Manage context windows intentionally β no sloppy prompting
I build clean, well-crafted websites for clients β with a focus on design quality, performance, and custom code over templates.
| Project | Description | Stack |
|---|---|---|
| achrafaamiri.dev | Personal portfolio with AI voice agent | HTML, CSS, JS, ElevenLabs |
| Residenze Toscane | Real estate demo β listings, filters, Florentine design | WordPress, Custom Theme |
| Wedding Photographer | Split-hero portfolio with editorial layout | HTML, CSS, JS |
| Web Agency "DEPTH" | Full agency landing page with water ripple effect | HTML, CSS, JS |
- Build responsive layouts with HTML5 + CSS3 β no framework shortcuts
- Design interfaces in Figma before writing a single line
- Write clean CSS using Grid and Flexbox from scratch
- Deploy on Vercel and Railway
- Integrate AI agents and voice interfaces into web products
42 Firenze is where I'm building my strongest foundations β the kind of programming most developers never touch.
- C programming and memory management
- Pointers, data structures, and dynamic allocation
- Algorithms and sorting complexity
- Unix/Linux processes and file descriptors
- Clean, modular code reviewed by peers β no bad code survives
I'm following an intensive Flutter course (~15h/week), exploring cross-platform mobile development.
- Dart language and OOP principles
- Flutter widget system and layouts
- State management with Riverpod
- Firebase: Authentication, Firestore, Storage
- REST API integration
| Project | Description | Status |
|---|---|---|
| 42libft | Custom C standard library from scratch | β Done |
| ft_printf | Custom printf implementation | β Done |
| Get Next Line | File I/O line reader in C | β Done |
| Born2beRoot | Linux server setup & administration | β Done |
| Push Swap | Stack-based sorting algorithm | π In progress |
- Completing Push Swap at 42 Firenze
- Building a real estate website for Florence with custom design
- Learning Flutter and building my first mobile app
- Deepening AI agent architecture β better pipelines, better specs
"The best way to understand something is to build it from scratch." π