<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Ayoub Fakir</title>
    <link>/</link>
    <description>Recent content on Ayoub Fakir</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Wed, 29 Apr 2026 18:09:41 +0200</lastBuildDate>
    <atom:link href="/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>About</title>
      <link>/about/</link>
      <pubDate>Fri, 09 Apr 2021 00:00:00 +0000</pubDate>
      <guid>/about/</guid>
      <description>&lt;p&gt;Hi! I&amp;rsquo;m Ayoub, a Senior Data Engineer absolutely passionate about data technologies. I mainly work on Distributed Systems (Hadoop / Kubernetes / Cloud Technologies), Functional Programming (Haskell / Scala / Clojure), Rust, and Blockchain Technologies (Ethereum / Bitcoin / Hyperledger, and more recently got into the Polkadot ecosystem).&lt;/p&gt;
&lt;p&gt;I do consulting as well as teaching (Paris 12 University).&lt;/p&gt;
&lt;p&gt;You can contact me to say Hi, to talk about your projects or to hire me: ayoub[at]fakir.dev&lt;/p&gt;</description>
    </item>
    <item>
      <title>[FR] Passer de EMR vers Kubernetes pour les workloads Spark</title>
      <link>/post/fr-passer-de-emr-vers-kubernetes-pour-les-workloads-spark/</link>
      <pubDate>Thu, 18 Feb 2021 04:26:07 +0200</pubDate>
      <guid>/post/fr-passer-de-emr-vers-kubernetes-pour-les-workloads-spark/</guid>
      <description>&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;AWS EMR est un service AWS largement utilisé principalement pour le traitement des données massives avec Apache Spark dans un Cluster Hadoop dédié. Au-delà de sa fonction principale, EMR embarque un bon nombre d&amp;rsquo;outils open-source, certains pour le monitoring (Ganglia), et d&amp;rsquo;autres pour le requêtage des données (Hive). Plus d&amp;rsquo;informations peuvent être trouvées par &lt;a href=&#34;https://docs.aws.amazon.com/fr_fr/emr/latest/ManagementGuide/emr-what-is-emr.html&#34;&gt;ici&lt;/a&gt;.
Dépendamment du contexte, EMR peut être utilisé soit en tant qu&amp;rsquo;instance d&amp;rsquo;un cluster éphémère (par exemple en lançant un Cluster tous les 6 heures pour exécuter des jobs Spark), soit en tant que cluster permanent. C&amp;rsquo;est le cas notamment lorsque celui-ci est utilisé par plusieurs équipes, fait tourner des jobs de streaming ou lorsque l&amp;rsquo;attente de son instanciation est plus coûteuse que de le laisser tourner de manière permanente.
Cet article n&amp;rsquo;est pas nécessairement un texte pour comparer EMR à Kubernetes vu que les deux ne répondent pas aux mêmes besoins. Kubernetes s&amp;rsquo;impose de plus en plus aujourd&amp;rsquo;hui pour des raisons diverses et variées, et Spark supporte Kubernetes comme Scheduler et Resources Manager nativement, donc ça aurait été dommage de ne pas s&amp;rsquo;y pencher.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[EN] Migrating from a plain Spark Application to ZparkIO</title>
      <link>/post/en-migrating-from-a-plain-spark-application-to-zparkio/</link>
      <pubDate>Fri, 16 Oct 2020 10:36:00 +0200</pubDate>
      <guid>/post/en-migrating-from-a-plain-spark-application-to-zparkio/</guid>
      <description>&lt;h1 id=&#34;migrating-from-a-plain-spark-application-to-zio-with-zparkio&#34;&gt;Migrating from a plain Spark Application to ZIO with ZparkIO&lt;/h1&gt;
