pour le journalisme.
code pour rédactions d'investigation · journalisme de données · OSINT · recherche en droits humains
Huit ans à contribuer au reportage d'investigation pour le Yomiuri Shimbun, le Financial Times, le Guardian et Amnesty International Turquie — puis je me suis mis à écrire du Python. Je construis aujourd'hui des outils pour les rédactions et les organisations de défense des droits humains : pipelines OSINT, parseurs de documents publics, analyses de graphe sur des données institutionnelles. Les instincts sont les mêmes ; la sortie est du code.
[01] batu@batu0:~/for-journalism/past-engagements
- EuroMed Rights (Contrat, nov. 2023 – mai 2024, Copenhague/distance) — ingénierie de données pour le programme de recherche sur l'indépendance judiciaire ; extension du pipeline BitzeOOP en livrables ayant alimenté deux rapports d'investigation publiés.
- Amnesty International Turquie (oct. 2019 – sept. 2023) — Officier du programme d'observation des procès. Quatre ans à assister à des audiences sur la liberté d'expression, la liberté de la presse et l'impunité ; rapports détaillés, liaison avocats, articles explicatifs publiés.
- P24 Independent Journalism Foundation (juin 2019 – févr. 2021) — 1 des 4 lauréats de la bourse. Enquête sur l'industrie du taxi à Istanbul via 50+ demandes FOI auprès de 8 institutions étatiques ; publié dans T24, présenté dans un documentaire YouTube.
- Yomiuri Shimbun, QG du Caire (nov. 2015 – déc. 2018) — Consultant Turquie & Moyen-Orient. Reportages sur les développements politiques, économiques et culturels ; interviews dans des conditions de coup d'État, post-attentat et état d'urgence.
[02] batu@batu0:~/for-journalism/tooling
- BitzeOOP — 60 000+ nominations judiciaires turques sur 13 ans, normalisées depuis des journaux officiels PDF/CSV désordonnés en historiques de carrière par personne. Graphe Neo4j de personnes / postes / nominations / lieux ; analyse des transitions et détection d'anomalies. A alimenté 2 rapports d'EuroMed Rights.
- Court Files Parser — extraction de 4 ans de comptes rendus d'audiences et d'actes d'accusation depuis une archive de journalisme libre ; export crimes / juges / procureurs en CSV pour analyse en aval.
- Jurisprudence Pipeline — pipeline complet sur 8M+ décisions de la Cour de cassation turque et 12K décisions de la Cour constitutionnelle : scrapers, normaliseurs et opérations NLP (TensorFlow + NLTK + scikit-learn + pytesseract) pour catégorisation, modélisation thématique et enrichissement de texte.
- Scraper de stats de performance des députés — scraper du site du parlement turc extrayant propositions de questions, propositions de recherche, questions parlementaires et CV de députés ; pipelines d'items agrégeant des pages parallèles.
- TBMM Observation Engine (janv. – avr. 2025) — pipeline d'observation de la Grande Assemblée nationale turque lisant le compte-rendu parlementaire quotidien (tutanak). Scrapy avec middleware Puppeteer ; ~68 commits. Successeur du scraper de stats des députés ci-dessus — même cible, périmètre plus large.
- Scraper d'archives de presse — crawl de sites d'actualités en remontant le temps dans une base de données pour archivage et recherche.
[03] batu@batu0:~/for-journalism/how-i-collaborate
Le travail que je prends : pipelines OSINT ponctuels liés à une enquête spécifique, construction d'outils internes pour les besoins de données récurrents d'une rédaction, missions stringer-avec-Python (je trouve l'histoire et je bâtis l'échafaudage), et conseil pour des organisations de défense des droits humains qui ont besoin d'une expertise d'ingénierie sans embauche à plein temps. Je lis aussi le turc et j'ai un ottoman de bas niveau, ce qui compte pour les sources judiciaires et archivistiques.
Tous les outils ci-dessus peuvent aussi être réutilisés pour des besoins d'ingénierie plus larges. Voir la page /hire pour le travail backend et systèmes LLM.