Software

How I'm Using AI in Software Development

Published on

How I'm Using AI in Software Development In my previous post about AI and software development, some people understood my position as if I was denying the real improvements that AI brings to the table. That was not really the point. I use AI in most of my personal projects today, and I use it because… well, it works. It improves speed, helps me explore codebases, makes boring implementation faster, and lowers the cost of turning ideas into something that actually runs.

Leader Election Spring Boot Starter

Published on

Leader Election Spring Boot Starter Quick post: For some reason, my post about leader election in spring boot remains one of the most accessed in this blog. However, that solution appears to be invalid now, since it relied on Jedis, which is not available in later Spring versions. So, to cover this scenario for whoever has this specific need, I’ve developed a quick starter that uses database locking to allow for a simple leader election mechanism.

Architecture of a URL Shortener

Published on

Architecture of a URL Shortener I haven’t been following many YouTube channels lately, but one that always leaves me satisfied whenever I watch is Renato Augusto’s channel. Recently, I watched the video he made about URL shorteners. Overall, it’s hard to argue that his solution is probably the best possible given the problem’s premises: Functional Requirements: URL Shortening: given a long URL -> return a much shorter URL URL Redirection: given a short URL -> redirect to the original URL Non-functional Requirements: The system must support 100 million URLs generated per day The shortened URL should be as short as possible Only numbers (0–9) and letters (az, AZ) are allowed in the URL For every 1 write operation, there will be 10 read operations The average length of a stored URL is 100 bytes URLs must be stored for a minimum of 10 years The system must operate with high availability (24/7) Estimates Write operations: 100 million URLs per day = 100,000,000 / 24 / 60 / 60 = 1160 requests per second Read operations: 10:1 = 1160 * 10 = 11600 requests per second URL storage period: 10 years = 100,000,000 * 365 * 10 = 365 billion records Storage capacity: 100 bytes per URL = 365 billion * 100 bytes = 46.

What you need to know to be a software developer

Published on

What you need to know to be a software developer The day before yesterday I received an email with a simple question: “What do I need to do to start and thrive in my web developer career?” The direct answer is easy: study, train and learn from experiences. In eagerness to be done with my inbox, that’s what I thought of answering. But it’s a good question, and if you start to dissect the idea a little, you realize that while the straight answer isn’t wrong, there are some points that will be more stressed throughout your career, and if you can strengthen those points, it will help not only in your entry and stabilization in the market, but it will also serve as a base when you are already experienced.

What is a Unit in Unit Testing?

Published on

What is a Unit in Unit Testing? Sometimes I miss the adrenaline of decompiling a jar file (because the source was lost ages ago), adding a feature and putting it back in production. But, believe me, those days sucked. In the bad old days, people pushed to production without any kind of automated testing. We would just build the features needed, tested locally and copied the files manually to a server, usually after midnight, accompained by pizzas and fear.