&lt;p&gt;In this article, we&amp;rsquo;ll see how you can migrate your Spark Application into &lt;a href=&#34;https://zio.dev&#34;&gt;ZIO&lt;/a&gt; and &lt;a href=&#34;https://github.com/leobenkel/ZparkIO&#34;&gt;ZparkIO&lt;/a&gt;, so you can benefit from all the wonderful features that ZIO offers and that we&amp;rsquo;ll be discussing.&lt;/p&gt;
&lt;h2 id=&#34;what-is-zio&#34;&gt;What is ZIO?&lt;/h2&gt;
&lt;p&gt;ZIO is defined, according to official documentation as &lt;strong&gt;a library for asynchronous and concurrent programming that is based on pure functional programming.&lt;/strong&gt; In other words, ZIO helps us write code with type-safe, composable and easily testable code, all by using safe and side-effect-free code.
&lt;strong&gt;ZIO is a data type&lt;/strong&gt;. Its signature, &lt;em&gt;ZIO[R, E, A]&lt;/em&gt; shows us that it has three parameters:&lt;/p&gt;</description>
    </item>
    <item>
      <title>[EN] Building a CI/CD pipeline for a Spark project using Github Actions, SBT and AWS S3 — Part 2</title>
      <link>/post/en-building-a-ci/cd-pipeline-for-a-spark-project-using-github-actions-sbt-and-aws-s3-part-2/</link>
      <pubDate>Wed, 29 Apr 2020 13:01:24 +0200</pubDate>
      <guid>/post/en-building-a-ci/cd-pipeline-for-a-spark-project-using-github-actions-sbt-and-aws-s3-part-2/</guid>
      <description>&lt;p&gt;In the &lt;a href=&#34;https://medium.com/alterway/building-a-ci-cd-pipeline-for-a-spark-project-using-github-actions-sbt-and-aws-s3-part-1-c7d43658832d&#34;&gt;first article&lt;/a&gt; of this series, we talked about how we can set up a CI/CD pipeline for a Spark project using Github Actions, SBT as a build tool and S3 for deployment. Our code once pushed to the [master] branch of our project on Github, triggered an SBT Build command to generate a fat jar, then pushed it to S3 to the chosen bucket.&lt;/p&gt;
&lt;p&gt;However, this pipeline still lacks a way to add a logic since it does not allow us to check whether the jar’s version we’re putting to S3 already exists for instance.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[EN] CI/CD pipeline using Github Actions, SBT and AWS S3 - Part 1</title>
      <link>/post/en-ci/cd-pipeline-using-github-actions-sbt-and-aws-s3-part-1/</link>
      <pubDate>Wed, 08 Apr 2020 04:35:59 +0200</pubDate>
      <guid>/post/en-ci/cd-pipeline-using-github-actions-sbt-and-aws-s3-part-1/</guid>
      <description>&lt;p&gt;Github now allows us to build continuous integration and continuous deployment workflows for our Github Repositories thanks to Github Actions, for almost all Github plans.&lt;/p&gt;
&lt;p&gt;In this tutorial, we’re going to go through building a CI/CD pipeline based on a Scala / Spark project. We will be using SBT, the Scala Build Tool, which will allow us to get a jar that we’re then going to deploy to AWS S3 using a custom Github Action.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[EN] On Minimalistic Teaching</title>
      <link>/post/en-on-minimalistic-teaching/</link>
      <pubDate>Thu, 06 Feb 2020 10:00:37 +0200</pubDate>
      <guid>/post/en-on-minimalistic-teaching/</guid>
      <description>&lt;p&gt;&lt;strong&gt;First…&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The education system today is experiencing a lot of challenges and has many issues around the world, and at all levels. That said, the “education problem” being a huge subject, we can only solve it by addressing small problems, one at a time, and the sum of all of these solutions may lead us to solving the bigger issue. For instance, one of the issues in higher education is that a teacher is either academic or professional; the former has a theoretical focus ― and does not teach students how to tackle real world problems based on what she teaches them ―, whereas the latter is more focused on practical applications ― and might not have the pedagogical tools or know-how. By tackling seemingly small problems like this one, we can hope to find small solutions; the sum of these puts us on the pathway to solving the bigger problem: how can we give tertiary students what they truly need to succeed in their post-graduation lives?&lt;/p&gt;</description>
    </item>
    <item>
      <title>[FR] Le Bitcoin Expliqué à ma mère</title>
      <link>/post/fr-le-bitcoin-expliqu%C3%A9-%C3%A0-ma-m%C3%A8re/</link>
      <pubDate>Thu, 08 Nov 2018 04:26:07 +0200</pubDate>
      <guid>/post/fr-le-bitcoin-expliqu%C3%A9-%C3%A0-ma-m%C3%A8re/</guid>
      <description>&lt;p&gt;Aujourd’hui, ma mère me parle du fait que l’un de ses élèves en école primaire lui ait parlé d’une grande « révolution » nommée Bitcoin. « Mais c’est quoi ce truc qui va tuer les banques ?» s’est-elle étonnée.&lt;/p&gt;
