Développement
sur mesure
Applications web et API conçues pour durer. Architecture pensée dès le départ, tests automatisés, documentation vivante. Pas de dette technique accumulée.
Je conçois des logiciels durables, maintenables et élégants — parce que la qualité n'est pas optionnelle et que chaque ligne de code est un acte d'artisanat.
Applications web et API conçues pour durer. Architecture pensée dès le départ, tests automatisés, documentation vivante. Pas de dette technique accumulée.
Conception de systèmes évolutifs et résilients. DDD, Clean Architecture, micro-services ou monolithe modulaire — selon vos vrais besoins, pas les tendances.
Regard externe et bienveillant sur votre base de code. Identification des risques, de la dette technique, des failles de sécurité. Livrable actionnable, pas un rapport PDF oublié.
Montée en compétences de vos équipes sur les pratiques craft : TDD, refactoring, pair programming, clean code. En présentiel à Lyon ou en remote.
// craftcodes/domain/project.ts export class Project { private readonly events: DomainEvent[] = [] static create(props: ProjectProps): Project { Guard.againstNull(props.name, 'name') Guard.minLength(props.name, 'name', 3) const project = new Project(props) project.events.push( new ProjectCreated(project.id) ) return project } addFeature(feat: Feature): void { if (this.isFrozen()) { throw new DomainError( 'Cannot add to frozen project' ) } this.features.push(feat) } } // Un domaine qui se défend.
CraftCodes, c'est moi — développeur freelance lyonnais, auto-entrepreneur, convaincu que la qualité du code est une responsabilité professionnelle, pas un luxe. J'interviens seul ou en renfort d'équipe, en mission ou en projet.
TDD comme boussole de conception, pas comme case à cocher. Des tests qui documentent l'intention, pas l'implémentation.
La règle du boy scout : je laisse le code plus propre qu'à mon arrivée. La dette technique se rembourse au fil de l'eau.
Pair programming, revues de code bienveillantes, partage de connaissance. Je m'intègre naturellement à vos équipes existantes.
Parlons de vos ambitions,
pas seulement de vos
contraintes.