<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Posts on Data Trenches</title><link>https://data-trenches.leandrof.space/posts/</link><description>Recent content in Posts on Data Trenches</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><managingEditor>leandrojlfernandes@gmail.com (Leandro Fernandes)</managingEditor><webMaster>leandrojlfernandes@gmail.com (Leandro Fernandes)</webMaster><lastBuildDate>Mon, 09 Mar 2026 12:00:00 -0600</lastBuildDate><atom:link href="https://data-trenches.leandrof.space/posts/index.xml" rel="self" type="application/rss+xml"/><item><title>Automating PERM Case Status Monitoring: My EB-3 Green Card Journey</title><link>https://data-trenches.leandrof.space/posts/perm-automation/</link><pubDate>Mon, 09 Mar 2026 12:00:00 -0600</pubDate><author>leandrojlfernandes@gmail.com (Leandro Fernandes)</author><guid>https://data-trenches.leandrof.space/posts/perm-automation/</guid><description>&lt;h1 id="my-eb-3-green-card-journey-automating-perm-status-checks">My EB-3 Green Card Journey: Automating PERM Status Checks&lt;/h1>
&lt;h2 id="the-immigration-process">The Immigration Process&lt;/h2>
&lt;p>Going through the U.S. employment-based immigration process is a journey that tests your patience in ways you never imagined. As someone pursuing an &lt;strong>EB-3 visa&lt;/strong> (skilled worker category), I found myself navigating the complex maze of PERM labor certification - the first major step toward permanent residency.&lt;/p>
&lt;h3 id="understanding-perm">Understanding PERM&lt;/h3>
&lt;p>PERM (Program Electronic Review Management) is the process where the Department of Labor certifies that there are no qualified U.S. workers available for the position offered to the foreign worker. For most employment-based green cards, including EB-3, this is a mandatory step. The process involves:&lt;/p></description></item><item><title>PostgreSQL 17 Beta: B-Tree just got promoted to Index CEO</title><link>https://data-trenches.leandrof.space/posts/postgresql-17-btree/</link><pubDate>Mon, 10 Jun 2024 00:00:00 +0000</pubDate><author>leandrojlfernandes@gmail.com (Leandro Fernandes)</author><guid>https://data-trenches.leandrof.space/posts/postgresql-17-btree/</guid><description>&lt;p>The release of &lt;a href="https://www.postgresql.org/about/news/postgresql-17-beta-1-released-2865/">PostgreSQL 17 beta&lt;/a> brought a bunch of new interesting features. Improvements to the vacuum execution time, memory consumption, faster ANALYZE, etc.., but the one that most databases and developers will appreciate that also caught my eye right off the bat, are the improvements to the B-Tree Index when using the IN or ANY clauses. I&amp;rsquo;ve read improvements ranging from 10% to 30% without any change to your database or table structure so I wanted to test it out for one of my production use cases.&lt;/p></description></item><item><title>PostgreSQL: A deep dive of Prepared Statements</title><link>https://data-trenches.leandrof.space/posts/postgresql-prepared-statements/</link><pubDate>Mon, 27 May 2024 00:00:00 +0000</pubDate><author>leandrojlfernandes@gmail.com (Leandro Fernandes)</author><guid>https://data-trenches.leandrof.space/posts/postgresql-prepared-statements/</guid><description>&lt;p>In a PostgreSQL database, preparing a statement involves parsing, analyzing and rewriting that specific statement. The result is compiled and stored in memory (which is usually called as statement caching). When a previous prepared statement is executed, PostgreSQL can skip the parsing, analyzing and rewriting steps and use the precompiled version instead. This can significantly improve database performance, especially for queries that are executed frequently or have complex plans. The more you execute a query, the bigger the probability for you to see significant improvements.&lt;/p></description></item><item><title>Installing GlobalProtect VPN Cli on a Unix env</title><link>https://data-trenches.leandrof.space/posts/vpn-global-protect/</link><pubDate>Sun, 02 Apr 2023 12:33:01 -0600</pubDate><author>leandrojlfernandes@gmail.com (Leandro Fernandes)</author><guid>https://data-trenches.leandrof.space/posts/vpn-global-protect/</guid><description>&lt;h1 id="installing-globalprotect-vpn-cli-on-a-unix-environment">Installing GlobalProtect VPN CLI on a Unix environment&lt;/h1>
&lt;p>GlobalProtect is a virtual private network (VPN) solution, developed and maintained by PaloAlto, that provides secure remote access to enterprise resources. It allows users to connect to corporate networks from anywhere in the world, making it a popular choice for businesses with a distributed workforce. In this article, we will guide you through the steps to install GlobalProtect CLI VPN on a Unix-based machine.&lt;/p></description></item><item><title>SQL Count - What the count() function acually counts?</title><link>https://data-trenches.leandrof.space/posts/sqlcount/</link><pubDate>Sun, 10 Jul 2022 11:44:01 -0600</pubDate><author>leandrojlfernandes@gmail.com (Leandro Fernandes)</author><guid>https://data-trenches.leandrof.space/posts/sqlcount/</guid><description>&lt;h1 id="sql-count--what-the-count-function-actually-counts">SQL Count — What the count() function actually counts?&lt;/h1>
&lt;p>The count() function is widely used in SQL and sometimes without fully understanding the impact that the entry parameter to the function can alter the output of your results. Most commonly, the functions can have the following as inputs parameters:&lt;/p>
&lt;ol>
&lt;li>Count(*)&lt;/li>
&lt;li>Count(1)&lt;/li>
&lt;li>Count(column name)&lt;/li>
&lt;/ol>
&lt;h3 id="test-scenario">Test Scenario&lt;/h3>
&lt;p>Let’s create a table and insert a few records to try each count variation and compare the results.&lt;/p></description></item><item><title>GitLab CI - Auto Deploy to your VPS</title><link>https://data-trenches.leandrof.space/posts/gitlabci/</link><pubDate>Mon, 09 Aug 2021 11:48:42 -0600</pubDate><author>leandrojlfernandes@gmail.com (Leandro Fernandes)</author><guid>https://data-trenches.leandrof.space/posts/gitlabci/</guid><description>&lt;p>&lt;img src="image.png" alt="alt text">&lt;/p>
&lt;h1 id="gitlab-ci---auto-deploy-to-your-vps">GitLab CI - Auto Deploy to your VPS&lt;/h1>
&lt;p>I was developing a project where I wanted to have an online Staging environment to host our application and have the latest changes being deployed automatically upon each merge request to the Staging branch.&lt;/p>
&lt;p>I’ve started by searching how to setup automatic deploy via my &lt;strong>.gitlab-ci.yml&lt;/strong> file, the main goal would be to run our pipeline and, if my test cases were successful, we would SSH into my VPS and pull the latest version of the branch.&lt;/p></description></item></channel></rss>