&lt;p&gt;C’est pour cette raison même que j’ai décidé d’expliquer le Bitcoin à travers cet article à ma mère, ainsi que toutes les mamans qui pourraient consulter cet article !&lt;/p&gt;
&lt;p&gt;Vois-tu, maman, une grande majorité de ceux qui connaissent les principes derrière le Bitcoin sont des geeks anti-sociaux qui ne parlent que binaire, et dénigrent tous ceux qui ne le connaissent pas ; j’en ai fait partie à une époque, avant de me rendre compte que la cravate, ça m’allait bien aussi !&lt;/p&gt;</description>
    </item>
    <item>
      <title>[EN] 10&#43; Great Books for Functional Programming in Scala</title>
      <link>/post/en-10-great-books-for-functional-programming-in-scala/</link>
      <pubDate>Fri, 17 Mar 2017 05:47:36 +0200</pubDate>
      <guid>/post/en-10-great-books-for-functional-programming-in-scala/</guid>
      <description>&lt;p&gt;This article was co-authored by &lt;a href=&#34;https://blog.matthewrathbone.com/&#34;&gt;Matthew Rathbone&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;img&#34; loading=&#34;lazy&#34; src=&#34;https://d33wubrfki0l68.cloudfront.net/4b8a4dcbce3e4561018d5f8e84d92e8b5f05563d/f25fa/img/blog/scala-books/title.jpg&#34;&gt;&lt;/p&gt;
&lt;p&gt;image by &lt;a href=&#34;https://www.flickr.com/photos/thomasleuthard/19070717313&#34;&gt;Thomas Leuthard&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;James Gosling, creator of Java, said:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;“If I were to pick a language to use today other than Java, it would be Scala.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Scala is a &lt;em&gt;hot&lt;/em&gt; language in software development today, it is used by a range of start-ups for application development and has been adopted as the unofficial language of big data software development thanks to frameworks like Spark. As a language it is less verbose than Java, and has a number of unique features that make it more flexible too. Scala is both functional, object oriented, and truly multi-threaded – so it provides a very unique development environment. There’s so much to Scala that whatever stage of programming you’re at, you’ll probably want some books!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Why combine asynchronous and distributed calculations to tackle the biggest data quality challenges</title>
      <link>/post/why-combine-asynchronous-and-distributed-calculations-to-tackle-the-biggest-data-quality-challenges/</link>
      <pubDate>Fri, 17 Mar 2017 05:47:36 +0200</pubDate>
      <guid>/post/why-combine-asynchronous-and-distributed-calculations-to-tackle-the-biggest-data-quality-challenges/</guid>
      <description>&lt;p&gt;Article co-authored by Martin Delobel and available on &lt;a href=&#34;https://medium.com/decathlondigital/why-combine-asynchronous-and-distributed-calculations-to-tackle-the-biggest-data-quality-challenges-2e04dfc51401&#34;&gt;Medium&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[EN] 10&#43; Great Books for Apache Spark</title>
      <link>/post/en-10-great-books-for-apache-spark/</link>
      <pubDate>Fri, 13 Jan 2017 05:45:12 +0200</pubDate>
      <guid>/post/en-10-great-books-for-apache-spark/</guid>
      <description>&lt;p&gt;This article was co-authored by &lt;a href=&#34;https://blog.matthewrathbone.com/&#34;&gt;Matthew Rathbone&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;img&#34; loading=&#34;lazy&#34; src=&#34;https://d33wubrfki0l68.cloudfront.net/8177dc9c6ec5935b75460f41e29cecfebe9a5c20/2662a/img/blog/books.jpg&#34;&gt;&lt;/p&gt;
&lt;p&gt;image by &lt;a href=&#34;https://unsplash.com/photos/eeSdJfLfx1A&#34;&gt;Ed Robertson&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Apache Spark is a super useful distributed processing framework that works well with Hadoop and YARN. Many industry users have reported it to be 100x faster than Hadoop MapReduce for in certain memory-heavy tasks, and 10x faster while processing data on disk.&lt;/p&gt;
&lt;p&gt;While Spark has incredible power, it is not always easy to find good resources or books to learn more about it, so I thought I’d compile a list. I’ll keep this list up to date as new resources come out.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[EN] The Truth Behind the Bigdata Buzz Word</title>
      <link>/post/en-the-truth-behind-the-bigdata-buzz-word/</link>
      <pubDate>Mon, 10 Oct 2016 04:27:41 +0200</pubDate>
      <guid>/post/en-the-truth-behind-the-bigdata-buzz-word/</guid>
      <description>&lt;h2 id=&#34;big-datareally&#34;&gt;Big Data…Really?&lt;/h2&gt;
&lt;p&gt;Few years ago, I had a discussion with a mentor of mine about the career path I wanted to pursue, and I said: &amp;ldquo;Look, Big Data is something really great, and I want to become a Big Data Engineer later on!&amp;rdquo;, and his answer was: &amp;ldquo;Okay, but be cautious, Big Data is not a revolution, and just like the &amp;ldquo;Cloud&amp;rdquo;, marketers have done their jobs&amp;rdquo;. I didn&amp;rsquo;t trust his words back then, and&amp;hellip; You bet! He was right!&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
