<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Tropeçando &#8211; Rafael Bernard Araujo</title>
	<atom:link href="https://rafael.bernard-araujo.com/categoria/internet/tropecando-internet/feed" rel="self" type="application/rss+xml" />
	<link>https://rafael.bernard-araujo.com</link>
	<description>desenvolvendo... while(!success){  try(); }</description>
	<lastBuildDate>Mon, 18 May 2026 00:04:48 +0000</lastBuildDate>
	<language>pt-BR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
<site xmlns="com-wordpress:feed-additions:1">21941730</site>	<item>
		<title>Tropeçando 120</title>
		<link>https://rafael.bernard-araujo.com/tropecando-120.php</link>
					<comments>https://rafael.bernard-araujo.com/tropecando-120.php#respond</comments>
		
		<dc:creator><![CDATA[rafael]]></dc:creator>
		<pubDate>Mon, 18 May 2026 00:02:13 +0000</pubDate>
				<category><![CDATA[Tropeçando]]></category>
		<category><![CDATA[ai]]></category>
		<category><![CDATA[container]]></category>
		<category><![CDATA[developer experience]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[machine learning]]></category>
		<category><![CDATA[software architecture]]></category>
		<category><![CDATA[software engineering]]></category>
		<guid isPermaLink="false">https://rafael.bernard-araujo.com/?p=2363</guid>

					<description><![CDATA[AI Management &#38; Organizational Restructuring The Foreman Problem: Managing Teams When Your Best Worker Isn't Human - Willian Correa Every major technology shift invented a new management role. Steam power → foreman. Office computing → project manager. Internet → product manager. AI is doing the same, but this time the failure mode is invisible: confident, [&#8230;]]]></description>
										<content:encoded><![CDATA[<h3>AI Management &amp; Organizational Restructuring</h3>
<p><a href="https://businessasusual.io/p/the-foreman-problem-managing-teams">The Foreman Problem: Managing Teams When Your Best Worker Isn't Human</a> - Willian Correa</p>
<blockquote>
<p>Every major technology shift invented a new management role. Steam power → foreman. Office computing → project manager. Internet → product manager. AI is doing the same, but this time the failure mode is invisible: confident, polished, wrong output. The new job is not directing effort but verifying that things that <em>look</em> like they're running actually are.</p>
</blockquote>
<p><a href="https://theengineeringmanager.substack.com/p/who-will-be-the-senior-engineers">Who Will Be the Senior Engineers of 2035?</a> - James Stanier</p>
<blockquote>
<p>The traditional junior-to-senior pipeline is breaking: entry-level tech postings down 67% since 2022, junior employment down ~20%. Firms adopting AI saw junior employment fall 7.7% vs non-adopters. 54% of engineering leaders plan to hire fewer juniors.</p>
</blockquote>
<h3>Compound Engineering &amp; Code Health</h3>
<p><a href="https://refactoring.fm/p/the-compounding-software-factory">The Compounding Software Factory</a> - Luca Rossi (Software Factory series, Part 3 of 3)</p>
<blockquote>
<p>What causes teams to degrade: poor coding hygiene (bad testing, poor code health, missing abstractions), failure to capture knowledge (no ADRs, no playbooks, no snapshots), and building the wrong things.</p>
</blockquote>
<p><a href="https://refactoring.fm/p/ai-coding-meets-code-health-with">AI Coding Meets Code Health</a> - Stuart Caborn</p>
<blockquote>
<p>Loveholidays' journey to becoming an AI-first engineering organization. Core thesis: code health is the foundation for successful AI adoption. By deliberately investing in code health metrics <em>before</em> adopting AI, they achieved 80+ deployments/month, 60% AI-written code, &lt;1% change failure rate, all while maintaining elite code health.</p>
</blockquote>
<h3>Security &amp; Infrastructure</h3>
<p><a href="https://www.wiz.io/blog/github-actions-security-ai-powered-actions-vulnerabilities">The (In)security Landscape of AI-Powered GitHub Actions</a> - Shay Berkovich</p>
<blockquote>
<p>AI-powered GitHub Actions from vendors like OpenAI, Anthropic, and Google are now running in thousands of public workflows. Research found bypasses of non-default configurations letting any external attacker trigger AI execution, a novel secret exfiltration vector for dynamically-created credential files, and widespread misconfigurations in production workflows.</p>
</blockquote>
<p><a href="https://www.allthingsdistributed.com/2026/04/the-invisible-engineering-behind-lambdas-network.html">The Invisible Engineering Behind Lambda's Network</a> - Werner Vogels</p>
<blockquote>
<p>A decade-long story of invisible infrastructure engineering by Lambda's networking team.</p>
</blockquote>
<h3>Career &amp; Token Economics</h3>
<p><a href="https://businessasual.io/p/tokenmaxxing-is-the-budget-game-played">Tokenmaxxing Is the Budget Game Played With AI Tokens</a> - Willian Correa</p>
<blockquote>
<p>Tokenmaxxing — maximising AI token consumption for visibility — is the corporate &quot;use it or lose it&quot; budget game in a new currency. Meta's internal &quot;Claudeonomics&quot; leaderboard ranked 85K employees by token consumption; top user burned 281B tokens in 30 days.</p>
</blockquote>
<h3>Tools</h3>
<p><a href="https://docs.docker.com/compose/how-tos/file-watch/">Use Compose Watch</a></p>
<p>Docker bind volumes gets a supercharge. Compose Watch does not replace bind mounts but exists as a companion specifically suited to developing in containers.</p>
<blockquote>
<p>More importantly, watch allows for greater granularity than is practical with a bind mount. Watch rules let you ignore specific files or entire directories within the watched tree.<br />
For example, in a Node.js project, it's not recommended to sync the node_modules/ directory. Even though JavaScript is interpreted, npm packages can contain native code that is not portable across platforms.</p>
</blockquote>
]]></content:encoded>
					
					<wfw:commentRss>https://rafael.bernard-araujo.com/tropecando-120.php/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2363</post-id>	</item>
		<item>
		<title>Tropeçando 119</title>
		<link>https://rafael.bernard-araujo.com/tropecando-119.php</link>
					<comments>https://rafael.bernard-araujo.com/tropecando-119.php#respond</comments>
		
		<dc:creator><![CDATA[rafael]]></dc:creator>
		<pubDate>Tue, 21 Apr 2026 04:18:20 +0000</pubDate>
				<category><![CDATA[Tropeçando]]></category>
		<category><![CDATA[agent tools]]></category>
		<category><![CDATA[process management]]></category>
		<category><![CDATA[secrets management]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[serverless]]></category>
		<category><![CDATA[software engineering]]></category>
		<guid isPermaLink="false">https://rafael.bernard-araujo.com/?p=2350</guid>

					<description><![CDATA[How to Grow your Software Factory Luca Rossi argues that the right measure of AI effectiveness isn't lines of code but leverage — how much output you get per unit of human input. Teams progress through three stages: writing full specs for everything, then encoding knowledge into shared rules (like AGENTS.md), and finally building reusable [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="https://refactoring.fm/p/growing-your-sofware-factory">How to Grow your Software Factory</a> </p>
<p>Luca Rossi argues that the right measure of AI effectiveness isn't lines of code but leverage — how much output you get per unit of human input. Teams progress through three stages: writing full specs for everything, then encoding knowledge into shared rules (like AGENTS.md), and finally building reusable modules that enforce correctness by design.</p>
<p><a href="https://newsletter.theburningmonk.com/posts/the-security-case-for-serverless-just-got-stronger">The security case for serverless just got stronger</a></p>
<blockquote>
<p>AI agents can now scan an entire open-source codebase for exploitable vulnerabilities in hours.</p>
<p>Frontier models carry the complete library of known bug classes in their weights. So you can simply point an AI agent at a codebase and tell it to find zero-days.</p>
<p>This isn't theoretical.</p>
</blockquote>
<p>Yan Cui highlights that AI agents can now find real zero-days in open-source codebases at scale, shrinking the patch window from weeks to hours. Serverless and managed services have a structural advantage because AWS patches the runtime for you. The practical takeaways: eliminate long-lived AWS keys everywhere, treat LLM API keys like credentials, and scan your repos for exposed secrets.</p>
<p><a href="https://www.nodejs-security.com/blog/do-not-use-secrets-in-environment-variables-and-here-is-how-to-do-it-better">Do not use secrets in environment variables and here's how to do it better</a></p>
<p><a href="https://apenwarr.ca/log/20260316">Every Layer of Review Makes You 10x Slower</a></p>
<p>Each approval layer adds 10x wall clock time, and AI can't fix that. It only speeds up the first step. Drawing on Deming and the Toyota Production System, the argument is that review layers hide root causes rather than fixing them. The memorable line: <em>&quot;The job of a code reviewer isn't to review code — it's to figure out how to obsolete their review comment, that whole class of comment, forever.&quot;</em></p>
<p>The common thread across all four: the bottleneck isn't writing code, it's the systems around it. Whether it's review layers, security patching, or AI leverage, the answer is the same: engineer quality into the system itself through tests, automation, modules, and clear interfaces, rather than adding layers of inspection after the fact.</p>
<p><a href="https://www.theregister.com/2026/04/13/claude_code_cache_confusion/">Claude Code cache chaos creates quota complaints</a></p>
<p>Anthropic changed the prompt cache TTL from 1 hour to 5 minutes in March. Long, high-context sessions hit quota limits much faster. Pro users report as few as 2 prompts per 5 hours. Leaving your machine for &gt;1 hour = full cache miss on the 1M token context. They're considering reducing the default to 400K tokens.</p>
<p>Token consumption matters more than ever. The next two tools address this from both ends.</p>
<p><a href="https://juliusbrussee.github.io/caveman/">Caveman — Output Token Compression</a></p>
<p>Constrains LLM output to minimal-token structures. Strips pleasantries and padding, keeps code and technical content. Up to 87% output token reduction. Paper shows brevity constraints improve accuracy by 26pp.</p>
<p><a href="https://github.com/rtk-ai/rtk">RTK (Rust Token Killer) — Input Token Compression</a></p>
<p>Intercepts shell command outputs (git, ls, grep, test runners, docker, AWS CLI — 100+ commands) and compresses them before they reach the LLM context. 60-90% input token reduction, &lt; 10ms overhead.</p>
<p>Works with: Claude Code, Copilot, Gemini CLI, Codex, Cursor, Windsurf, Cline.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://rafael.bernard-araujo.com/tropecando-119.php/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2350</post-id>	</item>
		<item>
		<title>Tropeçando 118</title>
		<link>https://rafael.bernard-araujo.com/tropecando-118.php</link>
					<comments>https://rafael.bernard-araujo.com/tropecando-118.php#respond</comments>
		
		<dc:creator><![CDATA[rafael]]></dc:creator>
		<pubDate>Mon, 09 Mar 2026 02:47:29 +0000</pubDate>
				<category><![CDATA[Tropeçando]]></category>
		<category><![CDATA[ddd]]></category>
		<category><![CDATA[domain-driven design]]></category>
		<category><![CDATA[ia]]></category>
		<category><![CDATA[middleware]]></category>
		<category><![CDATA[software architecture]]></category>
		<category><![CDATA[software engineering]]></category>
		<guid isPermaLink="false">https://rafael.bernard-araujo.com/?p=2273</guid>

					<description><![CDATA[Your AI Coding agent doesn’t know when to ask for help Why do multi-agent coding systems fall apart on complex, real-world tasks? How to Manage Context in AI Coding Focus on building multiplayer, dynamic systems that provide the right information reliably, rather than crafting magical wording. Design workflows where AI can fetch what it needs [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="https://medium.com/@igorcosta/your-ai-coding-agent-doesnt-know-when-to-ask-for-help-75c10be496c5">Your AI Coding agent doesn’t know when to ask for help</a></p>
<blockquote>
<p>Why do multi-agent coding systems fall apart on complex, real-world tasks?</p>
</blockquote>
<p><a href="https://refactoring.fm/p/managing-context-for-ai-coding?utm_source=substack&amp;utm_campaign=post_embed&amp;utm_medium=web">How to Manage Context in AI Coding</a></p>
<blockquote>
<p>Focus on building multiplayer, dynamic systems that provide the right information reliably, rather than crafting magical wording. Design workflows where AI can fetch what it needs automatically.</p>
</blockquote>
<p><a href="https://martinfowler.com/bliki/ValueObject.html">Value Object</a></p>
<blockquote>
<p>When programming, I often find it's useful to represent things as a compound.</p>
</blockquote>
<p><a href="https://martinfowler.com/eaaDev/Range.html">Range - Further Enterprise Application Architecture development</a></p>
<blockquote>
<p>It's quite common to see comparisons where a value is checked against a range of values. Ranges are usually handled by a pair of values and you check against them both. Range instead uses a single object to represent the range as a whole, and then provides the relevant operations to test to see if values fall in the range and to compare ranges.</p>
</blockquote>
<p><a href="https://dzone.com/articles/jdk-memory-bloat-containers?email_hash=d5eba7663d4e04a1e0f4886103285fd8">JDK 17 Memory Bloat in Containers: A Post-Mortem</a></p>
<p>I just love runtime upgrades. Runtime upgrade are very important. And they need careful planning. Not unusual that they teach us important lessons for the next upgrade.</p>
<blockquote>
<p>When engineering teams modernize Java applications, the shift from JDK 8 to newer Long-Term Support (LTS) versions, such as JDK 11, 17, and soon 21, might seem straightforward at first. Since Java maintains backward compatibility, it's easy to assume that the runtime behavior will remain largely unchanged. However, that's far from reality.</p>
</blockquote>
<p><a href="https://tidyfirst.substack.com/p/my-fitbit-buzzed-and-i-understood?utm_source=post-email-title&amp;publication_id=256838&amp;post_id=180524868&amp;utm_campaign=email-post-title&amp;isFreemail=false&amp;r=6fpjy1&amp;triedRedirect=true&amp;utm_medium=email">My Fitbit Buzzed and I Understood Enshittification</a></p>
<blockquote>
<p>My Fitbit started buzzing at me a year ago. “It looks like you’re exercising.”</p>
<p>Product development is also an exercise in human relationships. And when we reduce those relationships to metrics, we lose something essential. We lose the ability to say, “This would be rude.” We lose the ability to treat users like people instead of engagement vectors.</p>
</blockquote>
<p><a href="https://maximegosselin.com/posts/using-the-middleware-pattern-to-extend-php-libraries/">Using the Middleware Pattern to Extend PHP Libraries</a></p>
<blockquote>
<p>PSR-15 did not invent middleware. But it showed the PHP community what a well-designed, typed middleware interface looks like. There is no reason to leave that idea at the HTTP layer.</p>
<p>If you maintain a PHP library with any non-trivial processing, consider building middleware support in from day one. Your users will thank you, and so will your future self.</p>
</blockquote>
]]></content:encoded>
					
					<wfw:commentRss>https://rafael.bernard-araujo.com/tropecando-118.php/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2273</post-id>	</item>
		<item>
		<title>Tropeçando 117</title>
		<link>https://rafael.bernard-araujo.com/tropecando-117.php</link>
					<comments>https://rafael.bernard-araujo.com/tropecando-117.php#respond</comments>
		
		<dc:creator><![CDATA[rafael]]></dc:creator>
		<pubDate>Thu, 20 Nov 2025 08:02:00 +0000</pubDate>
				<category><![CDATA[Tropeçando]]></category>
		<category><![CDATA[ai]]></category>
		<category><![CDATA[llm]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[site reliability]]></category>
		<category><![CDATA[software engineering]]></category>
		<guid isPermaLink="false">https://rafael.bernard-araujo.com/?p=2221</guid>

					<description><![CDATA[How far can we push AI autonomy in code generation? We ran a series of experiments to explore how far Generative AI can currently be pushed toward autonomously developing high-quality, up-to-date software without human intervention. As a test case, we created an agentic workflow to build a simple Spring Boot application end to end. We [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="https://martinfowler.com/articles/pushing-ai-autonomy.html">How far can we push AI autonomy in code generation?</a></p>
<blockquote>
<p>We ran a series of experiments to explore how far Generative AI can currently be pushed toward autonomously developing high-quality, up-to-date software without human intervention. As a test case, we created an agentic workflow to build a simple Spring Boot application end to end. We found that the workflow could ultimately generate these simple applications, but still observed significant issues in the results—especially as we increased the complexity. The model would generate features we hadn't asked for, make shifting assumptions around gaps in the requirements, and declare success even when tests were failing. We concluded that while many of our strategies — such as reusable prompts or a reference application — are valuable for enhancing AI-assisted workflows, a human in the loop to supervise generation remains essential. </p>
</blockquote>
<p><a href="https://thephp.foundation/blog/2025/09/05/php-mcp-sdk/">Announcing the Official PHP SDK for MCP</a></p>
<blockquote>
<p>The PHP Foundation, Anthropic’s MCP team, and Symfony are collaborating on the official PHP SDK for the Model Context Protocol (MCP). Our goal is a framework-agnostic, production-ready reference implementation the PHP ecosystem can rely on.</p>
</blockquote>
<p><a href="https://ashallendesign.co.uk/blog/covariance-and-contravariance-in-php">Covariance and Contravariance in PHP </a></p>
<blockquote>
<p>Before we dive into the details and code examples, let me quickly define covariance and contravariance:</p>
<p>Covariance: Making something more specific<br />
Contravariance: Making something less specific</p>
<p>Now let's dive in and see how these concepts apply to PHP.</p>
</blockquote>
<p><a href="https://slack.engineering/break-stuff-on-purpose/">Break Stuff on Purpose</a></p>
<blockquote>
<p>Strengthen your system’s ability to recover by intentionally causing and resolving failures</p>
</blockquote>
<p><a href="https://read.thecoder.cafe/p/nothing-beats-kindness">Nothing Beats Kindness</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://rafael.bernard-araujo.com/tropecando-117.php/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2221</post-id>	</item>
		<item>
		<title>Tropeçando 115</title>
		<link>https://rafael.bernard-araujo.com/tropecando-115.php</link>
					<comments>https://rafael.bernard-araujo.com/tropecando-115.php#comments</comments>
		
		<dc:creator><![CDATA[rafael]]></dc:creator>
		<pubDate>Sun, 29 Dec 2024 07:10:02 +0000</pubDate>
				<category><![CDATA[Tropeçando]]></category>
		<category><![CDATA[aws]]></category>
		<category><![CDATA[aws-cdk]]></category>
		<category><![CDATA[design pattern]]></category>
		<category><![CDATA[lazy loading]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[project management]]></category>
		<guid isPermaLink="false">https://rafael.bernard-araujo.com/?p=2098</guid>

					<description><![CDATA[PHP is the Best Choice for Long‑Term Business Mature and health ecosystem, long-term stability with clear release cycles, at least two well-proven frameworks, self-reflecting Technology and open-source adaptation to the future are points to put PHP as a great (if not the best) choice for long-term business. Optimize for optionality and build towards checkpoints Optimize [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="https://tomasvotruba.com/blog/php-is-the-best-choice-for-long-term-business">PHP is the Best Choice for Long‑Term Business</a></p>
<blockquote>
<p>Mature and health ecosystem, long-term stability with clear release cycles, at least two well-proven frameworks, self-reflecting Technology and open-source adaptation to the future are points to put PHP as a great (if not the best) choice for long-term business.</p>
</blockquote>
<p><a href="https://sebastiandedeyne.com/optimize-for-optionality-and-build-towards-checkpoints">Optimize for optionality and build towards checkpoints </a></p>
<blockquote>
<p>Optimize for optionality and build towards checkpoints</p>
<p>To make this plea actionable: treat each chunk of work as something that should be merged by the end of the week. That doesn't mean it needs to be &quot;done&quot; or available to the end user, it needs to become a citizen of The Codebase.</p>
</blockquote>
<p><a href="https://jolicode.com/blog/php-object-lazy-loading-is-more-than-what-you-think">PHP Object Lazy-Loading is More Than What You Think</a></p>
<blockquote>
<p>In short: lazy-loading consists of delaying load or initialization of resources or objects until they’re actually needed. It’s something you will never see directly, the whole objective of lazy-loading is to be invisible so you can use your applications the way you always do.</p>
<p>Check this blog posts, which talks about this pattern, a new PHP RFC and some ways you can boost the performance of your application when you use lots of API calls.</p>
</blockquote>
<p><a href="https://opensourcepledge.com/">Open Source Pledge</a></p>
<blockquote>
<p>What is the Open Source Pledge?</p>
<p>Open Source Pledge is a group of companies with a shared commitment to paying the maintainers of the Open Source software we all consume. Our goal is to establish a new social norm in the tech industry of companies paying Open Source maintainers, so that burnout and related security issues such as those in XZ and Apache Log4j can become a thing of the past.</p>
</blockquote>
<p><a href="https://blog.jetbrains.com/idea/2024/10/code-analysis-for-your-projects-with-intellij-idea-and-qodana/">Code Analysis for Your Projects With IntelliJ IDEA and Qodana</a></p>
<blockquote>
<p>As developers, we spend more time maintaining existing code than we do writing new code. Any tools that can help make this easier can save us a lot of time.</p>
</blockquote>
<p><a href="https://www.youtube.com/watch?v=Sr339AKcxT0">Live coding - Event Sourcing in PHP - Let's overcomplicate a single-page - Brendt Roose</a></p>
<blockquote>
<p>Brendt did a live coding session demonstrating how event-sourcing in PHP looks like. He used <a href="https://tempestphp.com/">Tempest framework</a>, but concepts apply to any application.</p>
</blockquote>
<p><a href="https://blog.serverlessadvocate.com/configuring-aws-cdk-apps-across-multiple-environments-f9e0f1158a70">Configuring AWS CDK Apps Across Multiple Environments</a></p>
<blockquote>
<p>In this quick article, we will cover how we can setup our deterministic serverless application configuration in a way that it can differ between different environments, and where the correct environment is deployed to the correct AWS accounts. We will do a super simple example to show the concepts.</p>
</blockquote>
<p><a href="https://medium.com/@volvogroup/how-to-successfully-adopt-serverless-in-large-organizations-2e0db1b72881">How to successfully adopt serverless in large organizations</a></p>
<blockquote>
<p>Why serverless?</p>
<p>Serverless has disrupted the tech industry in recent years and leveled the playing field by giving organizations instant access to the same resources. In fact, it gives startups and small organizations an edge. They can move faster because they have fewer processes in place than larger traditional organizations, and serverless enables this agility.</p>
</blockquote>
]]></content:encoded>
					
					<wfw:commentRss>https://rafael.bernard-araujo.com/tropecando-115.php/feed</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2098</post-id>	</item>
		<item>
		<title>Tropeçando 114</title>
		<link>https://rafael.bernard-araujo.com/tropecando-114.php</link>
					<comments>https://rafael.bernard-araujo.com/tropecando-114.php#respond</comments>
		
		<dc:creator><![CDATA[rafael]]></dc:creator>
		<pubDate>Fri, 27 Sep 2024 04:44:36 +0000</pubDate>
				<category><![CDATA[Tropeçando]]></category>
		<category><![CDATA[aws-cdk]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[developer experience]]></category>
		<category><![CDATA[front-end]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[PostGreSQL]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[software architecture]]></category>
		<category><![CDATA[testing]]></category>
		<guid isPermaLink="false">https://rafael.bernard-araujo.com/?p=2076</guid>

					<description><![CDATA[What's new in PHP 8.4 Don't miss these great features Property hooks new without parentheses JIT changes RFC Implicit nullable types New HTML5 support array_find Serverless Ephemeral Environments with Serverful AWS Services How to successfully use ephemeral environments with serverful resources, with example in the AWS CDK and Typescript. Comparison of Serverless Development and Hosting [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="https://stitcher.io/blog/new-in-php-84">What's new in PHP 8.4</a></p>
<blockquote>
<p>Don't miss these great features</p>
<ul>
<li>Property hooks</li>
<li>new without parentheses</li>
<li>JIT changes RFC</li>
<li>Implicit nullable types</li>
<li>New HTML5 support</li>
<li>array_find</li>
</ul>
</blockquote>
<p><a href="https://blog.serverlessadvocate.com/serverless-ephemeral-environments-with-serverful-aws-services-c803d24b353f">Serverless Ephemeral Environments with Serverful AWS Services</a></p>
<blockquote>
<p>How to successfully use ephemeral environments with serverful resources, with example in the AWS CDK and Typescript.</p>
</blockquote>
<p><a href="https://dev.to/aws-builders/comparison-of-serverless-development-and-hosting-platforms-5dld">Comparison of Serverless Development and Hosting Platforms</a></p>
<blockquote>
<p>When designing solutions in the cloud, there is (almost) always more than one alternative for achieving the same goal.</p>
<p>One of the characteristics of cloud-native applications is the ability to have an automated development process (such as the use of CI/CD pipelines).</p>
<p>In this blog post, I will compare serverless solutions for developing and hosting web and mobile applications in the cloud. </p>
</blockquote>
<p><a href="https://vnegrisolo.github.io/postgresql/generate-fake-data-using-sql">Generating fake data using SQL</a></p>
<blockquote>
<p>Fake data are very useful in development environment for testing your application or some query performances for example.</p>
</blockquote>
<p><a href="https://khalilstemmler.com/articles/client-side-architecture/introduction/">Client-Side Architecture Basics [Guide]</a></p>
<blockquote>
<p>Though the tools we use to build client-side web apps have changed substantially over the years, the fundamental principles behind designing robust software have remained relatively the same. In this guide, we go back to basics and discuss a better way to think about the front-end architecture using modern tools like React, xState, and Apollo Client.</p>
</blockquote>
]]></content:encoded>
					
					<wfw:commentRss>https://rafael.bernard-araujo.com/tropecando-114.php/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2076</post-id>	</item>
		<item>
		<title>Tropeçando 113</title>
		<link>https://rafael.bernard-araujo.com/tropecando-113.php</link>
					<comments>https://rafael.bernard-araujo.com/tropecando-113.php#respond</comments>
		
		<dc:creator><![CDATA[rafael]]></dc:creator>
		<pubDate>Fri, 16 Aug 2024 05:13:13 +0000</pubDate>
				<category><![CDATA[Tropeçando]]></category>
		<category><![CDATA[aws]]></category>
		<category><![CDATA[aws-cdk]]></category>
		<category><![CDATA[clean architecture]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[ddd]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[serverless]]></category>
		<category><![CDATA[software engineering]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[sqli]]></category>
		<guid isPermaLink="false">https://rafael.bernard-araujo.com/?p=1976</guid>

					<description><![CDATA[Neon Serverless PostgreSQL database with real zero-scaling. The fully managed serverless Postgres with a generous free tier. We separate storage and compute to offer autoscaling, branching, and bottomless storage. Compute scales dynamically to ensure you're ready for peak hours. Compute scales to zero and cold storage offloads to S3 for cost efficiency. Create a fully [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="https://neon.tech">Neon</a></p>
<blockquote>
<p>Serverless PostgreSQL database with real zero-scaling. The fully managed serverless Postgres with a generous free tier. We separate storage and compute to offer autoscaling, branching, and bottomless storage.</p>
<p>Compute scales dynamically to ensure you're ready for peak hours. Compute scales to zero and cold storage offloads to S3 for cost efficiency. Create a fully managed serverless Postgres instance in seconds.</p>
</blockquote>
<p><a href="https://laravel-news.com/make-your-app-faster-with-php-83">Make your app faster with PHP 8.3</a></p>
<blockquote>
<p>PHP 8.3 is the latest version of PHP. It has exciting new features and major improvements in performance. By upgrading to 8.3, you can achieve a significant increase in speed. In this article, we dive into how PHP 8.3 can be a game changer. It can speed up your application's performance.</p>
</blockquote>
<p><a href="https://dzone.com/articles/owasp-top-10-explained-3-sql-injection?">OWASP Top 10 Explained: SQL Injection</a></p>
<blockquote>
<p>SQL Injection (SQLi) is a code injection technique that exploits a security vulnerability occurring in the database layer of an application.</p>
<p>The vulnerability is present when user inputs are either improperly filtered for string literal escape characters embedded in SQL statements or user input is not strongly typed and thereby unexpectedly executed.</p>
<p>This allows an attacker to manipulate SQL queries, enabling them to unauthorized access, modify, and delete data in the database. This can lead to significant breaches of confidentiality, integrity, and availability, ranging from unauthorized viewing of data to complete database compromise.</p>
</blockquote>
<p><a href="https://blog.serverlessadvocate.com/15-quick-useful-tips-for-aws-cdk-engineers-a7675e1557aa">15 Quick Useful Tips for AWS CDK Engineers</a></p>
<blockquote>
<p>In this short article, we will cover 15 useful tips with accompanying code snippets for AWS CDK users.</p>
</blockquote>
<p><a href="https://khalilstemmler.com/articles/typescript-domain-driven-design/repository-dto-mapper/">Implementing DTOs, Mappers &amp; the Repository Pattern using the Sequelize ORM [with Examples] - DDD w/ TypeScript</a></p>
<blockquote>
<p>There are several patterns that we can utilize in order to handle data access concerns in Domain-Driven Design. In this article, we talk about the role of DTOs, repositories &amp; data mappers in DDD.</p>
</blockquote>
]]></content:encoded>
					
					<wfw:commentRss>https://rafael.bernard-araujo.com/tropecando-113.php/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1976</post-id>	</item>
		<item>
		<title>Tropeçando 112</title>
		<link>https://rafael.bernard-araujo.com/tropecando-112.php</link>
					<comments>https://rafael.bernard-araujo.com/tropecando-112.php#respond</comments>
		
		<dc:creator><![CDATA[rafael]]></dc:creator>
		<pubDate>Mon, 22 Jan 2024 01:09:51 +0000</pubDate>
				<category><![CDATA[Tropeçando]]></category>
		<category><![CDATA[aws]]></category>
		<category><![CDATA[blue-green]]></category>
		<category><![CDATA[codedeploy]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[serverless]]></category>
		<category><![CDATA[terraform]]></category>
		<guid isPermaLink="false">https://rafael.bernard-araujo.com/?p=1862</guid>

					<description><![CDATA[Treezor: a serverless banking platform This case study dives into how Treezor went serverless for their banking platform. From legacy code running on servers to a serverless monolith, and then event-driven microservices on AWS with Bref. Treezor is a high available banking application running mostly in PHP. Wait, is cloud bad? Forrest Brazeal review 37signals [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="https://bref.sh/docs/case-studies/treezor">Treezor: a serverless banking platform</a></p>
<blockquote>
<p>This case study dives into how Treezor went serverless for their banking platform. From legacy code running on servers to a serverless monolith, and then event-driven microservices on AWS with Bref.</p>
<p>Treezor is a high available banking application running mostly in PHP.</p>
</blockquote>
<p><a href="https://newsletter.goodtechthings.com/p/wait-is-cloud-bad">Wait, is cloud bad?</a></p>
<blockquote>
<p>Forrest Brazeal review 37signals (Basecamp) movement from the Cloud back to DataCenter, their use-case and some reasoning about the mentioned arguments for Data Center.</p>
</blockquote>
<p><a href="https://dev.to/aws-builders/ecs-bluegreen-deployment-with-codedeploy-and-terraform-3gf1">ECS Blue/Green deployment with CodeDeploy and Terraform </a></p>
<p><a href="https://getrector.com/blog/how-to-make-rector-contribute-your-pull-requests-every-day">How to make Rector Contribute Your Pull Requests Every Day</a></p>
<blockquote>
<p>Do you enjoy making code-reviews with hundreds of rules in your head and adding extra work to the pull-request author?</p>
<p>We don't, so we let Rector for us in active code review.</p>
</blockquote>
<p><a href="https://tim.mcnamara.nz/post/643989589027078144/docker-for-the-late-majority">Docker for the late majority</a></p>
<blockquote>
<p>This is a guide for people who would like a brief introduction to Docker and are too afraid to ask for one. I get it. Everyone around you already seems to know what they’re talking about. Looking ignorant is no fun.</p>
</blockquote>
<p><a href="https://chrisshennan.com/blog/10-essential-phpini-tweaks-for-improved-web-performance">10 Essential PHP.ini Tweaks for Improved Web Performance</a></p>
<blockquote>
<p>If you're running a website or web application with PHP, you may have encountered issues with slow loading times, high memory usage, or other performance problems. Fortunately, there are several tweaks you can make to your PHP configuration file (php.ini) to optimize your scripts and improve your website's performance. In this article, I'll cover the top 10 most common changes you might need to make to your php.ini file for best performance.</p>
</blockquote>
]]></content:encoded>
					
					<wfw:commentRss>https://rafael.bernard-araujo.com/tropecando-112.php/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1862</post-id>	</item>
		<item>
		<title>Tropeçando 111</title>
		<link>https://rafael.bernard-araujo.com/tropecando-111.php</link>
					<comments>https://rafael.bernard-araujo.com/tropecando-111.php#respond</comments>
		
		<dc:creator><![CDATA[rafael]]></dc:creator>
		<pubDate>Mon, 30 Oct 2023 07:37:05 +0000</pubDate>
				<category><![CDATA[Tropeçando]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[software architecture]]></category>
		<category><![CDATA[software engineering]]></category>
		<guid isPermaLink="false">https://rafael.bernard-araujo.com/?p=1851</guid>

					<description><![CDATA[Don't do this: creating useless indexes This is why, when I’m called for a performance problem (or for an audit), my first take is to look at the size of the data compared to the size of the indexes. If you store more indexes than data for a transactional workload, that’s bad. The worst I’ve [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="https://web.archive.org/web/20240525164456/https://mydbanotebook.org/post/too-many-indexes/">Don't do this: creating useless indexes</a></p>
<blockquote><p>
This is why, when I’m called for a performance problem (or for an audit), my first take is to look at the size of the data compared to the size of the indexes. If you store more indexes than data for a transactional workload, that’s bad. The worst I’ve seen was a database with 12 times more indexes stored on disk than data! Of course, it was a transactional workload… Would you buy a cooking book with 10 pages of recipes and 120 pages of indexes at the end of the book?</p>
<p>The problem with indexes is that each time you write (insert, update, delete), you will have to write to the indexes too! That can become very costly in resources and time.
</p></blockquote>
<p><a href="http://blog.cleancoder.com/uncle-bob/2023/01/18/functional-classes.html">Functional Classes</a></p>
<blockquote>
<blockquote><p>
A place for everything, and everything in its place.
</p></blockquote>
<p>What is a class? According to the dictionary a class is:</p>
<blockquote><p>
A set, collection, group, or configuration containing members regarded as having certain attributes or traits in common; a kind or category.
</p></blockquote>
</blockquote>
<p><a href="https://frederickvanbrabant.com/blog/2019-04-03-the-simple-class/">The Simple Class</a></p>
<blockquote><p>
I work in many legacy code bases, and in fact, I’ve made it a big part of my career. I love diving into big monoliths that have grown out of proportion and tidying them up. One of the best parts of that work is rewriting a God class into a collection of small reusable classes. Let’s take a look at what makes a simple class great.
</p></blockquote>
<p><a href="https://frederickvanbrabant.com/blog/2020-02-07-the-economics-of-clean-code/">The economics of clean code</a></p>
<blockquote><p>
Code smarter. Code balanced. That is OK to have some debt. But pay them off quickly.
</p></blockquote>
]]></content:encoded>
					
					<wfw:commentRss>https://rafael.bernard-araujo.com/tropecando-111.php/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1851</post-id>	</item>
		<item>
		<title>Tropeçando 110</title>
		<link>https://rafael.bernard-araujo.com/tropecando-110.php</link>
					<comments>https://rafael.bernard-araujo.com/tropecando-110.php#respond</comments>
		
		<dc:creator><![CDATA[rafael]]></dc:creator>
		<pubDate>Sat, 05 Aug 2023 14:24:46 +0000</pubDate>
				<category><![CDATA[Tropeçando]]></category>
		<category><![CDATA[aws-cdk]]></category>
		<category><![CDATA[ci/cd]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[serverless]]></category>
		<category><![CDATA[software architecture]]></category>
		<category><![CDATA[software engineering]]></category>
		<guid isPermaLink="false">https://rafael.bernard-araujo.com/?p=1829</guid>

					<description><![CDATA[Enabling the Optimal Serverless Platform Team — CDK and Team Topologies Serverless, and related technologies, have enabled teams to move faster, reduce total cost of ownership and overall empowered developers to have greater ownership of the systems they build. However, Serverless is not a silver bullet — there is an organisational side that’s key to [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="https://medium.com/serverless-transformation/enabling-the-optimal-serverless-platform-team-cdk-and-team-topologies-fe4d9299adc9">Enabling the Optimal Serverless Platform Team — CDK and Team Topologies</a></p>
<blockquote><p>
Serverless, and related technologies, have enabled teams to move faster, reduce total cost of ownership and overall empowered developers to have greater ownership of the systems they build. However, Serverless is not a silver bullet — there is an organisational side that’s key to unlock the full benefits of Cloud.
</p></blockquote>
<p><a href="https://laravel-news.com/controller-refactor">Restructuring a Laravel Controller using Services, Events, Jobs, Actions, and more</a></p>
<blockquote><p>
A simple but nice walk-though about code decoupling.
</p></blockquote>
<p><a href="https://fly.io/blog/the-serverless-server/">The Serverless Server </a></p>
<blockquote><p>
I'm Will Jordan, and I work on SRE at Fly.io. We transmogrify Docker containers into lightweight micro-VMs and run them on our own hardware in racks around the world, so your apps can run close to your users. Check it out—your app can be up and running in minutes. This is a post about how services like ours are structured, and, in particular, what the term &quot;serverless&quot; has come to mean to me.
</p></blockquote>
<p><a href="https://web.archive.org/web/20240617070102/https://tomasvotruba.com/blog/keep-cognitive-complexity-low-with-phpstan/">Keep Cognitive Complexity Low with PHPStan</a></p>
<blockquote><p>
What is cognitive complexity? It's the amount of information we have to hold in our heads simultaneously to understand the code. The more indents, continue, break, nested foreach, and if/else branches, the harder is code to read.</p>
<p>You can use PHPStan rules to decrease the cognitive complexity of your codebase. This brings matuiry to your application and a more maintainable code.
</p></blockquote>
<p><a href="https://tomasvotruba.com/blog/how-to-release-php-81-and-72-package-in-the-same-repository">How to release PHP 8.1 and 7.2 package in the Same Repository</a></p>
<blockquote><p>
Some steps to release a package in more than one version, to allow compatibility for different PHP runtimes.
</p></blockquote>
]]></content:encoded>
					
					<wfw:commentRss>https://rafael.bernard-araujo.com/tropecando-110.php/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1829</post-id>	</item>
	</channel>
</rss>
