<?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: Floran Pagliai</title>
    <description>The latest articles on DEV Community by Floran Pagliai (@floranpagliai).</description>
    <link>https://dev.to/floranpagliai</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F500013%2Ff96cad94-3c43-4d0c-bc18-a3ab6334700a.jpeg</url>
      <title>DEV Community: Floran Pagliai</title>
      <link>https://dev.to/floranpagliai</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/floranpagliai"/>
    <language>en</language>
    <item>
      <title>Scaling to 3 Billion Monthly API Requests Without Microservices: A Pragmatic DevOps Journey</title>
      <dc:creator>Floran Pagliai</dc:creator>
      <pubDate>Tue, 20 May 2025 16:36:07 +0000</pubDate>
      <link>https://dev.to/floranpagliai/scaling-to-3-billion-monthly-api-requests-without-microservices-a-pragmatic-devops-journey-40k9</link>
      <guid>https://dev.to/floranpagliai/scaling-to-3-billion-monthly-api-requests-without-microservices-a-pragmatic-devops-journey-40k9</guid>
      <description>&lt;p&gt;Hi, I’m Floran Pagliai, the first engineer and now CTO at Weglot. When I joined the company back in 2017, it was still an early-stage startup with just a couple of clients, an MVP coded in Silex, and a big ambition: to simplify website translation without requiring technical skills. Today, we handle over 3 billion API requests per month—and we do it with a monolith.&lt;/p&gt;

&lt;p&gt;Let me take you through our journey, and why I believe in the power of pragmatic, boring tech to achieve serious scale.&lt;/p&gt;




&lt;h2&gt;
  
  
  Joining Early, Building Foundations
&lt;/h2&gt;

&lt;p&gt;I came on board as the first developer when Weglot had just raised its seed round. The infrastructure was basic: Remy, our cofounder, was deploying code via FTP using FileZilla. Everything was hosted on a few load-balanced servers, and the app, API, and front-end were built on Silex.&lt;/p&gt;

&lt;p&gt;One of my first decisions was to migrate everything to Symfony and begin putting proper CI/CD pipelines in place. We also set up automated testing, started structuring the codebase, and prepared the platform to support growth.&lt;/p&gt;




&lt;h2&gt;
  
  
  One Billion Requests, One Endpoint
&lt;/h2&gt;

&lt;p&gt;Most of our API traffic goes through a single endpoint: &lt;code&gt;/translate&lt;/code&gt;. This endpoint is responsible for fetching, translating, and delivering content. To reduce the load on this critical path, we use Cloudflare to cache responses aggressively. Today, we cache nearly 55% of all traffic at the edge, which means 1.65 billion out of 3 billion monthly requests never hit our origin.&lt;/p&gt;

&lt;p&gt;It’s simple: if the response doesn’t change, don’t regenerate it.&lt;/p&gt;




&lt;h2&gt;
  
  
  No Microservices, No Regrets
&lt;/h2&gt;

&lt;p&gt;We still run a monolithic PHP/Symfony application. No microservices, no serverless sprawl. Why? Because we value mastery and pragmatism over trends.&lt;/p&gt;

&lt;p&gt;Everything lives in one codebase, deployed in a single pipeline. It makes reasoning about the system straightforward, it reduces overhead, and allows a small team to move fast. When I talk to engineers at other companies and tell them this, they’re surprised we scale this way. But it's working.&lt;/p&gt;

&lt;p&gt;We use MySQL hosted on AWS with Aurora, load balancers to distribute traffic around services, and Datadog for metrics and observability. That’s it. No Kubernetes, no event bus, no tech for tech's sake.&lt;/p&gt;




&lt;h2&gt;
  
  
  Lessons from Scale
&lt;/h2&gt;

&lt;p&gt;We’ve learned a few things on the way to billions of monthly requests:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Caching is your best friend.&lt;/strong&gt; Especially when working with expensive services like translation APIs ou LLMs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Latency matters.&lt;/strong&gt; We monitor every endpoint in Datadog to detect performance regressions early.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Simplicity wins.&lt;/strong&gt; Complexity slows you down. If you understand your stack deeply, you can do incredible things with it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cloud is worth it.&lt;/strong&gt; We embraced managed services from day one, which saved us countless ops headaches.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Looking Ahead
&lt;/h2&gt;

