<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: firas lamouchi</title>
    <description>The latest articles on DEV Community by firas lamouchi (@firaslamouchi21).</description>
    <link>https://dev.to/firaslamouchi21</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3778371%2Fb3a81574-d040-4c0c-988f-9e96d4ce5542.jpeg</url>
      <title>DEV Community: firas lamouchi</title>
      <link>https://dev.to/firaslamouchi21</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/firaslamouchi21"/>
    <language>en</language>
    <item>
      <title>a job scraper that scores listings against your CV, because I was tired of checking ten job boards a day</title>
      <dc:creator>firas lamouchi</dc:creator>
      <pubDate>Sun, 06 Sep 2026 15:18:59 +0000</pubDate>
      <link>https://dev.to/firaslamouchi21/a-job-scraper-that-scores-listings-against-your-cv-because-i-was-tired-of-checking-ten-job-boards-5djp</link>
      <guid>https://dev.to/firaslamouchi21/a-job-scraper-that-scores-listings-against-your-cv-because-i-was-tired-of-checking-ten-job-boards-5djp</guid>
      <description>&lt;p&gt;Last year I was job hunting and every morning looked the same: open LinkedIn, open Indeed, open three other sites, skim fifty listings to find the three worth reading. So I built something to do that part for me.&lt;/p&gt;

&lt;p&gt;You give it your CV and some keywords. It searches whatever sites you tell it to, and scores every result 0-10 for how well it actually matches you — instead of you reading the whole thing to find out it wants five years of a framework that didn't exist five years ago.&lt;/p&gt;

&lt;p&gt;A few things I cared about while building it:&lt;/p&gt;

&lt;p&gt;AI scoring is optional, not required. Bring a Groq, Anthropic, or Gemini key and it scores with that. No key, no problem — it falls back to keyword matching automatically, still fully usable, still free.&lt;/p&gt;

&lt;p&gt;Your data stays on your machine. Everything lands in a local SQLite file you own. Nothing gets sent anywhere unless you explicitly turn on an AI key or a notification webhook.&lt;/p&gt;

&lt;p&gt;One command to run the whole thing. docker compose up --build and you have a dashboard at localhost:8501, a REST API at localhost:8000, and a database. No local Python setup.&lt;/p&gt;

&lt;p&gt;It's a Streamlit dashboard on top of a FastAPI backend, uses Playwright for the actual page fetching, and everything the UI does is also a REST endpoint, so you can script it instead of clicking through if that's more your speed.&lt;/p&gt;

&lt;p&gt;It found me a job, which is honestly the whole reason it exists. Now I'm cleaning it up so it's actually usable by other people, not just held together by whatever I needed that week. If you try it and something's broken, tell me — it's a solo project so far and every report helps.&lt;/p&gt;

&lt;p&gt;Repo: &lt;a href="https://github.com/firaslamouchi21/Job-Scraper02" rel="noopener noreferrer"&gt;https://github.com/firaslamouchi21/Job-Scraper02&lt;/a&gt;&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>opensource</category>
      <category>python</category>
      <category>ai</category>
    </item>
    <item>
      <title>Why I’m Dusting Off My 20-Year-Old Power Mac to Mine Crypto (And You Should Too)</title>
      <dc:creator>firas lamouchi</dc:creator>
      <pubDate>Tue, 17 Feb 2026 21:45:22 +0000</pubDate>
      <link>https://dev.to/firaslamouchi21/why-im-dusting-off-my-20-year-old-power-mac-to-mine-crypto-and-you-should-too-1ch7</link>
      <guid>https://dev.to/firaslamouchi21/why-im-dusting-off-my-20-year-old-power-mac-to-mine-crypto-and-you-should-too-1ch7</guid>
      <description>&lt;p&gt;Let’s be real: Crypto mining today is boring. Unless you have a warehouse full of noisy ASICs in a country with near-zero electricity costs, you’re basically priced out. It’s become an industrial game for the 1%, leaving the rest of us hobbyists with nothing but expensive electricity bills and empty wallets.&lt;/p&gt;

&lt;p&gt;But then I stumbled upon RustChain, and for the first time in years, I’m actually excited about a consensus mechanism. They call it Proof-of-Antiquity (PoA). It’s weird, it’s nostalgic, and it might just be the most "human" approach to blockchain I’ve seen.&lt;/p&gt;

&lt;p&gt;The "1 CPU = 1 Vote" Dream&lt;br&gt;
We’ve all heard the "decentralization" pitch before, but RustChain actually tries to force it. Their philosophy is simple: 1 CPU = 1 Vote.&lt;/p&gt;

&lt;p&gt;But how do you stop someone from spinning up 5,000 Virtual Machines on a massive server and faking a small army of computers? This is where the tech gets clever. RustChain uses something called Hardware Fingerprinting. The mining client (clawrtc) looks for specific silicon "quirks"—timing behaviors and instruction set responses that only exist on physical chips.&lt;/p&gt;

&lt;p&gt;Because of this Anti-emulation tech, you can't just "fake" an old processor. The network knows if you’re running on real, physical silicon or a cheap VM. This kills Sybil attacks dead and keeps the power in the hands of people who actually own hardware.&lt;/p&gt;

&lt;p&gt;Silicon Stratigraphy: Older is Better?&lt;br&gt;
This is my favorite part. In the eyes of RustChain, computing history is like Silicon Stratigraphy. Just like archaeologists find more value in deeper layers of the earth, RustChain finds more value in older layers of tech.&lt;/p&gt;

&lt;p&gt;They use Antiquity Multipliers to balance the scales. If you mine with a brand-new i9 or an M3 Mac, you get the base reward (1x). It’s efficient, but it’s "common."&lt;/p&gt;

&lt;p&gt;But, if you go to your attic and pull out that PowerPC G4 from 2002? You get a 2.5x multiplier. If you’ve got an old SPARC workstation or a 68k machine? You’re suddenly a "whale" in the network weight.&lt;/p&gt;

&lt;p&gt;Why I’m Digging Through My Basement&lt;br&gt;
It sounds crazy to say a 20-year-old chip is more "valuable" than a modern one, but it makes perfect sense for decentralization. By rewarding the "Antiquity" of the hardware, RustChain ensures that no single mining farm can just buy the latest tech and dominate the chain. It’s a brilliant way to:&lt;/p&gt;

&lt;p&gt;Save legendary hardware from ending up in a landfill (E-waste is a real problem).&lt;/p&gt;

&lt;p&gt;Incentivize a diverse network of architectures that ASICs can't touch.&lt;/p&gt;

&lt;p&gt;Actually have fun with crypto again.&lt;/p&gt;

&lt;p&gt;Final Thoughts&lt;br&gt;
RustChain isn't just another blockchain; it’s a tribute to the golden era of computing. It’s the only place where your "obsolete" tech is actually a VIP guest. I’m already setting up my old G4—it’s time to see what this "Proof-of-Antiquity" can really do.&lt;/p&gt;

&lt;p&gt;If you’ve got some old "iron" laying around, don’t let it rot.&lt;/p&gt;

&lt;p&gt;Check the project here: &lt;a href="https://rustchain.org/" rel="noopener noreferrer"&gt;https://rustchain.org/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Get the code: &lt;a href="https://github.com/Scottcjn/Rustchain" rel="noopener noreferrer"&gt;https://github.com/Scottcjn/Rustchain&lt;/a&gt;&lt;/p&gt;

</description>
      <category>blockchain</category>
      <category>rust</category>
      <category>retrocomputing</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