&lt;p&gt;That said, things evolve. We're now at a point where it makes sense to gradually break out parts of our monolith into services. We have the team, the tooling, and the operational maturity to take that step without compromising stability.&lt;/p&gt;

&lt;p&gt;Why now? Because we're preparing for our next wave of growth. Supporting larger enterprise clients, regionalized infrastructure, and global data compliance will easier with a more modular architecture.&lt;/p&gt;

&lt;p&gt;At Weglot, we scale with simplicity. And we’re proof that you don’t need to go micro to go big.&lt;/p&gt;




&lt;p&gt;If you have questions about scaling, simplicity, or PHP at scale, I’d love to chat. Drop a comment below or reach out!&lt;/p&gt;




&lt;p&gt;If you speak French, this post is extracted from this podcast:&lt;br&gt;
  &lt;iframe src="https://www.youtube.com/embed/07PsHqUz3vU"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>startup</category>
      <category>devops</category>
      <category>webdev</category>
      <category>symfony</category>
    </item>
    <item>
      <title>I Built CodeNudge: An AI Reviewer for Your GitHub Pull Requests</title>
      <dc:creator>Floran Pagliai</dc:creator>
      <pubDate>Sun, 27 Apr 2025 12:53:54 +0000</pubDate>
      <link>https://dev.to/floranpagliai/i-built-codenudge-an-ai-reviewer-for-your-github-pull-requests-1hbm</link>
      <guid>https://dev.to/floranpagliai/i-built-codenudge-an-ai-reviewer-for-your-github-pull-requests-1hbm</guid>
      <description>&lt;p&gt;Hey devs 👋&lt;/p&gt;

&lt;p&gt;Over the past few months, I’ve been working on a side project to solve a real pain I kept seeing in daily development:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Code reviews take too long.&lt;/li&gt;
&lt;li&gt;Important feedback sometimes gets missed.&lt;/li&gt;
&lt;li&gt;It slows down teams that want to move fast without sacrificing quality.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So I built CodeNudge, a lightweight AI reviewer that integrates directly with GitHub.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What CodeNudge does:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;PR Summaries: It automatically summarizes your pull requests so you can understand changes at a glance.&lt;/li&gt;
&lt;li&gt;AI Code Reviews: It provides contextual, line-by-line feedback — highlighting improvements, potential issues, or even code style suggestions.&lt;/li&gt;
&lt;li&gt;Contributor Insights: It gives you visibility on team contributions and reviews over time.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No need for complicated setups, you just connect your GitHub account and select the repositories you want to monitor.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why I built it&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I realized that most teams either:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Spend too much time reviewing every line manually (and end up fatigued), or&lt;/li&gt;
&lt;li&gt;Do superficial reviews just to keep things moving.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Neither of these really serves code quality or developer happiness.&lt;/p&gt;

&lt;p&gt;CodeNudge is meant to act like a friendly, tireless reviewer that helps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Speed up reviews,&lt;/li&gt;
&lt;li&gt;Surface important comments earlier,&lt;/li&gt;
&lt;li&gt;Let humans focus on higher-level discussions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What’s next&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We’re still in public beta right now, which means your feedback can help shape the product.&lt;/p&gt;

&lt;p&gt;I’m actively working on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;More advanced context on review&lt;/li&gt;
&lt;li&gt;Custom learnings&lt;/li&gt;
&lt;li&gt;More contributions insights&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Want to check it out?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;👉 Try &lt;a href="https://codenudge.dev" rel="noopener noreferrer"&gt;Codenudge&lt;/a&gt; (public beta is live!)&lt;/p&gt;

&lt;p&gt;Would love to hear:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What you think of the core idea?&lt;/li&gt;
&lt;li&gt;Would you use this in your workflow?&lt;/li&gt;
&lt;li&gt;Anything missing that would make it a no-brainer for your team?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Feel free to drop any questions or feedback in the comments! 🙌&lt;/p&gt;

</description>
      <category>ai</category>
      <category>saas</category>
      <category>showdev</category>
      <category>news</category>
    </item>
  </channel>
</rss>
