<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>CodeCrush — Embrace the fast pace of tech evolution</title>
    <link>https://codecrush.com.br/en/blog</link>
    <description>Every CodeCrush article: programming, artificial intelligence, cloud and tech careers in English, published daily.</description>
    <language>en</language>
    <managingEditor>devhenrico@gmail.com (Henrico Piubello)</managingEditor>
    <webMaster>devhenrico@gmail.com (Henrico Piubello)</webMaster>
    <lastBuildDate>Tue, 14 Jul 2026 00:00:00 GMT</lastBuildDate>
    <atom:link href="https://codecrush.com.br/en/feed.xml" rel="self" type="application/rss+xml"/>
    <item>
      <guid>https://codecrush.com.br/en/blog/design-patterns-a-essencia-da-arquitetura-de-software-robusta-e-escala</guid>
      <title>Design Patterns: what they are and how to apply them in software</title>
      <link>https://codecrush.com.br/en/blog/design-patterns-a-essencia-da-arquitetura-de-software-robusta-e-escala</link>
      <description>Design Patterns are reusable solutions to recurring software design problems. See categories, practical examples, and when to apply each one.</description>
      <pubDate>Tue, 14 Jul 2026 00:00:00 GMT</pubDate>
      <author>devhenrico@gmail.com (Henrico Piubello)</author>
      <category>Desenvolvimento</category>
      <content:encoded><![CDATA[Design Patterns (design patterns) are reusable, tested solutions to recurring problems in software design. Instead of reinventing the wheel, you apply a proven model — adapted to your context — and gain a shared vocabulary, more predictable code, and systems that are easier to maintain.

## What are Design Patterns?
Design Patterns are formal descriptions of solutions to common object-oriented design problems: each pattern names the problem, the class structure that solves it, the consequences of the choice, and usage examples. They were popularized in 1994 by the book *Design Patterns: Elements of Reusable Object-Oriented Software*, written by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides — the "Gang of Four" (GoF) — which cataloged 23 patterns.

The essential point: a pattern **is not a piece of ready-made code** to copy and paste. It is a model of relationships between classes and objects that you implement in your language, in your domain. Two systems can use the same Observer pattern with completely different code.

The most underrated benefit is communication. Saying "this module exposes a Facade" or "I replaced the giant if with Strategy" conveys an entire architecture decision in one sentence — the same role the [clean code principles](/en/glossario/clean-code) play in readability, patterns play in design.

## What are the categories of Design Patterns?
The 23 GoF patterns are divided into three categories, according to the type of problem they solve: object creation, composition of structures, and communication between objects.

| Category | Problem it solves | Best-known patterns |
| :--- | :--- | :--- |
| Creational | How to create objects flexibly and decoupled | Singleton, Factory Method, Abstract Factory, Builder, Prototype |
| Structural | How to compose classes and objects into larger structures | Adapter, Decorator, Facade, Composite, Proxy, Bridge |
| Behavioral | How objects interact and split responsibilities | Observer, Strategy, Command, Iterator, State, Chain of Responsibility |

The **creational** ones decouple the code from the concrete way of instantiating objects — useful when creation is expensive, conditional, or needs to be controlled. The **structural** ones organize relationships: they adapt incompatible interfaces, add responsibilities without inheritance, simplify complex subsystems. The **behavioral** ones define communication flows: who notifies whom, how algorithms are swapped at runtime, how requests become objects.

## Which patterns are most used in practice?
In day-to-day practice, half a dozen patterns solve the vast majority of problems — and you probably already use them without naming them:

1. **Singleton (creational):** ensures a single instance of a class with global access — typical in database connections, loggers, and configurations. Use sparingly: in excess it becomes disguised global state and makes testing harder.
2. **Factory Method (creational):** delegates object creation to a method that decides which concrete class to instantiate. It is the basis of dependency injection in frameworks like Spring and NestJS.
3. **Adapter (structural):** converts the interface of an existing class into the interface the client expects — the pattern behind every third-party SDK wrapper.
4. **Decorator (structural):** adds behavior to an object without changing its class, by wrapping it. Middlewares and HTTP request interceptors follow this idea.
5. **Observer (behavioral):** "subscribed" objects are notified when another''s state changes. It is the heart of event systems, from the browser DOM to React and Vue reactivity.
6. **Strategy (behavioral):** encapsulates interchangeable algorithms behind a single interface — the classic antidote to chains of `if/else` that choose "how to calculate" something (shipping, discount, sorting).

**Practical example:** a checkout that accepts Pix, card, and bank slip. Without a pattern, a `switch` grows with every new payment method. With Strategy, each method becomes a class with a `process()` method, and the checkout receives the ready-made strategy — adding a new method does not touch existing code, respecting the open/closed principle.

## Do Design Patterns still matter with modern frameworks?
Yes — the patterns did not disappear, they were absorbed into the tools. Modern [frameworks](/en/blog/tipos-de-frameworks) are collections of packaged patterns: the dependency injection container combines Factory and Singleton; routing with middlewares is Chain of Responsibility; state hooks implement Observer; ORMs use Proxy and Unit of Work.

Knowing the patterns changes your relationship with the framework: you stop memorizing APIs and start recognizing the intent behind them — which accelerates learning any new stack and helps you decide when to step off the happy path. In distributed architectures, the same principles reappear at a larger scale: an API Gateway is a Facade of [microservices](/en/glossario/microservices), and event queues are Observer between systems.

## When to use (and when to avoid) Design Patterns?
Use a pattern when the problem it solves has already shown up in the code; avoid it when the motivation is only "to follow best practices." Patterns have a cost: each one adds indirection and extra classes. The right question is not "which pattern can I use here?", but "what problem am I having — and is there a pattern for it?".

Signs a pattern will help:

- The same `if/else` over "types" repeats in several places (Strategy or polymorphism).
- Creating an object requires knowing too many implementation details (Factory or Builder).
- A state change needs to be reflected in several places (Observer).
- You need to integrate a library whose interface does not match your code (Adapter).

Signs of overengineering: abstractions with a single implementation, factories that always create the same class, layers that only forward calls. In those cases, direct and simple code wins — refactoring to a pattern later is cheaper than carrying speculative complexity from the start.

## How to learn Design Patterns efficiently?
The most efficient way to learn is to connect each pattern to a problem you have already lived, in three steps:

1. **Study the problem before the structure.** For each pattern, formulate in one sentence the pain it solves ("state changes need to notify interested parties" → Observer).
2. **Find the patterns in the code you already use.** Open the source of your favorite framework or identify patterns in your day-to-day libraries — it is the best catalog of real examples.
3. **Refactor your own code.** Take an extensive `switch` or a God class from a personal project and apply Strategy or Facade. Getting the dose wrong in study code teaches more than any reading — and a solid base of [programming logic](/en/blog/logica-de-programacao) makes the process natural.

Recommended resources: the GoF book (formal reference), *Head First Design Patterns* (didactic), and the Refactoring.Guru site, which illustrates the 23 patterns with examples in several languages.

## Conclusion
Design Patterns are the shared vocabulary of software engineering: solutions tested for decades to problems every object-oriented system faces. Mastering the three categories — creational, structural, and behavioral — and recognizing the six or seven most frequent patterns makes your code more predictable, your architecture conversations more precise, and your framework learning faster. But the criterion is as important as the catalog: a good pattern is one that solves a real problem in your code, not one that decorates the diagram. Start simple, identify the pain, and only then apply the pattern — that is the essence of robust and scalable architecture.]]></content:encoded>
    </item>
    <item>
      <guid>https://codecrush.com.br/en/blog/desvendando-os-salarios-em-tecnologia-no-brasil-guia-completo-para-pro</guid>
      <title>Technology salaries in Brazil: a guide by role and level</title>
      <link>https://codecrush.com.br/en/blog/desvendando-os-salarios-em-tecnologia-no-brasil-guia-completo-para-pro</link>
      <description>How much do people who work in tech earn in Brazil? See salary ranges by role and seniority, the factors that matter, and how to negotiate better.</description>
      <pubDate>Mon, 13 Jul 2026 00:00:00 GMT</pubDate>
      <author>devhenrico@gmail.com (Henrico Piubello)</author>
      <category>Carreira Tech</category>
      <content:encoded><![CDATA[Technology salaries in Brazil range from about R$ 3,000 for junior positions to over R$ 20,000 for seniors and specialists in hot areas like AI, cloud, and cybersecurity. The factors that weigh most are specialization, seniority, region, company size, and negotiation ability.

## Why are tech salaries so dynamic?
Tech salaries change fast because they track demand for specific skills — and that demand renews with every innovation cycle. Accelerated digitalization, the shortage of qualified professionals, and global competition for talent (intensified by remote work) raise the market value of those who master the technologies of the moment.

Companies of all sizes — from startups to big techs like Google, Microsoft, and Meta — compete for developers, data scientists, cloud engineers, and security specialists. When an area explodes, as happened with generative AI, the salaries of the few experienced professionals rise first. A [machine learning](/en/glossario/machine-learning) engineer with production experience today commands compensation well above the industry average precisely because of that scarcity.

The result: in technology, salary reflects less time in the career and more the value and rarity of what you know how to do.

## What factors determine an IT professional''s salary?
Five factors explain most of the salary variation in technology:

1. **Specialization:** skills in high demand (AI/ML, data engineering, cloud, cybersecurity, DevOps) pay above average. Mature and abundant stacks pay at the average.
2. **Seniority:** the gap between [junior, mid-level, and senior](/en/blog/dev-junior-pleno-senior) often exceeds 100%, according to salary guides from Robert Half and Catho. Leadership roles, such as [Tech Lead](/en/blog/o-que-e-tech-lead) and architect, sit at the top of the table.
3. **Location:** hubs like São Paulo, Florianópolis, and Belo Horizonte pay 20-30% above smaller cities — although remote work is flattening that difference.
4. **Company size and type:** big techs and multinationals offer packages with bonuses and shares; startups compensate with equity and fast growth; consultancies pay for specialization.
5. **Negotiation:** professionals who research market ranges and actively negotiate capture raises that those who accept the first offer leave on the table.

Education and certifications (AWS, Kubernetes, security) work as accelerators: they validate scarce skills and unlock higher bands, especially in large companies.

## How much does each role earn by experience level?
The ranges below are monthly reference values for the Brazilian market, compiled from salary guides and platforms like Glassdoor and Gupy — the figures vary by region, stack, and company size:

| Role | Junior | Mid-level | Senior |
| :--- | :--- | :--- | :--- |
| Front-end Developer | R$ 3,000 - 5,500 | R$ 5,500 - 9,000 | R$ 9,000 - 15,000+ |
| Back-end Developer | R$ 3,500 - 6,000 | R$ 6,000 - 10,000 | R$ 10,000 - 18,000+ |
| Full-stack Developer | R$ 4,000 - 6,500 | R$ 6,500 - 11,000 | R$ 11,000 - 20,000+ |
| DevOps Engineer | R$ 4,500 - 7,000 | R$ 7,000 - 12,000 | R$ 12,000 - 22,000+ |
| Data Scientist | R$ 4,000 - 7,000 | R$ 7,000 - 13,000 | R$ 13,000 - 25,000+ |
| QA Engineer | R$ 2,800 - 5,000 | R$ 5,000 - 8,500 | R$ 8,500 - 14,000+ |
| Security Analyst | R$ 3,500 - 6,000 | R$ 6,000 - 10,500 | R$ 10,500 - 19,000+ |
| Product Owner / Manager | R$ 5,000 - 8,000 | R$ 8,000 - 14,000 | R$ 14,000 - 25,000+ |

**Practical example:** a recent graduate with JavaScript and React enters as a junior front-end in the R$ 3,500 range. With 3-4 years and mastery of advanced frameworks, they reach mid-level near R$ 7,000. With 8+ years, technical leadership, and cloud or microservices skills, they exceed R$ 15,000 — and international remote roles can multiply that figure.

The ranges above are **gross** salary. To see how much actually lands in your account after INSS and Income Tax — including the new exemption up to R$ 5,000 that took effect in 2026 — use the [CLT net salary calculator](/en/ferramentas/calculadora-salario-liquido), which also shows your hourly value and helps compare CLT and contractor offers.

## Which areas are paying the most (and should keep doing so)?
The highest compensation is concentrated where high demand meets scarce supply:

- **AI and Machine Learning:** with the adoption of LLMs like ChatGPT, Gemini, and Claude in products and operations, AI engineers and NLP specialists are among the best paid in the market.
- **Cloud Computing:** cloud engineers and architects (AWS, Azure, GCP) remain critical to modern infrastructure — global cloud spending keeps growing year after year.
- **Cybersecurity:** the rise in attacks and LGPD requirements have raised the value of security analysts, SOC specialists, and pentesters.
- **Data engineering:** collecting, processing, and making reliable data available is a prerequisite for any AI initiative — and pays accordingly.

Two cross-cutting trends complete the picture: international remote work, which puts Brazilian professionals competing (and getting paid) in dollars, and the premium on those who combine technical depth with business vision — the profile with the fastest compensation growth in market surveys.

## How to negotiate salary and evaluate the complete package?
Negotiate with data and evaluate the whole offer, not just the base salary. A simple four-step process:

1. **Research beforehand:** gather the ranges for the role in your region and stack on Glassdoor, Robert Half and Catho guides — and compare your compensation with the market in the [tech salaries in Brazil](/en/ferramentas/salarios-tech) tool. Walk into the conversation knowing your target number and your acceptable minimum.
2. **Sell results, not tasks:** "I cut deploy time by 70%" negotiates better than "I handled CI/CD." A [well-built resume](/en/blog/guia-para-criar-curriculo-de-programador) already prepares that ground.
3. **Add up the total package:** annual bonus, profit sharing (PLR), stock options, health plan, allowances, and remote flexibility can be worth 20-40% beyond base salary. Compare offers by total value, not by the monthly figure.
4. **Negotiate with margin and in writing:** ask for a value slightly above your target, justify it with market research, and confirm the final agreement in writing.

For those aiming abroad: remote contracts with foreign companies usually pay in hard currency and require fluent English — investing in [English for developers](/en/blog/ingles-para-desenvolvedores-e-lideres) is, in practice, one of the highest-return financial decisions of the career.

## Conclusion
Tech salaries in Brazil reward specialization, seniority, and positioning: those who master scarce areas like AI, cloud, and security, prove impact, and negotiate with data sit at the top of the ranges — from R$ 3,000 at the start of the career to over R$ 20,000 in seniority, not counting bonuses, equity, and international remote opportunities. Use the tables as a reference, follow demand trends, and treat your compensation as an ongoing project: research the market every cycle, update your skills, and negotiate the complete package. In a sector that changes this fast, up-to-date information is the best salary argument.]]></content:encoded>
    </item>
    <item>
      <guid>https://codecrush.com.br/en/blog/ia-para-atendimento-maximizando-eficiencia-personalizacao-e-satisfacao</guid>
      <title>AI for Customer Service: A Complete and Practical Guide</title>
      <link>https://codecrush.com.br/en/blog/ia-para-atendimento-maximizando-eficiencia-personalizacao-e-satisfacao</link>
      <description>AI for customer service uses chatbots, voicebots, and data analytics to automate and personalize support. See types, advantages, and how to implement.</description>
      <pubDate>Sun, 12 Jul 2026 00:00:00 GMT</pubDate>
      <author>devhenrico@gmail.com (Henrico Piubello)</author>
      <category>Inteligência Artificial</category>
      <content:encoded><![CDATA[AI for customer service is the use of technologies such as natural language processing, machine learning, and automation to answer, route, and personalize interactions with consumers. It serves 24/7, reduces costs and queues, and frees human agents for cases that truly require empathy and judgment.

## What is AI for customer service?
AI for service is an ecosystem of solutions — not just a chatbot. It combines Natural Language Processing (NLP) to interpret customer intent, [machine learning](/en/glossario/machine-learning) to learn from past interactions, sentiment analysis to capture the emotional tone, and automation to execute tasks end to end.

The goal is twofold: give the customer immediate, consistent answers on any channel and at any time, and give the company operational efficiency with actionable data about each conversation.

**Practical example:** Bradesco uses the virtual assistant BIA (Bradesco Inteligência Artificial) to answer balance queries, payments, and products across multiple channels, including the app and WhatsApp — processing natural language and personalizing the banking experience of millions of customers.

## What types of AI are used in customer service?
Six technologies cover most use cases in service:

1. **Chatbots and virtual assistants:** simulate text conversations to answer FAQs, provide first-level support, and collect data before the human handoff. The [chatbot and automation tools](/en/blog/ferramentas-chatbot-de-automacao) range from visual platforms to solutions with LLMs like Dialogflow (Google) and Watson Assistant (IBM).
2. **Voicebots and smart IVR:** bring the same intelligence to the phone, combining speech recognition (ASR), voice synthesis (TTS), and NLP — Itaú, for example, uses voicebots for simple queries and transactions.
3. **Sentiment analysis:** monitors emails, chats, and social networks in real time to detect dissatisfied customers and trigger proactive intervention.
4. **Agent Assist:** AI that works alongside the human agent, fetching CRM data, suggesting answers and knowledge base articles during the conversation — an approach of solutions like Genesys and Five9.
5. **RPA with AI:** software robots that automate customer service back-office: updating records, processing reimbursements, validating documents.
6. **Predictive analytics:** models that anticipate churn, predict the customer next need, and prioritize queues by risk and value.

## What are the advantages and disadvantages of AI in customer service?
AI delivers scale and efficiency, but has costs and limits that must enter the planning:

| Characteristic | Human service | AI service |
| :--- | :--- | :--- |
| Scalability | Limited by the team | Virtually unlimited |
| Availability | Business hours/shifts | 24/7 uninterrupted |
| Cost per interaction | Higher | Low after the initial investment |
| Empathy | High, natural | Low or simulated |
| Complex cases | Strong | Limited to known flows |
| Consistency | Variable | Standardized |
| Data analysis | Manual and sample-based | Automatic and at scale |

**Main advantages:** continuous availability, cost and average handling time (AHT) reduction, response consistency, mass personalization based on customer history, and insight generation on recurring pain points.

**Main limitations:** initial investment and continuous model maintenance, dependence on quality data (bad data yields bad AI), difficulties with ambiguous or emotionally delicate requests, and privacy obligations — in Brazil, the LGPD requires transparency and a legal basis to process conversation data.

The practical rule: automate the repetitive, keep the human on the complex, and ensure a smooth handoff between the two, with the bot delivering to the agent all the context already collected.

## How to implement AI in customer service step by step?
A successful implementation starts small, measures everything, and scales with evidence:

1. **Define goals and KPIs:** choose measurable goals — reduce AHT by 30%, raise CSAT, increase first-contact resolution rate (FCR), or deflect X% of volume to self-service.
2. **Map available data:** ticket history, FAQs, knowledge base, and past conversations are the bot raw material. Clean and organize before training any model.
3. **Choose the platform:** evaluate ready-made solutions (Zendesk AI, Salesforce Einstein, Dialogflow, Watson) versus custom development with LLMs, considering integration with your CRM and channels (site, WhatsApp, phone).
4. **Run a closed-scope pilot:** start with one use case — for example, order status on the site chat — and a limited group of customers. Define clear success criteria before launching.
5. **Design the human handoff:** every flow needs an exit to an agent with the full conversation context. Customers tolerate bots; they do not tolerate repeating the story three times.
6. **Measure, adjust, and scale:** track KPIs weekly, fix misinterpreted intents, expand to new use cases and channels as the numbers confirm the gain.

**Practical example:** an e-commerce that starts with the bot answering "where is my order?" — the most frequent question — usually deflects 30-50% of ticket volume in a few weeks, freeing the team for exchanges, complaints, and sensitive cases.

## What best practices ensure good customer service with AI?
Four principles separate a bot that helps from a bot that irritates:

- **Transparency:** make it clear the customer is talking to an AI and always offer the path to a human — in addition to good practice, it is an LGPD compliance requirement.
- **Personalization with consent:** use customer history to contextualize answers, processing personal data with a legal basis and security.
- **Continuous curation:** review real conversations every week to fix wrong intents, update the knowledge base, and eliminate dead ends in the flow.
- **Product vision:** treat the bot as a living product, with a backlog and metrics, and connect it to the other [artificial intelligence applications](/en/blog/aplicacoes-da-inteligencia-artificial) of the company — sales, marketing, and operations share the same customer data.

## Conclusion
AI for customer service has gone from a differentiator to a standard: chatbots, voicebots, sentiment analysis, and agent assistants already sustain the support of banks, retailers, and carriers in Brazil, with 24/7 availability, lower costs, and personalization at scale. The limits — initial investment, data quality, LGPD, and the absence of genuine empathy — do not cancel the gain; they define the correct design: automate the repetitive, keep humans on complex cases, and ensure handoff with context. Start with a small, measurable pilot, learn from the numbers, and scale with confidence. The future of customer service is not man or machine — it is the well-orchestrated combination of both.]]></content:encoded>
    </item>
    <item>
      <guid>https://codecrush.com.br/en/blog/inteligencia-artificial-para-marketing-maximizando-o-impacto-e-a-perso</guid>
      <title>AI for marketing: personalization and results at scale</title>
      <link>https://codecrush.com.br/en/blog/inteligencia-artificial-para-marketing-maximizando-o-impacto-e-a-perso</link>
      <description>AI in marketing automates campaigns, personalizes the journey at scale, and optimizes ads with data. Learn the benefits, tools, and how to get started.</description>
      <pubDate>Sat, 11 Jul 2026 00:00:00 GMT</pubDate>
      <author>devhenrico@gmail.com (Henrico Piubello)</author>
      <category>Inteligência Artificial</category><category>Tecnologia e Inovação</category>
      <content:encoded><![CDATA[Artificial Intelligence for marketing is the use of machine learning, natural language processing, and predictive analytics to segment audiences, personalize experiences, and optimize campaigns automatically. The practical result: more conversion with less waste of budget and team time.

## What is Artificial Intelligence for marketing?

AI for marketing is the application of algorithms that learn from data — browsing, purchase, and engagement — to predict behavior and execute marketing actions autonomously or assisted. Where traditional marketing relied on intuition and broad segmentation, AI processes millions of signals in real time and decides what to show, to whom, when, and for how much.

This encompasses several technologies: machine learning for prediction and segmentation, NLP to generate and analyze text, computer vision for creative analysis, and recommendation systems for personalization — all powered by [big data](/en/glossario/big-data) from multiple sources.

**Practical example:** Amazon's recommendation system analyzes the purchase and browsing history of millions of users to suggest relevant products, boosting cross-selling. In email marketing, AI chooses content, send time, and subject line per recipient, based on individual behavior.

## How does AI optimize digital marketing strategies?

AI acts on five main fronts of digital marketing:

1. **Predictive analytics:** anticipates trends, identifies customers at risk of churn, and estimates the lifetime value (LTV) of each segment, allowing action before the problem or opportunity.
2. **Real-time personalization:** adapts messages, offers, and even the site layout for each visitor, creating unique journeys that increase engagement and loyalty.
3. **Paid media optimization:** Google Ads Smart Bidding and Meta Advantage+ adjust bids and segmentation at each auction, considering hundreds of contextual signals to maximize conversions within budget — something impossible to replicate manually.
4. **Marketing automation:** email sequences with behavioral triggers, lead-qualifying chatbots, and content draft generation free the team for strategic work.
5. **SEO and content:** AI analyzes search patterns and user intent, identifies content gaps, and suggests optimizations — increasingly important as search engines respond via generative AI.

These fronts reinforce each other: predictive analytics feeds personalization, which improves ad performance, which generates more data for the models — a continuous optimization cycle that connects [marketing and information technology](/en/blog/marketing-e-tecnologia-da-informacao) end to end.

## What are the main benefits of AI in marketing?

Five benefits concentrate the value of AI for marketing teams:

- **Higher ROI:** budget automatically directed to the channels, audiences, and creatives with the best performance.
- **Operational efficiency:** repetitive tasks — segmentation, reports, A/B tests, drafts — leave the team's routine.
- **Personalization at scale:** individualized experiences for millions of customers simultaneously, unfeasible for manual operations.
- **Deep insights:** patterns invisible to human analysis emerge from the data, informing product and positioning decisions.
- **Scalability:** the operation grows without proportional increases in cost or headcount.

**Practical example:** HubSpot AI generates content ideas, optimizes subject lines, and analyzes sentiment in chatbot interactions; Adobe Sensei automates image editing and digital experience personalization. In both, the effect is the same: less time on mechanical tasks, more quality and relevance in communications.

## What are the challenges and limitations of AI in marketing?

Four challenges determine whether AI will generate value or frustration:

1. **Data quality:** models are only as good as the data that trains them. Incomplete, duplicated, or biased data produces wrong predictions and faulty campaigns — cleaning and integrating sources is continuous work.
2. **Privacy and LGPD:** tracking and profiling consumers requires a legal basis, transparency, and consent. Fines and reputational damage cost more than any conversion gain.
3. **Algorithmic bias:** if the historical data carries bias (promotions concentrated in one demographic group), AI amplifies it, excluding audiences and exposing the brand.
4. **Black box and integration:** opaque algorithms make it hard to explain why a decision was made, and connecting CRM, automation, and analytics from different vendors without robust APIs creates data silos and a fragmented view of the customer.

Mitigation involves data governance, human review of critical decisions, and starting with small, auditable use cases.

## Which AI tools for marketing to use at each stage?

The ecosystem is broad, but three categories cover most needs:

| Category | Examples | Main function | Point of attention |
| :--- | :--- | :--- | :--- |
| Content generation | ChatGPT, Gemini, Claude, Jasper, Copy.ai | Texts, ideas, ad variations, SEO | Requires human review and brand voice |
| Ad optimization | Google Smart Bidding, Meta Advantage+ | Bids, segmentation, and budget in real time | Depends on conversion data volume |
| CRM and automation | Salesforce Einstein, HubSpot AI | Sales forecasting, lead scoring, journeys | Requires clean data and integration |

For analysis and visualization, BI tools like [Power BI](/en/blog/o-que-e-power-bi) and Tableau incorporate AI to detect anomalies and explain performance variations. The right choice depends less on the "best" tool and more on integration with your stack and the maturity of your data.

## How to implement AI in marketing step by step?

A lean roadmap to start from scratch with controlled risk:

1. **Define a SMART objective:** for example, reduce the cost per acquisition by 20% in the quarter or raise the email open rate by 15%.
2. **Audit your data:** check the quality, volume, and accessibility of CRM, analytics, and media data. Invest in cleaning and integration before any model.
3. **Choose a pilot use case:** a single email campaign with AI-optimized sending, or Smart Bidding in a search campaign. Small scope, clear metric.
4. **Execute and compare:** run the pilot against a control group and measure the real difference, not the impression of improvement.
5. **Scale what worked:** expand to new channels and use cases, training the team to operate the tools — AI does not replace the marketing professional; it empowers those who know how to use it.

**Practical example:** an e-commerce that deploys a qualification chatbot on the support page, measures resolution rate and satisfaction for four weeks, and only then expands to the entire site and integrates it with the CRM — incremental learning, protected investment.

## Conclusion

AI has transformed marketing from a game of intuition into a data discipline: predictive analytics, personalization at scale, self-optimized ads, and assisted content production are already the competitive standard, with measurable ROI and efficiency. The challenges — data quality, LGPD, bias, and algorithmic opacity — call for governance, not paralysis. The proven path is to start small: a clear objective, an auditable pilot, an honest comparison with a control group, and progressive scaling of what works. The [applications of artificial intelligence](/en/blog/aplicacoes-da-inteligencia-artificial) in marketing will only tend to deepen; the advantage will belong to those who build now the data foundation, the skills, and the judgment to use them well.]]></content:encoded>
    </item>
    <item>
      <guid>https://codecrush.com.br/en/blog/platform-engineering-desvendando-a-engenharia-de-plataforma-para-acele</guid>
      <title>Platform Engineering: what it is and how it accelerates dev teams</title>
      <link>https://codecrush.com.br/en/blog/platform-engineering-desvendando-a-engenharia-de-plataforma-para-acele</link>
      <description>Platform Engineering creates self-service internal platforms that abstract infrastructure. See benefits, differences from DevOps and how to adopt it.</description>
      <pubDate>Wed, 15 Jul 2026 00:00:00 GMT</pubDate>
      <author>devhenrico@gmail.com (Henrico Piubello)</author>
      <category>DevOps e Ferramentas</category><category>Cloud e Infraestrutura</category>
      <content:encoded><![CDATA[Platform Engineering is the discipline of building and operating internal platforms that deliver infrastructure, pipelines and observability as self-service for developers. It reduces the cognitive load of product teams, standardizes operations and accelerates software delivery in organizations that scale.

## What is Platform Engineering and why does it matter?
Platform Engineering is the practice of treating internal infrastructure as a product: a dedicated team builds an Internal Developer Platform (IDP) that packages provisioning, CI/CD, monitoring and security into simple, self-service interfaces. The "customer" is the company's own developers.

The motivation is direct: in the era of microservices and cloud, each product team started carrying operational responsibilities — configuring clusters, pipelines, alerts, permissions. This cognitive load steals time from business logic and multiplies divergent configurations. The platform gives the focus back: the dev asks for "a new service with a database and deploy" and gets everything provisioned with the house's standards.

**Practical example:** without a platform, standing up a microservice requires configuring cloud, pipeline, logs and security by hand — days of work. With a portal like **Backstage** (created by Spotify), the developer picks a template and provisions everything in minutes, with best practices built in.

## How does Platform Engineering work in practice?
The platform team builds a layer of abstraction and automation over the infrastructure, typically composed of:

- **Developer portal:** a service catalog, templates and documentation (Backstage is the market standard).
- **Orchestration and infrastructure as code:** [Kubernetes](/en/glossario/kubernetes) for containers and Terraform to provision resources in a declarative and reproducible way.
- **[CI/CD](/en/glossario/ci-cd) pipelines:** GitHub Actions, GitLab CI or ArgoCD (GitOps) pre-configured in the templates.
- **Observability:** metrics, logs and traces integrated by default — Prometheus, Grafana and the like — so that every service is born monitored.
- **Golden paths:** paved paths that make the correct option the easy option: a service template already ships an optimized Dockerfile, deploy manifest, pipeline and alerts.

The platform team defines standards, automates the repetitive and supports product teams — not as a ticket bottleneck, but as a supplier of an internal product with a roadmap, SLAs and adoption metrics.

**Practical example:** a platform microservice template includes a ready container (see the [Docker guide](/en/blog/guia-docker-na-programacao)), pipeline, monitoring integration and security policies. The developer generates the project and does the first deploy on the same day, in compliance with the company from the initial commit.

## What is the difference between Platform Engineering and DevOps?
Platform Engineering does not replace [DevOps](/en/glossario/devops) — it operationalizes it at scale. DevOps is the culture of uniting development and operations; the platform is the product that makes this culture consumable by dozens of teams without each reinventing the tools:

| Aspect | DevOps (culture) | Platform Engineering (product) |
| :--- | :--- | :--- |
| What it is | Philosophy of dev + ops collaboration | Discipline that builds the internal platform |
| Who practices it | All teams | Dedicated platform team |
| How it scales | Each team builds its tools | Centralized self-service standards and automations |
| Typical risk | Fragmentation and duplicated effort | Platform disconnected from dev needs |
| Success metric | Deploy frequency and reliability | Platform adoption and team productivity |

In small teams, the pure "you build it, you run it" model works well. The inflection point comes with growth: when several teams duplicate infrastructure effort, the platform starts paying for its cost.

## What are the benefits of Platform Engineering?
Five gains appear consistently in those who adopt the discipline:

1. **Productivity:** less time on configuration and more on product code — Gartner estimates gains of up to 50% in developer productivity with mature platforms.
2. **Standardization:** consistent environments, fewer configuration errors and onboarding of new devs in days, not weeks.
3. **Embedded security and compliance:** policies enforced on the platform apply to all services from the first deploy (security by design).
4. **Controlled costs:** automation reduces manual work, and the centralized view of cloud resources makes optimization easier — shared territory with [FinOps](/en/blog/o-que-e-finops).
5. **Lower time-to-market:** provisioning that dropped from days to minutes means features tested and released faster.

## What are the challenges and limitations?
Four risks concentrate adoption failures:

1. **High initial investment:** building a robust platform takes time and experienced engineers in infrastructure, product and security — scarce and expensive.
2. **Double cultural change:** the platform team needs to think like a product (listen to users, measure adoption, iterate), and product teams need to trust the abstraction instead of recreating their own solutions.
3. **Risk of bottleneck or shelfware:** a platform imposed top-down becomes a ticket queue; a platform built without listening to devs becomes software with no users. Adoption must be earned, not mandated.
4. **Leaky abstractions:** if the layer hides too much, the dev is powerless when debugging; if it hides too little, it does not reduce cognitive load. Calibrating it requires continuous iteration and good end-to-end [observability](/en/blog/observabilidade-desvendando-o-comportamento-de-sistemas-distribuidos-p).

The common mitigation to all: treat the platform as a product, with metrics (adoption, provisioning time, dev satisfaction) and a constant feedback loop.

## How to start with Platform Engineering?
An incremental roadmap with controlled risk:

1. **Measure the pain first:** identify where teams lose time — provisioning, pipelines, onboarding, operations tickets. This data defines the initial scope and the baseline.
2. **Start with a golden path:** pick the most frequent flow (e.g., creating a web service with deploy) and pave only it, end to end, for a pilot team.
3. **Build the minimum team:** 2-4 engineers with an infrastructure profile and product mindset. Name a roadmap owner.
4. **Adopt before building:** use mature building blocks (Backstage, Terraform, ArgoCD) and integrate; build your own tool only when the market does not meet the need.
5. **Measure adoption and iterate:** track how many services are born through the platform, time to first deploy and developer satisfaction. Expand the golden paths as real demand grows.

**Practical example:** a company with 15 teams starts by paving only the creation of APIs in Node.js — template, pipeline and observability ready. In three months, the time to first deploy drops from a week to an afternoon; only then does the platform expand to queues, jobs and front-ends.

## Conclusion
Platform Engineering is the industry's response to the accumulation of operational complexity on product teams: a dedicated team turns infrastructure, pipelines and standards into a self-service internal product, giving developers back the focus on business logic. The gains — productivity, standardization, embedded security and lower time-to-market — are real, but depend on one condition: treating the platform as a product with internal customers, and not as an imposed infrastructure project. Start by measuring the pain, pave a golden path for a pilot team and let adoption guide the expansion. In organizations that scale, the question has stopped being "if" and has become "when" to invest in platform engineering.]]></content:encoded>
    </item>
    <item>
      <guid>https://codecrush.com.br/en/blog/25-frases-sobre-tecnologia</guid>
      <title>25 Quotes on Technology and Programming from Great Names</title>
      <link>https://codecrush.com.br/en/blog/25-frases-sobre-tecnologia</link>
      <description>A collection of 25 quotes on technology and programming, from Steve Jobs to Grace Hopper, with author, context and the meaning of each quote.</description>
      <pubDate>Sun, 03 Mar 2024 00:00:00 GMT</pubDate>
      <author>devhenrico@gmail.com (Henrico Piubello)</author>
      <category>Tecnologia e Inovação</category><category>Carreira Tech</category>
      <content:encoded><![CDATA[![Artwork with 25 quotes on technology and faces of Steve Jobs and Bjarne Stroustrup](/static/images/articles/Frases.webp)

Quotes on technology are sayings from programmers, scientists and founders — from Steve Jobs to Grace Hopper — that summarize what it means to build software. This CodeCrush collection brings together 25 quotes on programming with author and context, ready to inspire studies, talks and dev careers.



## What are the most famous quotes about technology?

The most famous quotes about technology come from founders and scientists who shaped modern computing. Steve Jobs, Marc Andreessen and Edsger Dijkstra each summarized, in their own way, why programming is more than typing code: it is a way of thinking and of transforming entire industries.

1. **Steve Jobs**: "Everybody should learn to program, because it teaches you how to think." The Apple co-founder defended the idea in the 1995 interview that became the documentary _Steve Jobs: The Lost Interview_ — for him, programming is a school of reasoning, not just a technical skill.
2. **Marc Andreessen**: "Software is eating the world." The Netscape co-founder published the thesis in the essay ["Why Software Is Eating the World"](https://a16z.com/why-software-is-eating-the-world/), in The Wall Street Journal, in 2011 — and it still explains the digital transformation of every sector.
3. **Edsger Dijkstra**: "If debugging is the process of removing bugs, then programming must be the process of putting them in." An ironic observation attributed to the computing science pioneer, a reminder that errors are an inevitable part of software development.
4. **Eric S. Raymond**: "Good programmers know what to write. Great ones know what to rewrite (and reuse)." The line is in the essay [The Cathedral and the Bazaar](http://www.catb.org/~esr/writings/cathedral-bazaar/) (1997) and sums up the value of refactoring and code reuse.
5. **Donald Knuth**: "Programming is like writing poetry, but with fewer words and more mathematical expression." A quote attributed to the author of _The Art of Computer Programming_, who since the 1960s has treated programming as an art that demands creativity and mathematical precision.
6. **Bjarne Stroustrup**: "Programming is formalized thought." Attributed to the creator of C++, the line describes code as a structured expression of human reasoning to solve complex problems.
7. **Chris Pine**: "Programming is the art of figuring out what you want to do, and then translating it into a language a computer can understand." The author of _Learn to Program_ sums up the essence of [programming logic](/en/blog/logica-de-programacao) here: translating human intent into machine instructions.
8. **Scott Hanselman**: "I'm not a programmer, I'm a problem solver who uses code." A quote attributed to the developer and speaker, highlighting the practical nature of coding: code is a means, not an end.

## Quotes on programming as art and creativity

Comparing programming to art is one of the most recurring themes among great names in computing. From pioneers Grace Hopper and Margaret Hamilton to Doom creator John Carmack, the quotes below treat code as poetry, music and dance — creativity guided by technical rigor.

9. **Grace Hopper**: "Programming is a form of art that lets individuals express their creativity through the creation of software." A quote attributed to the computing pioneer who developed the first compiler in history.
10. **Margaret Hamilton**: "Programming is an art form that lets individuals bring their imagination to life through code." Attributed to the scientist who led the flight software development for NASA's Apollo mission.
11. **Matt Mullenweg**: "Programming is the art of finding elegant solutions to complex problems." Attributed to the founder of WordPress, the platform that powers a large share of the web.
12. **John Carmack**: "Programming is like playing a musical instrument, where each line of code is a note in the symphony of technology." Attributed to the co-founder of id Software, creator of classics like Doom and Quake.
13. **Philip Greenspun**: "Programming is like writing music; both activities combine logic with creativity to create something unique." Attributed to the founder of ArsDigita.
14. **Alan Perlis**: "Programming is the art of creating order out of digital chaos." Attributed to the first winner of the Turing Award, famous for his epigrams about programming.
15. **Ada Lovelace**: "Programming is like a universal language that connects people from different cultures and backgrounds." Attributed to the mathematician considered the first programmer in history, for her work with the Analytical Engine in the 19th century.
16. **Vint Cerf**: "Programming is a dance between man and machine, where every move creates a new rhythm in the digital symphony." Attributed to one of the fathers of the internet, co-creator of the TCP/IP protocol.
17. **Alan Turing**: "Programming is the best alchemy of the human mind. It turns thoughts into reality." Attributed to the mathematician who established the theoretical foundations of modern computing.

## Which quotes inspire the careers of those who program?

Quotes about careers in technology reinforce that programming is continuous learning, correcting mistakes and building the future. The following quotes, from names like Linus Torvalds, Barbara Liskov and Tim Berners-Lee, serve as a compass for those evolving from [junior to senior dev](/en/blog/dev-junior-pleno-senior).

18. **Linus Torvalds**: "Programming is a journey of continuous discovery, where every line of code is a new opportunity to learn." Attributed to the creator of the Linux kernel and [Git](/en/glossario/git).
19. **Barbara Liskov**: "Programmers are not those who write perfect code, but those who know how to fix their errors." Attributed to the computer scientist winner of the 2008 Turing Award.
20. **Tim Berners-Lee**: "Programming is a powerful tool that empowers individuals to shape the future of technology." Attributed to the inventor of the World Wide Web.
21. **Larry Page**: "Programming is a powerful tool that lets us turn dreams into digital reality." Attributed to the co-founder of Google.
22. **Tim Cook**: "Programming is the language of the future, and everyone should learn to speak and understand it." Attributed to Apple's CEO, a public defender of programming education in schools.
23. **Sheryl Sandberg**: "Programming is the ability to turn ideas into digital reality." Attributed to the former COO of Meta (Facebook).
24. **Kathy Sierra**: "Programming is like an intellectual martial art, where discipline and constant practice lead to mastery." Attributed to the author and programmer creator of the Head First book series.
25. **Donald Knuth**: "Programming is a journey of intellectual exploration, where every line of code reveals new possibilities and challenges." The second quote on the list attributed to the author of _The Art of Computer Programming_, reinforcing the theme of continuous learning.

## Is it worth learning programming in 2026?

Yes: the most recent data shows a global community in full expansion. According to the [GitHub Octoverse 2025](https://github.blog/news-insights/octoverse/octoverse-a-new-developer-joins-github-every-second-as-ai-leads-typescript-to-1/) report, the platform surpassed 180 million developers, with more than 36 million new profiles in a year — on average, one new dev per second.

Meanwhile, the [Stack Overflow Developer Survey 2025](https://survey.stackoverflow.co/2025/), which heard more than 49 thousand developers in 177 countries, points to [JavaScript](/en/glossario/javascript) as the most used language, cited by 66% of respondents. In the same period, Octoverse recorded [TypeScript](/en/glossario/typescript) taking, in August 2025, the position of most used language on GitHub, driven by the wave of AI (Artificial Intelligence) projects.

These numbers give concrete context to the quotes on the list: those who want to understand [whether it is worth studying programming](/en/blog/estudar-programacao) or choose among the [most used programming languages](/en/blog/7-linguagens-de-programacao-mais-usadas) find a market that confirms, fifteen years later, Andreessen's prediction — software is still eating the world.

## How to use technology quotes in everyday life?

Technology quotes work better as a communication tool than as decoration. They condense engineering principles into one memorable line, which is why they appear as much in professional as in educational contexts. Some practical uses:

- **Talks and classes**: opening a presentation with Dijkstra's quote about bugs breaks the ice and introduces the topic of software quality.
- **Bios and portfolios**: a short quote from Hopper or Knuth gives personality to professional profiles and "about" pages.
- **Team culture**: Eric S. Raymond's quote about rewriting code is a good motto for refactoring and review rituals.
- **Beginner motivation**: Steve Jobs' line helps explain to students why programming builds reasoning, not just technique.

A good editorial practice: whenever possible, cite the primary source. Quotes with documented records (Jobs, Andreessen, Raymond) carry more authority than traditional attributions with no known source.

## Conclusion

Of the 25 quotes on technology gathered here, the ones that age best are the verifiable and specific ones: Andreessen predicted in 2011 a world devoured by software, and Jobs summed up in 1995 the cognitive value of programming — both more relevant than ever in the AI era. The practical recommendation is to treat quotes as a starting point, not as a conclusion: pick a quote that captures your career moment, understand the context of who said it and, above all, get back to the code. Programming teaches you to think — and thinking well never goes out of style.]]></content:encoded>
    </item>
    <item>
      <guid>https://codecrush.com.br/en/blog/5-sites-para-aprender-css</guid>
      <title>5 Sites to Learn CSS by Playing: Flexbox and Grid</title>
      <link>https://codecrush.com.br/en/blog/5-sites-para-aprender-css</link>
      <description>Flexbox Froggy, Flexbox Zombies, Grid Garden, Flexbox Defense and Grid Critters teach CSS Flexbox and Grid with interactive browser games.</description>
      <pubDate>Sat, 29 Jul 2023 00:00:00 GMT</pubDate>
      <author>devhenrico@gmail.com (Henrico Piubello)</author>
      <category>Desenvolvimento</category><category>Web e APIs</category>
      <content:encoded><![CDATA[The five best sites to learn CSS (Cascading Style Sheets) by playing are Flexbox Froggy, Flexbox Zombies, CSS Grid Garden, Flexbox Defense and Grid Critters. All teach Flexbox and Grid, the two layout systems of modern CSS, with interactive challenges and immediate feedback right in the browser.



![Illustration of monitors showing interactive sites to learn CSS by playing](/static/images/articles/learning-css.webp)

## What are the 5 best sites to learn CSS?

The five sites below turn layout study into a game: you write real CSS code over an already-built [semantic HTML](/en/blog/o-que-e-html-estrutura-seo) (HyperText Markup Language) and see the result instantly. Three are free browser games; the other two are game-courses by Mastery Games, with narrative and long-term progression.

1. **Flexbox Froggy** — a free game by Codepip where you position frogs in a pond using Flexbox properties.
2. **Flexbox Zombies** — a Mastery Games game-course with a zombie apocalypse narrative to reinforce Flexbox.
3. **CSS Grid Garden** — a free game where you grow a carrot garden by writing CSS Grid.
4. **Flexbox Defense** — a tower defense where towers are positioned with Flexbox properties.
5. **Grid Critters** — Dave Geddes game-course to master CSS Grid by helping aliens get back home.

| Site            | Focus        | Format                                   |
| --------------- | ----------- | ----------------------------------------- |
| Flexbox Froggy  | CSS Flexbox | Free browser game (Codepip)      |
| Flexbox Zombies | CSS Flexbox | Game-course with narrative (Mastery Games)  |
| CSS Grid Garden | CSS Grid    | Free browser game (Codepip)      |
| Flexbox Defense | CSS Flexbox | Free tower defense strategy game |
| Grid Critters   | CSS Grid    | Complete game-course (Mastery Games)       |

Mastering these two layout systems is a safe investment for anyone working with [frontend](/en/glossario/frontend): according to the [Stack Overflow Developer Survey 2025](https://survey.stackoverflow.co/2025/), HTML/CSS is used by 62% of developers, behind only [JavaScript](/en/glossario/javascript) at 66%. If you are starting from scratch, the CodeCrush guide on [how the CSS language works](/en/blog/linguagem-de-estilos-css) explains the fundamentals before the practice.

## How does Flexbox Froggy teach CSS Flexbox?

[Flexbox Froggy](https://flexboxfroggy.com/) teaches CSS Flexbox by asking you to move frogs onto the correct lily pads by writing real properties like `justify-content` and `align-items`. The game is created by Codepip, free, runs right in the browser and is translated into about 40 languages, including Portuguese.

![Flexbox Froggy game start screen for learning CSS Flexbox](/static/images/articles/froggy.webp)

Flexbox is the CSS module that creates flexible, responsive layouts in one dimension, making it easier to position and align elements inside a container, regardless of screen size or device. Each Flexbox Froggy challenge corresponds to a [Flexbox property documented on MDN](https://developer.mozilla.org/pt-BR/docs/Web/CSS/CSS_flexible_box_layout/Basic_concepts_of_flexbox), and you need to apply it correctly to get the frog to the right leaf.

The game is composed of several levels of increasing difficulty. In each, you get a specific arrangement of lily pads and a hint about which property to use; your task is to write the correct value until the frog reaches the destination. Feedback is immediate: if the property is right, the frog moves right away; if not, you adjust and try again, with no penalty.

This combination of short levels, instant feedback and zero setup makes Flexbox Froggy the most recommended entry point on this list for anyone who has never written a line of Flexbox.

## Flexbox Zombies: learn Flexbox surviving the apocalypse

[Flexbox Zombies](https://mastery.games/flexboxzombies/) is a game-course by Mastery Games that teaches CSS Flexbox inside a survival narrative in a zombie apocalypse. Instead of isolated exercises, each chapter presents realistic design scenarios that require correct use of Flexbox properties to advance the story.

![Flexbox Zombies game start screen, an interactive CSS Flexbox course](/static/images/articles/flexboxzombies.webp)

When you access the site, you are presented as a survivor in a world infested by zombies. To communicate with other survivors, you need to build an interactive story page — and that is where learning kicks in: each step asks for a responsive layout built with Flexbox, from basic positioning to fine alignment of multiple elements.

The big differentiator of Flexbox Zombies is repetition in different contexts: properties reappear across chapters in new situations, which helps reinforce the content instead of memorizing it for a single exercise. The game also offers instant feedback on each choice, allowing you to learn from mistakes and try different approaches.

For those who already finished Flexbox Froggy and want to consolidate knowledge with longer, more contextualized challenges, Flexbox Zombies is the natural progression.

## How does CSS Grid Garden teach CSS Grid?

[CSS Grid Garden](https://cssgridgarden.com/) teaches CSS Grid by turning each cell of a grid into a piece of land: you write properties like `grid-column` and `grid-row` to water the right carrots and remove weeds. The game is free, runs in the browser and follows the same progressive-level format as Flexbox Froggy.

![CSS Grid Garden game start screen for learning CSS Grid](/static/images/articles/garden.webp)

CSS Grid is the CSS layout system that organizes elements in rows and columns inside a container, allowing you to create complex, responsive structures with few lines of code. In Grid Garden, each level brings a specific task: creating rows and columns, defining areas, controlling spacing between elements or adjusting item layout in the grid.

To solve the challenges, you need to understand how CSS Grid properties work and how to combine them to achieve the desired layout. As you progress, levels become more complex and gradually introduce advanced features. Visual feedback is immediate: if you get it right, the garden blooms; if not, you adjust the code and try again.

Learning Grid today also lays the groundwork for the future of the language: in the [State of CSS 2025](https://2025.stateofcss.com/en-US/features/), subgrid — a Grid extension for nested grids — ranked second among the most loved features by survey participants.

## Flexbox Defense: defense towers positioned with Flexbox

[Flexbox Defense](http://www.flexboxdefense.com/) is a free strategy game in the tower defense style where you protect a web page by positioning defense towers with CSS Flexbox properties. Each enemy wave is only contained if the towers are in the right place — and the only way to move them is by writing CSS.

![Flexbox Defense game start screen, a CSS Flexbox tower defense game](/static/images/articles/defencer.webp)

Each level of Flexbox Defense presents a different page configuration. Towers are HTML elements inside flex containers, and you use properties like `justify-content` and `align-items` to shift them to strategic points along the path. The goal is to find the right combination of properties so invaders do not breach the defense.

As levels advance, challenges require increasingly precise combinations, which forces you to reason about the main axis and cross axis of Flexbox — exactly the kind of intuition that separates those who memorized syntax from those who truly understand the model. If you enjoy this learning format, also check out the [10 sites with programming challenges](/en/blog/sites-com-desafios-programacao-resolver) to practice other skills.

## Grid Critters: is it worth it to master CSS Grid?

Grid Critters is worth it for anyone wanting to go beyond the basics: it is the most in-depth material on this list about CSS Grid, in the format of a game-course created by Dave Geddes, the same author of Flexbox Zombies at Mastery Games. The adventure takes place on an alien planet where you guide the "Grid Critters" back to their spaceships using the grid.

![Grid Critters game start screen for mastering CSS Grid](/static/images/articles/grid-critters.webp)

On the [Grid Critters site](https://gridcritters.com/), each level is a unique layout puzzle: a grid scenario where you apply CSS Grid properties to move characters to the destination. Concepts are presented progressively, from the fundamentals of rows and columns to complex, responsive layouts, with a soundtrack and graphics that make the journey more enjoyable.

Investing time in a structured Grid course makes sense given the current pace of the language: the same State of CSS 2025 survey measured 80.4% adoption of the `:has()` selector among respondents — a feature that did not even exist in browsers a few years ago. Those who master Grid fundamentals absorb these novelties much more easily.

## Conclusion

Learning CSS by playing works because it swaps passive reading for practice with immediate feedback — the same mechanism that makes a game addictive fixes layout properties in memory. The most efficient path is to start today with Flexbox Froggy, consolidate with Flexbox Defense, move to CSS Grid Garden and, if you want professional depth, invest in the Mastery Games game-courses. Once layout is mastered, the natural next step in [web development](/en/glossario/desenvolvimento-web) is interactivity: check out the [7 sites to practice JavaScript](/en/blog/7-sites-para-praticar-javascript) and complete your frontend foundation.]]></content:encoded>
    </item>
    <item>
      <guid>https://codecrush.com.br/en/blog/7-linguagens-de-programacao-mais-usadas</guid>
      <title>7 Most Used Programming Languages in the World in 2026</title>
      <link>https://codecrush.com.br/en/blog/7-linguagens-de-programacao-mais-usadas</link>
      <description>Python, JavaScript, Java, C++, C, C# and Go lead TIOBE, Stack Overflow and GitHub rankings in 2026. See where each one shines and which to learn.</description>
      <pubDate>Sat, 16 Sep 2023 00:00:00 GMT</pubDate>
      <author>devhenrico@gmail.com (Henrico Piubello)</author>
      <category>Linguagens de Programação</category><category>Desenvolvimento</category>
      <content:encoded><![CDATA[![Ranking of the most used programming languages in the world in 2026](/static/images/articles/lp-mais-usadas-do-mundo.webp)

The 7 most used programming languages in the world are Python, JavaScript, Java, C++, C, C# and Go, according to TIOBE, Stack Overflow and GitHub. Python leads in AI (Artificial Intelligence) and data; JavaScript dominates the web; the rest sustain enterprise systems, infrastructure and high-performance applications.



## What are the 7 most used programming languages in the world?

The 7 most used programming languages in the world, combining the main rankings of 2025 and 2026, are:

1. **Python** — leader in data science, automation and [machine learning](/en/glossario/machine-learning).
2. **[JavaScript](/en/glossario/javascript)** — the default language of the web, present in virtually every browser.
3. **Java** — a reference in enterprise systems, backend and Android apps.
4. **C++** — high performance for games, graphics engines and infrastructure.
5. **C** — the foundation of operating systems and embedded systems.
6. **C#** — the main language of the Microsoft ecosystem and the Unity game engine.
7. **Go** — created by Google for servers, cloud and distributed systems.

The table below summarizes the strength of each language and where it is most applied:

| Language  | Strength                        | Main uses                          |
| ---------- | ---------------------------------- | ---------------------------------------- |
| Python     | Simple syntax, AI ecosystem | Data science, automation, AI          |
| JavaScript | Runs in any browser         | Websites, web apps, APIs              |
| Java       | Portability and maturity         | Enterprise systems, Android, backend  |
| C++        | Near-hardware performance     | Games, graphics engines, infrastructure  |
| C          | Direct memory control         | Operating systems, embedded        |
| C#         | Microsoft stack integration     | Windows apps, Unity games, web           |
| Go         | Native concurrency and efficiency   | Servers, cloud, distributed systems |

## Which language leads each ranking in 2026?

No language leads all rankings at the same time: each index measures popularity differently, which is why leaders vary. Three recent measurements show the landscape:

- The [TIOBE index](https://www.tiobe.com/tiobe-index/) for June 2026 keeps **Python in 1st place**, with about 19% rating — the index is calculated from search volume for each language.
- The [Stack Overflow Developer Survey 2025](https://survey.stackoverflow.co/2025/technology) points to **JavaScript as the most used language by developers, with 66%**, followed by HTML/CSS (62%) and SQL (59%). In the same survey, Python grew 7 percentage points compared to 2024, driven by AI and data science.
- The [GitHub Octoverse 2025](https://github.blog/news-insights/octoverse/octoverse-a-new-developer-joins-github-every-second-as-ai-leads-typescript-to-1/) report registered that, in August 2025, **TypeScript surpassed Python and JavaScript** as the language with the most monthly contributors on the platform — while Python grew 48.78% in contributors year-over-year and dominates new AI repositories.

In practice, these numbers tell the same story from different angles: the JavaScript/TypeScript ecosystem dominates the volume of web work, and Python dominates data and AI. If you want to understand the relationship between JavaScript and its typed superset, see the comparison [JavaScript vs TypeScript](/en/blog/javascript-vs-typescript).

## Python: the language of AI and data science

Python is known for its ease of learning and its application in a wide variety of projects, from simple scripts to complex data science and Artificial Intelligence systems. The [official Python documentation](https://www.python.org/) and its vast library of modules facilitate development in areas like web development, automation and machine learning.

Companies like Google, Instagram and SAP use Python in production. For beginners, CodeCrush maintains a [Python guide for beginners](/en/blog/python) with practical code examples.

```python
## Python code example: Simple calculator
def soma(a, b):
    return a + b

resultado = soma(5, 3)
print(resultado)  # This will print '8' to the screen
```

## JavaScript: the web standard

JavaScript is the most used language by developers according to Stack Overflow, and the reason is simple: virtually every browser runs JavaScript, making it mandatory on the [frontend](/en/glossario/frontend). With [Node.js](/en/glossario/nodejs), the language also runs on the server, covering full web applications, APIs and even mobile apps.

Google, YouTube and Facebook use JavaScript at scale in their applications.

```javascript
// JavaScript code example: Simple calculator
function soma(a, b) {
  return a + b
}

const resultado = soma(5, 3)
console.log(resultado) // This will display '8' in the browser console
```

## What is Java for?

Java is used to build mobile, web and desktop applications that run on multiple operating systems — the language historical motto is "write once, run anywhere." This portability, combined with decades of maturity, made Java the standard for large enterprise systems and Android development.

Platforms like LinkedIn, eBay and Netflix depend on Java in their backends. If you want to go deeper, CodeCrush has a [complete Java language guide](/en/blog/linguagem-de-programacao-java).

```java
// Java code example: Hello, World!
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}
```

## When to use C++?

C++ is the right choice when the project requires intensive processing, advanced graphics or fine-grained resource control: games, rendering engines, browsers, trading systems and low-level infrastructure. The language combines near-hardware performance with modern object-oriented abstractions.

Google, YouTube and Amazon use C++ in the most critical components of their infrastructures.

```cpp
// C++ code example: Simple calculator
#include <iostream>

int soma(int a, int b) {
    return a + b;
}

int main() {
    int resultado = soma(5, 3);
    std::cout << resultado << std::endl; // This will print '8' to the screen
    return 0;
}
```

## Why is C still essential?

C remains essential because it is the foundation of almost everything that runs on a computer: operating system kernels, databases, interpreters for other languages and embedded systems. It is a low-level language, known for its performance and direct control over system memory.

C is also the syntactic basis of C++, C#, Java and Go — learning C first makes all of them easier to understand.

```c
// C code example: Hello, World!
#include <stdio.h>

int main() {
    printf("Hello, World!\n");
    return 0;
}
```

## C#: Microsoft bet

C# (C-Sharp) is a modern, object-oriented language, created by Microsoft as the main language of the [.NET](https://learn.microsoft.com/pt-br/dotnet/csharp/) platform. It dominates the development of Windows applications, enterprise web services and games — the Unity engine, one of the most used in the world, is programmed in C#.

```cs
// C# code example: Hello, World!
using System;

class Program {
    static void Main() {
        Console.WriteLine("Hello, World!");
    }
}
```

## Go: performance and concurrency in the backend

Go, also known as Golang, is a language created by Google and maintained as an open-source project on [go.dev](https://go.dev/). Go stands out for its efficiency and native concurrency (goroutines), making it suitable for high-performance web servers, cloud tools and distributed systems — Docker and Kubernetes are written in Go.

```go
// Go code example: Hello, World!
package main


func main() {
    fmt.Println("Hello, World!")
}
```

## How to choose the first language to learn?

Choose the first language by career goal, not by ranking: those who want to work with web should start with JavaScript; those aiming at data and AI, with Python; those seeking enterprise systems, with Java or C#. The demand for programmers remains high across all sectors, and qualification continues to be the main differentiator in a market where openings exceed prepared candidates.

Before any syntax, master the fundamentals of [programming logic](/en/blog/logica-de-programacao): they are universal and apply to any language you adopt later. Then, apply what you learned in practical projects — small automations, personal websites, simple APIs. Online tutorials, university courses and intensive bootcamps are all valid paths; what differentiates professionals is constant practice and the ability to translate business goals into technical solutions.

## Conclusion

Rankings change every year — TypeScript just took the top of GitHub and Python remains steady on TIOBE — but the 7 languages on this list have something no ranking captures: decades of ecosystem, abundant jobs and huge communities. The smart decision in 2026 is not to chase the "number 1" language, but to choose one that serves your goal, learn its fundamentals deeply and let the second and third languages come naturally with your career.]]></content:encoded>
    </item>
    <item>
      <guid>https://codecrush.com.br/en/blog/7-sites-para-praticar-javascript</guid>
      <title>7 Sites to Practice JavaScript with Real Challenges</title>
      <link>https://codecrush.com.br/en/blog/7-sites-para-praticar-javascript</link>
      <description>HackerEarth, Edabit, CodinGame, Codewars, LeetCode, HackerRank and CodeChef offer free challenges to practice JavaScript online.</description>
      <pubDate>Mon, 12 Jun 2023 07:00:00 GMT</pubDate>
      <author>devhenrico@gmail.com (Henrico Piubello)</author>
      <category>Desenvolvimento</category><category>Linguagens de Programação</category>
      <content:encoded><![CDATA[![Illustration with JavaScript code in an IDE and the language logo](/static/images/articles/banner-7-sites-js.webp)

The best sites to practice [JavaScript](/en/glossario/javascript) for free are HackerEarth, Edabit, CodinGame, Codewars, LeetCode, HackerRank and CodeChef. All offer challenges with automated correction, rankings and a community so you can leave theory behind and gain real fluency in the language.

Practice is what separates those who read tutorials from those who actually program. According to the [Stack Overflow Developer Survey 2025](https://survey.stackoverflow.co/2025/technology), JavaScript remains the most used language in the world, present in the daily work of 66% of developers — mastering the language in practice continues to be one of the safest career investments in the field.



## What are the 7 best sites to practice JavaScript?

The seven best sites to practice JavaScript combine three elements: challenges with automated correction, progressive difficulty levels and an active community to compare solutions. The list goes from the most beginner-friendly to the most focused on technical interviews:

1. **HackerEarth** — problems organized by topic, with regular competitions and instant feedback.
2. **Edabit** — short, progressive challenges, ideal for those starting out.
3. **CodinGame** — games where your code controls the outcome, from basic to multiplayer.
4. **Codewars** — community-created katas, with progression by ranks.
5. **LeetCode** — algorithms and direct preparation for technical interviews.
6. **HackerRank** — study tracks and tests used by recruiters.
7. **CodeChef** — programming competitions classified by difficulty level.

## Which site to choose for each goal?

The choice depends on your moment: beginners learn faster on Edabit and CodinGame, those seeking a job should prioritize LeetCode and HackerRank, and those wanting competitive rhythm find the best tournaments in Codewars and CodeChef. The table summarizes the strength of each platform:

| Site        | Best for              | Strength                          |
| ----------- | ------------------------ | ------------------------------------ |
| HackerEarth | practice by topics     | competitions and instant feedback   |
| Edabit      | absolute beginners     | short, progressive challenges       |
| CodinGame   | learn by playing         | multiplayer games solved with code |
| Codewars    | build a daily habit      | community katas in 55+ languages |
| LeetCode    | technical interviews     | real questions from large companies  |
| HackerRank  | certify skills   | tests applied by recruiters    |
| CodeChef    | competitive programming  | regular tournaments by level         |

## How does HackerEarth work?

[HackerEarth](https://www.hackerearth.com/practice/) organizes programming problems by topic — algorithms, [data structures](/en/blog/estrutura-de-dados), math and AI (Artificial Intelligence) — and by difficulty level, with automated correction on each submission. You choose the category suited to your knowledge, submit the solution in JavaScript and get immediate feedback on code effectiveness and efficiency.

![HackerEarth platform home screen with programming challenges and competitions](/static/images/articles/hackerearth.webp)

Each HackerEarth problem brings a clear description of what needs to be solved, with input and output examples. This structure eliminates the ambiguity common in textbook exercises and lets you focus on solution reasoning.

Beyond individual practice, HackerEarth holds [regular programming competitions](https://www.hackerearth.com/pt-br/challenges/), where you compare your results with developers worldwide. For those building repertoire, the combination of topic tracks and timed competitions is one of the most complete among free platforms.

## Edabit: short challenges for beginners

[Edabit](https://edabit.com/) is the smoothest entry point for JavaScript practice: the challenges are short, organized by difficulty and solved right in the browser, with immediate feedback on each run. The platform premise is "learn by doing" — you write real code from the first exercise, with no intermediate video lessons.

![Edabit home page showing code challenges for multiple languages](/static/images/articles/edabit.webp)

The Edabit problem library is organized by categories like algorithms, data structures and [programming logic](/en/blog/logica-de-programacao). Each challenge brings a concise description and examples of expected input and output, which helps understand the problem before writing the first line.

Edabit also maintains an active community: after solving a challenge, you can compare your solution with other members and discover more elegant approaches to the same problem. For beginners, this resolve-compare-refactor cycle greatly accelerates learning.

## CodinGame: learn JavaScript by playing

[CodinGame](https://www.codingame.com/start) turns programming practice into a game: instead of submitting answers to a code judge, you write JavaScript (or another among the dozens of supported languages) to control characters and win levels. Challenges range from basic logic to complex algorithms and data structures.

![CodinGame home screen with interactive programming games and challenges](/static/images/articles/codingGame.webp)

CodinGame offers [detailed free tutorials](https://www.codingame.com/learn) and discussion forums where programmers share solutions. The most interesting part, however, is the multiplayer challenges: your bot competes in real time against other developers bots, and the ranking shows exactly where your algorithm loses to the opponents.

This competitive dynamic works especially well for those who lose motivation with traditional exercise lists — the drive to "pass the level" keeps practice constant without feeling like studying.

## Why practice JavaScript on Codewars?

[Codewars](https://www.codewars.com/) structures practice as a martial arts progression: each challenge is a "kata", and solving harder katas raises your rank (kyu). The platform gathers more than 3 million developers and supports more than 55 languages, according to the [official Codewars documentation](https://docs.codewars.com/languages/) — and presents itself with the motto "achieve mastery through coding practice and developer mentorship".

![Codewars home page showing training katas for developers](/static/images/articles/codewars.webp)

Codewars katas are created and reviewed by the community itself, which ensures realistic and varied problems. After solving a kata, you unlock other developers solutions — comparing your code with the most upvoted answers is a practical lesson in idiomatic JavaScript.

The scoring and ranking system creates healthy competition, and real-time code battles ("code wars") test your solving speed. To turn practice into a daily habit, Codewars is probably the most effective platform on the list.

## Does LeetCode work for practicing JavaScript?

Yes — [LeetCode](https://leetcode.com/) accepts JavaScript in virtually all its problems and is the global reference in technical interview preparation. The platform organizes hundreds of problems by category, difficulty and algorithm tags, including a [selection with the most frequent interview questions](https://leetcode.com/problem-list/top-interview-questions/).

![LeetCode platform banner with algorithm problems and technical interviews](/static/images/articles/leetcode-banner.webp)

LeetCode differentiator is its orientation toward selection processes: a good part of the problems reproduce questions applied in interviews at large tech companies. Those who practice there arrive at the selection process already familiar with the format, solving time and level of demand.

LeetCode also offers performance statistics to track your progress, periodic contests and active discussion forums, where users break down solutions and share interview experiences. If you are also considering migrating to static typing, it is worth reading our comparison [JavaScript vs TypeScript](/en/blog/javascript-vs-typescript) before choosing the language for your practice.

## How does HackerRank connect practice and employment?

[HackerRank](https://www.hackerrank.com/) is used by both developers and companies: while you practice on algorithm, data structure, SQL and JavaScript tracks, recruiters use the same platform to apply coding tests and technical interviews. A good performance there becomes, in practice, a visible credential for potential employers.

![HackerRank home screen with preparation tracks and code challenges](/static/images/articles/hackerrank.webp)

For those who want to focus on the language, the [10 Days of JavaScript](https://www.hackerrank.com/domains/tutorials/10-days-of-javascript) challenge is a guided roadmap covering from fundamentals to events and regular expressions in ten days of exercises.

HackerRank also promotes regular real-time competitions, which encourage quick thinking and efficient problem solving. Among all the platforms on the list, it is the one that most closely connects practice with the job market — many Brazilian and international selection processes use exactly the HackerRank test format.

## CodeChef: regular competitions by level

[CodeChef](https://www.codechef.com/) is a platform centered on competitive programming: it holds frequent tournaments, classified by difficulty level, where you compete in real time with participants worldwide. Outside competitions, the problem catalog covers algorithms, data structures, math and statistics.

![CodeChef home page with programming competitions and tutorials](/static/images/articles/codechef.webp)

CodeChef complements challenges with [detailed competitive programming tutorials](https://www.codechef.com/cptutorials), with step-by-step explanations — a valuable resource for those who want to understand the theory behind each class of problem, not just solve by trial and error.

The community is another strong point: the [CodeChef discussion forum](https://discuss.codechef.com/) concentrates doubts, commented solutions and post-competition analyses. For those who want to evolve in competitive programming in a structured way, it is one of the most active communities available.

## What other sites are worth it for practicing programming?

Beyond the seven main ones, six platforms complement JavaScript practice with different approaches — from math problems to human mentorship. If you want an even broader panorama, also see our [top 10 sites with programming challenges](/en/blog/sites-com-desafios-programacao-resolver).

### Project Euler

[Project Euler](https://projecteuler.net/) gathers complex math problems that can be solved with JavaScript. The statements require both analytical skill and efficient code — brute force rarely works, which forces you to think about optimization.

### Exercism

[Exercism](https://exercism.org/) offers free exercises in dozens of languages, including JavaScript, with a rare differentiator: human mentors review your solution and give constructive feedback, something no automated judge can replace.

### Codecademy

[Codecademy](https://www.codecademy.com/) is an interactive course platform focused on beginners: you learn the fundamentals of JavaScript, HTML/CSS and Python through guided, hands-on lessons, right in the browser.

### TopCoder

[TopCoder](https://www.topcoder.com/) is one of the oldest active competitive programming platforms, with algorithm, data structure and math challenges — and is also used by companies to hire developers.

### CodeSignal

[CodeSignal](https://codesignal.com/) combines practice challenges with technical interview simulations, and its standardized tests are adopted by companies in real selection processes.

### freeCodeCamp

[freeCodeCamp](https://www.freecodecamp.org/) is a non-profit organization with a complete, free [web development](/en/glossario/desenvolvimento-web) curriculum, including certifications and practical projects for a portfolio. According to the [official project repository](https://github.com/freeCodeCamp/freeCodeCamp), the curriculum has already helped more than 40,000 people land developer jobs.

## Conclusion

Tools are not lacking — what differentiates those who evolve in JavaScript from those who stall is consistency, not the platform. The practical CodeCrush recommendation: pick a single site aligned with your goal (Edabit if you are starting out, LeetCode if you are job-hunting, Codewars to build a habit), solve one challenge a day for a month and only then diversify. Jumping from platform to platform gives a sense of progress; solving problems every day generates real progress.]]></content:encoded>
    </item>
    <item>
      <guid>https://codecrush.com.br/en/blog/a-arquitetura-e-as-metodologias-modernas-do-desenvolvimento-web-da-ide</guid>
      <title>Modern Web Development: Architectures and Methodologies</title>
      <link>https://codecrush.com.br/en/blog/a-arquitetura-e-as-metodologias-modernas-do-desenvolvimento-web-da-ide</link>
      <description>Modern web development combines architectures like microservices and serverless with agile practices and DevOps to create scalable, secure applications.</description>
      <pubDate>Sun, 21 Jun 2026 15:44:35 GMT</pubDate>
      <author>devhenrico@gmail.com (Henrico Piubello)</author>
      <category>Desenvolvimento</category><category>Web e APIs</category><category>DevOps e Ferramentas</category>
      <content:encoded><![CDATA[Modern web development is the discipline of designing, building and operating interactive, scalable applications. It combines architectures like [microservices](/en/glossario/microservices) and serverless with agile methodologies and [DevOps](/en/glossario/devops) to turn ideas into continuous value delivery.



## What is modern web development?

Modern web development is the practice of creating applications that offer dynamic, functional experiences on any device, not just pages that display content. This practice covers the [frontend](/en/glossario/frontend) (what runs in the browser), the backend (the server logic) and the communication between them through [APIs](/en/glossario/api) (Application Programming Interfaces).

The evolution of the internet explains this shift: Web 1.0 brought static, informational pages; Web 2.0 introduced social interaction and user-generated content; and Web 3.0 points toward decentralization, AI (Artificial Intelligence) and the semantic web. Today, the focus is on UX (user experience) and UI (user interface), with a _mobile-first_ approach: the design is optimized for smaller screens before being expanded to desktops.

The relevance of the web as a platform remains proven by data: according to the [Stack Overflow Developer Survey 2025](https://survey.stackoverflow.co/2025/technology), JavaScript is the most used language in the world, present in the work of 66% of developers.

A practical example is Netflix. The platform is not just a website: it is a system that serves millions of simultaneous users, personalizes recommendations in real time, adjusts _streaming_ to connection quality and protects each account data. All of this depends on a modern web architecture, with robust backends, interactive frontends and elastic [cloud computing](/en/glossario/cloud-computing) infrastructure.

## Monolith, microservices or serverless: which architecture to choose?

Choose the monolith to validate a product quickly with a small team; adopt microservices when modules need to scale and evolve independently; use serverless for intermittent, event-driven workloads. Software architecture defines how application components interact with each other and directly impacts scalability, maintenance, performance and cost.

| Criterion             | Monolith                               | Microservices                        |
| -------------------- | -------------------------------------- | ------------------------------------- |
| Initial complexity | Low, single codebase        | High, multiple independent services   |
| Deploy               | Single, entire application published together | Independent for each service       |
| Scalability       | Entire application scales together       | Each service scales independently  |
| Resilience          | One failure can take down the whole system | Failures are contained in one service   |
| Technology           | Single stack for the whole system    | Different stacks per service         |
| Team profile     | Small teams and early projects     | Large teams with separate domains  |

The **monolith** concentrates interface, business logic and data access in a single unit. It is simple to develop and deploy at the start, but tends to become hard to scale and maintain as the product grows — companies like Amazon and LinkedIn operated as monoliths in their early years before migrating.

**Microservices** break the application into independent services (users, payments, catalog), each developed, deployed and scaled separately. In this scenario, [Docker](/en/glossario/docker) for containerization and [Kubernetes](/en/glossario/kubernetes) for orchestration became market standards: the [CNCF annual survey](https://www.cncf.io/announcements/2026/01/20/kubernetes-established-as-the-de-facto-operating-system-for-ai-as-production-use-hits-82-in-2025-cncf-annual-cloud-native-survey/) (Cloud Native Computing Foundation) for 2025 registered 82% of organizations using Kubernetes in production. To master the foundation of this approach, see the [complete Docker and containerization guide](/en/blog/guia-docker-na-programacao) here at CodeCrush.

The **serverless** architecture, or FaaS (Function as a Service), runs individual functions in response to events — a file upload, an HTTP request — without the team managing servers. Services like AWS Lambda, Azure Functions and Google Cloud Functions charge only for execution time and scale automatically, although they can introduce cold-start latency and provider dependency. The [comparison between AWS, Azure and GCP](/en/blog/comparacao-entre-servicos-em-nuvem) helps choose the right platform for this model.

## What are the pillars of a robust web application?

A robust web application rests on four pillars: performance (speed and responsiveness), scalability (capacity to grow on demand), security (protection of data and users) and accessibility (use by all people, with or without disabilities). Ignoring any of them compromises the user experience and the product outcome.

### Performance and Core Web Vitals

The performance of a web application is measured by Google [Core Web Vitals](https://web.dev/articles/vitals): LCP (Largest Contentful Paint), CLS (Cumulative Layout Shift) and INP (Interaction to Next Paint) — a metric that, in March 2024, officially replaced FID (First Input Delay). Optimization involves CDNs (Content Delivery Networks) to distribute static files, frequent data _caching_, code compression and minification, and _lazy loading_ of resources.

### Scalability

Scalability ensures the application handles demand increases without degrading performance. **Vertical scaling** adds resources to a single server (CPU, RAM); **horizontal scaling** distributes the load across multiple servers with a _load balancer_. Distributed databases and microservices facilitate horizontal growth, and managed cloud services offer auto-scaling.

### Security

Security protects data, systems and users against unauthorized access. The [OWASP Top 10](https://owasp.org/www-project-top-ten/), from the Open Worldwide Application Security Project, catalogs the most critical risks, such as SQL injection and _cross-site scripting_ (XSS). Mandatory HTTPS, input validation, MFA (multi-factor authentication) and role-based authorization are essential practices, complemented by regular audits and _pentests_.

### Accessibility

Accessibility ensures people with disabilities can perceive, operate and understand the application. The global standard is [WCAG 2.2](https://www.w3.org/TR/WCAG22/) (Web Content Accessibility Guidelines), an official W3C recommendation since October 2023: alternative text on images, keyboard navigation, adequate contrast and correct semantics. Well-structured [semantic HTML](/en/blog/o-que-e-html-estrutura-seo) benefits both accessibility and SEO at the same time.

## How do agile methodologies and DevOps accelerate delivery?

Agile methodologies organize work in short, adaptive cycles, while DevOps automates the path from code to production. Together, these practices reduce the time between idea and delivery, increase software quality and allow quick responses to requirement changes.

Among agile [frameworks](/en/glossario/framework), **Scrum** organizes work in 1-to-4-week _sprints_, with daily meetings and regular reviews. According to the [Scrum Guide](https://scrumguides.org/) (2020), by Ken Schwaber and Jeff Sutherland, "Scrum is a lightweight framework that helps people, teams and organizations generate value through adaptive solutions for complex problems". **Kanban**, in turn, visualizes the workflow and limits work in progress, ideal for unpredictable demands and maintenance.

DevOps materializes continuous delivery through [CI/CD](/en/glossario/ci-cd) pipelines: CI (Continuous Integration) integrates code from all developers multiple times a day, and CD (Continuous Delivery) automates build, tests and deploy preparation. Tools like GitHub Actions, GitLab CI/CD and Jenkins run these pipelines.

Two practices sustain this flow. The first is **automated testing** — unit, integration and _end-to-end_ — which prevents regressions on every change; the [importance of software testing](/en/blog/testes-de-software) deserves attention from the first commit. The second is **monitoring and observability**, with tools like Prometheus and Grafana collecting logs, metrics and traces to identify problems before they affect users.

## From idea to continuous delivery: a practical roadmap

A food delivery startup illustrates the full cycle well: the team uses Scrum to plan weekly sprints, keeps the backend as a modular monolith early on and extracts the order service into a microservice when it becomes a bottleneck. The path from idea to production can be summarized in six steps:

1. **Validate the idea** with a simple prototype and real user feedback before investing in complex architecture.
2. **Choose the architecture** suited to the moment: monolith to start, microservices or serverless when scale demands.
3. **Set up the repository and CI/CD pipeline** from day one, automating build and code verification.
4. **Automate tests** — unit, integration and end-to-end — to protect each release against regressions.
5. **Publish to production with small, frequent deploys**, reducing the risk of each change.
6. **Monitor metrics, logs and Core Web Vitals** and feed the backlog with what the data reveals.

This roadmap is not linear: each feedback cycle feeds back into the planning of the next sprints, and the architecture evolves alongside the product.

## Conclusion

Modern web development is not a list of trendy technologies, but the disciplined combination of three decisions: an architecture proportional to the real size of the problem, non-negotiable pillars of performance, security and accessibility, and an end-to-end automated delivery flow. In practice, the most common mistake is starting with complexity — microservices and Kubernetes on day one — when a well-tested monolith with CI/CD would deliver value weeks sooner. Start simple, measure everything and let scale justify each new architecture layer.]]></content:encoded>
    </item>
    <item>
      <guid>https://codecrush.com.br/en/blog/a-revolucao-silenciosa-como-as-gpus-moldaram-a-era-da-inteligencia-art</guid>
      <title>GPU: how graphics cards drove the AI era</title>
      <link>https://codecrush.com.br/en/blog/a-revolucao-silenciosa-como-as-gpus-moldaram-a-era-da-inteligencia-art</link>
      <description>A GPU is a processor with thousands of parallel cores that accelerates neural network training, scientific simulations and graphics rendering.</description>
      <pubDate>Sun, 21 Jun 2026 04:29:18 GMT</pubDate>
      <author>devhenrico@gmail.com (Henrico Piubello)</author>
      <category>Hardware e Sistemas</category><category>Inteligência Artificial</category>
      <content:encoded><![CDATA[The GPU (Graphics Processing Unit) is a chip with thousands of cores that run calculations in parallel, used to render graphics, train AI (Artificial Intelligence) and accelerate scientific simulations. Tasks that would take days on a CPU finish in hours — which is why the GPU became the engine of deep learning.



## From pixel to parallelism: the evolution of the GPU

The GPU was born as a circuit specialized in turning 3D data into pixels on screen, offloading the CPU (Central Processing Unit) from this workload in video games. The revolution began when engineers realized its architecture — many small cores working in parallel — served a vast range of problems that had nothing to do with [computer graphics](/en/blog/computacao-grafica-conceito).

The turning point came with general-purpose GPUs, the GPGPU model (General-Purpose computing on Graphics Processing Units). NVIDIA launched the [CUDA (Compute Unified Device Architecture)](https://developer.nvidia.com/cuda-zone) platform in 2007, opening the graphics [hardware](/en/glossario/hardware) to programmers who wanted to run massively parallel mathematical calculations. Suddenly, a task that would take days on a CPU could be completed in hours or minutes on a GPU.

This was the catalyst for the deep learning explosion, where neural network training requires trillions of floating-point operations. Without the programmability brought by GPGPU, the resurgence of [machine learning](/en/glossario/machine-learning) in the 2010s would have hit the physical limit of CPUs.

## What is the difference between GPU and CPU?

The CPU is optimized for executing a few complex tasks in sequence, with powerful cores, large caches and sophisticated control logic. The GPU takes the opposite path: hundreds or thousands of simple cores that execute the same instruction over multiple data points simultaneously, the SIMD paradigm (Single Instruction, Multiple Data).

| Feature | CPU | GPU |
| --- | --- | --- |
| Cores | 4 to 64, very powerful | Thousands, simple |
| Execution model | Sequential, few tasks | Massively parallel (SIMD) |
| Optimization | Low latency per task | High volume of data processed |
| Cache and control | Large caches, sophisticated logic | Smaller caches, simple control |
| Typical use | Operating system, general logic | Graphics, AI, simulations |

An analogy helps: the CPU is an experienced manager who solves a complex problem alone; the GPU is an army of workers who solve thousands of identical problems at the same time. This parallel architecture is perfect when the same operation needs to be applied to a large volume of independent data:

- **Graphics rendering**: each pixel on screen can be processed independently.
- **Neural network training**: calculations for each neuron in a layer are updated in parallel.
- **Physics simulations**: multiple particles in a model have their states calculated simultaneously.

## Why is the GPU the heart of Artificial Intelligence?

The GPU accelerates by orders of magnitude the matrix and vector operations that dominate deep neural network training, with millions or billions of parameters. Without GPUs, training models like GPT-3 or Stable Diffusion would take years or decades on traditional CPUs, making them impractical — the conceptual difference between these fields is detailed in [Machine Learning vs. Artificial Intelligence](/en/blog/diferenca-machine-learning-e-inteligencia-artificial).

Numbers from current hardware illustrate this scale: according to the [official NVIDIA datasheet](https://www.nvidia.com/en-us/data-center/h100/), the H100 GPU (Hopper architecture, 2022) packs 16,896 CUDA cores and 80 GB of HBM3 memory with about 3.35 TB/s of bandwidth in the SXM version. It is this throughput that allows feeding thousands of cores with data without bottlenecks.

The GPU accelerates not only training, but also inference — applying a trained model to new data, crucial for real-time speech recognition, computer vision and natural language processing.

The software ecosystem is equally vital. Tools like [TensorFlow](https://www.tensorflow.org/) and [PyTorch](https://pytorch.org/) are optimized to exploit GPUs through low-level libraries like CUDA and cuDNN (CUDA Deep Neural Network library). This layer democratized high-performance computing, allowing researchers and developers anywhere to experiment with AI.

## Where are GPUs used beyond AI?

GPUs sustain scientific computing, massive data analysis, professional rendering, cryptography and immersive experiences. The scale of this adoption appears on the [TOP500 list for June 2025](https://top500.org/lists/top500/2025/06/highs/): 237 of the 500 fastest supercomputers in the world use accelerators, and the leader El Capitan reaches 1,742 exaflops with AMD Instinct MI300A accelerators.

- **Scientific computing and simulations**: physics, chemistry, biology and meteorology use GPUs to accelerate molecular dynamics, climate modeling and drug discovery.
- **[Big Data](/en/glossario/big-data) analysis**: databases and analytics platforms use GPUs to accelerate queries, regressions and classifications over large data volumes.
- **Professional visualization and rendering**: films, animations, architecture and product design depend on photorealistic real-time rendering.
- **Cryptography and [blockchain](/en/glossario/blockchain)**: cryptocurrency mining depended heavily on GPUs for hash operations — Ethereum abandoned this model by migrating to Proof-of-Stake, but GPU aptitude for cryptography remains relevant.
- **Virtual and augmented reality**: immersive experiences like those in the [metaverse](/en/blog/metaverso) require rendering complex environments with minimal latency.

## What are the challenges and the future of GPUs?

Power consumption and heat generation are the main challenges of high-performance GPUs, alongside the growing demand for memory bandwidth — met by technologies like HBM (High Bandwidth Memory), which brings memory closer to the processor to move large data volumes quickly.

The future points to increasing heterogeneity. GPUs appear more integrated with CPUs, as in APUs and Apple chips, and coexist with specialized AI accelerators, optimized for specific neural network operations with greater energy efficiency. [Cloud computing](/en/glossario/cloud-computing) democratizes access to cutting-edge GPUs: providers like [AWS, Azure and GCP](/en/blog/comparacao-entre-servicos-em-nuvem) allow scaling projects without large local hardware investments.

On the software side, the evolution of APIs like OpenCL and Vulkan, alongside AI-specific tools, will continue unlocking the potential of these chips for an even broader range of applications.

## Conclusion

The GPU stopped being a niche part for gamers and became the most strategic component of modern computing: those who understand its parallel architecture understand why AI advanced so fast — and where the bottlenecks that still limit the next leaps are. For developers, the practical lesson we reinforce here at CodeCrush is straightforward: learning to think in parallel, whether via CUDA or frameworks like PyTorch, is today as fundamental a skill as mastering data structures.]]></content:encoded>
    </item>
    <item>
      <guid>https://codecrush.com.br/en/blog/a-tecnologia-na-incorporacao-imobiliaria</guid>
      <title>Technology in Real Estate Development: New Business</title>
      <link>https://codecrush.com.br/en/blog/a-tecnologia-na-incorporacao-imobiliaria</link>
      <description>In real estate development, the new business area uses geointelligence, Big Data and BIM to assess land viability before purchase.</description>
      <pubDate>Mon, 18 Sep 2023 11:00:14 GMT</pubDate>
      <author>devhenrico@gmail.com (Henrico Piubello)</author>
      <category>Tecnologia e Inovação</category>
      <content:encoded><![CDATA[![Real estate development contracts being signed over a meeting table](/static/images/articles/incorporacao-imobiliaria.webp)

Real estate development is the process, regulated by Law 4.591/1964, that allows selling units of a development before construction. In the new business stage, the first of the cycle, geointelligence, data analysis and 3D modeling increase the accuracy of land viability analysis.



## What is real estate development?

Real estate development is the activity of promoting and building developments composed of autonomous units — apartments, commercial offices, condominium houses — with legal authorization to sell them before construction is concluded. The basis is [Law 4.591/1964](https://www.planalto.gov.br/ccivil_03/leis/l4591.htm), which defines the figure of the developer and requires the registration of the development memorial at the real estate notary.

In practice, real estate development begins when a company or person acquires land, plans and develops a development — such as a residential or commercial condominium — with the goal of selling it. The process involves legal, financial and constructive aspects, ensuring the project meets regulations and required standards, and it is the strategic way the market creates and makes new properties available to buyers and investors.

The full development cycle goes through seven stages: **new business**, **licensing**, **development registration**, **launch**, **construction**, **key handover** and **post-sale**. This article focuses on the first one — new business — and shows how technology has been raising the accuracy of technical and economic-financial viability analysis in land acquisition.

## How does the new business stage work?

The new business stage opens the development cycle: it is where the developer prospects land, studies the region urban planning legislation, designs the appropriate real estate product and runs the technical and economic-financial viability analysis that decides whether the purchase happens — and at what price. Because it is the beginning of everything, an error here compromises the margin of all subsequent stages.

The real estate market has always been highly competitive: profit margins depend on the speed of land purchase and legalization, project management efficiency and delivery quality. This pressure has increased in recent years. According to the [Abrainc-Fipe indicator, new property launches grew 61.7% in Q1 2025](https://www.abrainc.org.br/noticias/lancamentos-de-imoveis-crescem-617-no-1-trimestre-de-2025-em-relacao-ao-mesmo-periodo-de-2024) compared to the same period in 2024 — more launches mean more developers competing for the same well-located land.

The new business area is, by nature, data-dependent: on the sales history the company accumulates, on public information about the area and on projections that anticipate market reaction, price fluctuations and demand trends. It is exactly there that technology enters as a competitive differentiator.

## Which technologies support land viability analysis?

Six technological fronts support viability analysis in real estate development: market geointelligence, BI (Business Intelligence) with data analysis, geographic mapping, CAD (Computer-Aided Design) with 3D modeling, BIM (Building Information Modeling) and smart contracts. The ecosystem providing these solutions has matured: the [Terracotta Ventures Construtechs & Proptechs Map registered 1,232 active startups in Brazil in 2025](https://www.terracotta.ventures/mapa-das-construtechs-proptechs-brasil-2025), nearly half of them in São Paulo.

| Tool                 | Role in viability analysis              | Examples            |
| -------------------------- | --------------------------------------------- | ------------------- |
| Market geointelligence | Demand, competition and buyer profile   | Geofusion, Geobrain |
| BI and data analysis      | Sales history and pricing            | Power BI            |
| Geographic mapping      | Area, topography and preliminary coordinates   | Google Earth        |
| CAD and 3D modeling         | Mass study and preliminary project          | AutoCAD, Revit      |
| BIM                        | Reconciling projects in one interface | Autodesk BIM        |
| Smart contracts     | Secure and transparent transactions            | Blockchain networks |

Investment in these fronts follows a sector that keeps growing: [CBIC projects a 2% rise for civil construction in 2026](https://cbic.org.br/construcao-civil-projeta-2026-mais-positivo-que-2025-impulsionado-por-credito-e-investimentos/), the third consecutive year of expansion, with the sector closing 2025 with 2.9 million registered workers. Adopting these technologies, however, requires investment in training and constant updating to generate the expected benefits.

## How do market intelligence and Big Data guide land purchase?

Market intelligence platforms, such as [Geofusion](https://geofusion.com.br/), offer detailed real estate market analysis: practiced prices, demand and supply trends, buyer behavior and competition in the evaluated land area. With this data, the developer identifies business opportunities and defines the right product for each area — number of bedrooms, price range, development standard. Solutions of this type, like Geofusion and Geobrain, usually include dedicated support and continuous database updates for the contracting company.

On the internal front, [Power BI](/en/blog/o-que-e-power-bi) has been the most used tool to compile the company historical data: it allows comparing the performance of completed developments and, from that, draw strategies for new acquisitions. Meanwhile, [Big Data](/en/glossario/big-data) analysis expands that reach by processing large volumes of external data to identify market trends, predict property price fluctuations and adapt pricing and marketing strategies in near real time.

Large construction companies already maintain dedicated business intelligence departments, staffed by technology, economics and finance professionals. It is these teams that turn analyses and predictions into the company acquisition goals and strategies.

## Google Earth and georeferencing in area prospecting

[Google Earth](https://www.google.com.br/intl/pt-BR/earth/) is today the main tool for the new business area prospector. With it, the professional creates area mappings with a high level of preliminary information — approximate land area, topographic data, distances to roads and services, geographic coordinates — before any field visit or paid survey.

This preliminary mapping draws on [georeferencing](/en/blog/o-que-e-georreferenciamento) techniques, which associate each piece of land data with a precise position in space. The result is a cheaper prospecting funnel: clearly unviable land is discarded on screen, and only promising candidates proceed to formal topographic survey, soil study and negotiation with the owner.

## CAD, BIM and blockchain: from preliminary study to sale

CAD and 3D modeling revolutionized the design and planning of real estate projects: they allow visualizing the development with precision even in the study phase and identifying design problems before they become construction costs. With [Autodesk BIM](https://www.autodesk.com.br/solutions/bim) and equivalent tools, all projects — architectural, structural, electrical, plumbing — are reconciled in the same interface, and design errors drop significantly during construction.

On the commercial side, [blockchain](/en/glossario/blockchain) technology is being explored to ensure secure and transparent real estate transactions through smart contracts, with the potential to simplify the buying and selling of properties; those who want to understand the basis of this technology can start with [how blockchain works](/en/blog/o-que-e-blockchain). Meanwhile, advertising and property sales have migrated to digital platforms and social media, which reach a global audience and personalize campaigns for each buyer segment.

## Conclusion

Technology has transformed the new business stage from a bet into a data-driven process: those who combine geointelligence, BI and geographic mapping buy better land, faster and with less risk — and that advantage propagates through the entire real estate development cycle. For architects, engineers and analysts working in or wanting to enter this market, mastering these tools has ceased to be a differentiator and become a requirement; here at CodeCrush, the practical recommendation is to start with the basics that already solves a lot: well-used Google Earth, an honest BI dashboard and the discipline to record the history of each viability analysis.]]></content:encoded>
    </item>
    <item>
      <guid>https://codecrush.com.br/en/blog/analise-do-valor-limite</guid>
      <title>Boundary Value Analysis: What It Is and How to Apply It in Testing</title>
      <link>https://codecrush.com.br/en/blog/analise-do-valor-limite</link>
      <description>Boundary value analysis is the black-box technique that tests the extremes of input partitions, where most software defects concentrate.</description>
      <pubDate>Mon, 06 Nov 2023 00:00:00 GMT</pubDate>
      <author>devhenrico@gmail.com (Henrico Piubello)</author>
      <category>Desenvolvimento</category>
      <content:encoded><![CDATA[![Illustration of minimum and maximum boundary values in software testing](/static/images/articles/analise-valor-limite.webp)

Boundary Value Analysis (BVA) is a black-box software testing technique that checks the extremes of input partitions — minimum, maximum and their immediate neighbors — used to detect defects that concentrate at the edges of the intervals a program accepts.



## What is boundary value analysis?

Boundary value analysis is a [black-box testing](/en/blog/teste-de-caixa-preta-e-branca) technique that derives test cases from values located at the boundaries of input partitions: the smallest accepted value, the largest accepted value and the values immediately outside that interval. It is also called boundary testing or edge testing.

The technique starts from a practical observation: the most critical errors tend to occur when input data approaches the limits of what a program can handle — day 31 of a month, the maximum value of a transaction, the final index of an array. Conditions like `>` written instead of `>=` go unnoticed in central values but fail exactly at the edge.

Because of that, boundary value analysis is usually applied as an extension of equivalence partitioning: first, the input domain is divided into partitions with equivalent expected behavior; then, the boundaries between those partitions are tested, rather than random values in the middle of each one.

## Why test boundary values?

Testing boundary values concentrates testing effort where the probability of defects is highest, reducing the cost of finding critical bugs before production. The economic impact of not doing this is well documented.

The study [The Economic Impacts of Inadequate Infrastructure for Software Testing](https://www.nist.gov/system/files/documents/director/planning/report02-3.pdf), published by NIST (National Institute of Standards and Technology) in 2002, estimated that software defects cost the US economy $59.5 billion per year — about 0.6% of GDP at the time — and that approximately $22.2 billion could be eliminated with better testing infrastructure and earlier error identification.

The problem has only grown: the [Cost of Poor Software Quality in the US: A 2022 Report](https://www.it-cisq.org/the-cost-of-poor-quality-software-in-the-us-a-2022-report/), by CISQ (Consortium for Information & Software Quality), estimated the cost of poor software quality in the US at least $2.41 trillion in 2022, with accumulated technical debt of about $1.52 trillion.

In this scenario, boundary value analysis delivers three direct benefits within a [software testing strategy](/en/blog/testes-de-software):

- **Critical bug identification**: boundaries concentrate comparison, overflow and validation errors.
- **Quality improvement**: the software is verified in extreme situations, not just in the happy path.
- **Time and resource savings**: a few well-chosen values cover more risk than many random values.

## How do 2-value BVA and 3-value BVA work?

The [ISTQB CTFL v4.0 syllabus](https://istqb.org/wp-content/uploads/2024/11/ISTQB_CTFL_Syllabus_v4.0.1.pdf), from ISTQB (International Software Testing Qualifications Board), defines two variants of the technique: 2-value BVA, which tests each boundary and the immediate neighbor of the adjacent partition, and 3-value BVA, which tests each boundary and the neighbors on both sides. The choice depends on the risk of the system under test.

| Criterion              | 2-value BVA                       | 3-value BVA                             |
| --------------------- | -------------------------------------- | -------------------------------------------- |
| Values per boundary    | The boundary and the neighbor of the other partition | The boundary and the neighbors on both sides        |
| Example (boundary 18)   | Tests 17 and 18                          | Tests 17, 18 and 19                            |
| Total in one interval | 4 test values                     | 6 test values                           |
| Rigor                 | Sufficient for most systems | More complete, detects additional defects   |
| When to use           | Common-risk systems                | Critical, financial, security systems |

A concrete example: if a field accepts ages 18 to 65, 2-value BVA tests 17, 18, 65 and 66; 3-value BVA adds 19 and 64. The [official ISTQB white paper on Boundary Value Analysis](https://istqb.org/wp-content/uploads/2025/10/Boundary-Value-Analysis-white-paper.pdf) details the coverage items of each variant and recommends the 3-value version when the consequences of a boundary defect are severe.

## How to apply boundary value analysis in 5 steps?

Applying boundary value analysis follows a short, repeatable flow that works for both manual and automated tests:

1. **Identify the boundary values** relevant to the system: upper and lower limits of numeric intervals, dates, monetary values, field sizes and collection indexes.
2. **Create test cases** focused on those boundaries and their neighbors. In a financial application, for example, test values at the maximum transaction limit, immediately below and immediately above.
3. **Execute the tests** covering all mapped values, record results and watch for any abnormal behavior, unexpected error messages or silent failures.
4. **Fix and repeat**: when you find defects, adjust the code and re-run the cases until all boundaries are handled correctly.
5. **Automate whenever possible**, incorporating boundary cases into the regression suite to ensure consistent coverage on every code change.

## Practical example of boundary value analysis in code

The classic boundary value example is division: a denominator of `0` is the exact edge between valid and invalid inputs, and that is where the program breaks if there is no handling. Below, the same case in four languages.

### Example in C

Using the [C programming language](/en/blog/linguagem-de-programacao-c):

```c
#include <stdio.h>
#include <stdbool.h>

// Function to divide two integers
double divide(int numerator, int denominator) {
    if (denominator == 0) {
        // Avoid division by zero
        return -1.0; // Error value
    }
    return (double)numerator / denominator;
}

int main() {
    // Testing the divide function with boundary value analysis
    int testCases[5][2] = {
        {10, 2},    // Valid test
        {5, 0},     // Division by zero error
        {0, 0},     // Division by zero error
        {-7, 3},    // Valid test
        {100, 50}   // Valid test
    };

    for (int i = 0; i < 5; i++) {
        int numerator = testCases[i][0];
        int denominator = testCases[i][1];

        printf("Test %d: ", i + 1);

        if (numerator == 0 || denominator == 0) {
            printf("Division by zero error.\n");
        } else {
            double result = divide(numerator, denominator);
            printf("%d / %d = %.2f\n", numerator, denominator, result);
        }
    }

    return 0;
}
```

In this code, the `divide` function accepts two integers, `numerator` and `denominator`, and returns the division result. The function checks if `denominator` is zero — the boundary value — to prevent a division by zero, returning an error value (`-1.0`) in that case.

The test cases cover the boundary and both its sides:

- Test 1: valid division (10 / 2 = 5.00)
- Test 2: division by zero error
- Test 3: division by zero error
- Test 4: valid division (-7 / 3 = -2.33)
- Test 5: valid division (100 / 50 = 2.00)

### Example in Java

In Java, the boundary value is handled by throwing an `ArithmeticException`:

```java
public class DivideExample {
    public static double divide(int numerator, int denominator) {
        if (denominator == 0) {
            throw new ArithmeticException("Division by zero error");
        }
        return (double) numerator / denominator;
    }

    public static void main(String[] args) {
        int[] numerators = {10, 5, 0, -7, 100};
        int[] denominators = {2, 0, 0, 3, 50};

        for (int i = 0; i < numerators.length; i++) {
            int numerator = numerators[i];
            int denominator = denominators[i];
            try {
                double result = divide(numerator, denominator);
                System.out.println("Result: " + numerator + " / " + denominator + " = " + result);
            } catch (ArithmeticException e) {
                System.out.println(e.getMessage());
            }
        }
    }
}
```

### Example in JavaScript

In [JavaScript](/en/glossario/javascript), the same pattern uses `throw` and `try/catch`:

```javascript
function divide(numerator, denominator) {
  if (denominator === 0) {
    throw new Error('Division by zero error')
  }
  return numerator / denominator
}

const numerators = [10, 5, 0, -7, 100]
const denominators = [2, 0, 0, 3, 50]

for (let i = 0; i < numerators.length; i++) {
  const numerator = numerators[i]
  const denominator = denominators[i]
  try {
    const result = divide(numerator, denominator)
    console.log(`Result: ${numerator} / ${denominator} = ${result}`)
  } catch (error) {
    console.log(error.message)
  }
}
```

### Example in Python

Using the [Python programming language](/en/blog/python):

```python
def divide(numerator, denominator):
    if denominator == 0:
        raise ZeroDivisionError("Division by zero error")
    return numerator / denominator

numerators = [10, 5, 0, -7, 100]
denominators = [2, 0, 0, 3, 50]

for i in range(len(numerators)):
    numerator = numerators[i]
    denominator = denominators[i]
    try:
        result = divide(numerator, denominator)
        print(f"Result: {numerator} / {denominator} = {result}")
    except ZeroDivisionError as e:
        print(e)
```

## Conclusion

Boundary value analysis is one of the best cost-benefit techniques in software testing: with half a dozen well-chosen values per interval, it captures the defect class that most often escapes to production — edge errors. Here at CodeCrush, the practical recommendation is straightforward: never use BVA as the sole method, but treat it as a mandatory item of any test suite, alongside equivalence partitioning, and automate boundary cases so every code change keeps being verified exactly where the software tends to break.]]></content:encoded>
    </item>
    <item>
      <guid>https://codecrush.com.br/en/blog/analise-entre-sistemas-operacionais</guid>
      <title>Windows, Linux or macOS: which operating system to choose?</title>
      <link>https://codecrush.com.br/en/blog/analise-entre-sistemas-operacionais</link>
      <description>Windows leads in compatibility and games, macOS in integration and stability, Linux in free customization and ChromeOS in cloud simplicity.</description>
      <pubDate>Sun, 14 May 2023 00:00:00 GMT</pubDate>
      <author>devhenrico@gmail.com (Henrico Piubello)</author>
      <category>Hardware e Sistemas</category>
      <content:encoded><![CDATA[![Illustration comparing Windows, Linux, macOS and ChromeOS operating systems in a spatial style](/static/images/articles/analise-comparativa.webp)

Windows, macOS, Linux and ChromeOS serve different profiles: Windows leads in compatibility and games; macOS in integration and stability; Linux in free customization; ChromeOS in simplicity and price. The right choice depends on your use, and this comparison shows how to decide.



## Which operating system is the most used?

Windows is the most used desktop operating system in the world, with 56.55% global share in June 2026, according to [StatCounter Global Stats](https://gs.statcounter.com/os-market-share/desktop/worldwide/) — the first time in years Microsoft sits below 60%. In the same measurement, Apple desktop systems add up to about 16%, Linux reaches 4.39% and ChromeOS appears with 1.21%.

Among developers, the landscape is more balanced. In the [Stack Overflow Developer Survey 2024](https://survey.stackoverflow.co/2024/technology), Windows was reported as the personal system by 59.2% of respondents, while macOS registered 31.8% and Ubuntu, the main Linux distribution, 27.7% — many developers use more than one system.

These numbers show that popularity is not synonymous with suitability: the right system for a gamer is rarely the same as for a server administrator. The following sections detail the strengths of each platform so you can decide based on your use case, not the market average.

## Windows, Linux, macOS or ChromeOS: which to choose?

Choose Windows for gaming, commercial software and corporate environments; macOS for integration with the Apple ecosystem and stability; Linux for customization, servers and zero cost; and ChromeOS for basic web tasks on a limited budget.

| Priority                     | Best option | Why                                          |
| ------------------------------ | ------------ | ------------------------------------------------ |
| Gaming and commercial software   | Windows      | Largest catalog of apps, games and drivers   |
| iPhone and iPad integration   | macOS        | Native sync via iCloud and Handoff        |
| Customization and zero cost      | Linux        | Open source, free and fully modifiable |
| Simplicity and low price     | ChromeOS     | Web-focused, runs well on modest hardware      |
| Corporate environments         | Windows      | Robust management and Microsoft 365 suite      |
| Servers, cloud and DevOps     | Linux        | Industry standard for servers and containers  |

The table summarizes the decisive criterion of each platform, but it is worth reading the following sections before making up your mind: factors like the hardware you already own and the software you depend on usually weigh more than aesthetic preferences.

## What are the advantages of Windows?

Windows offers the largest software and [hardware](/en/glossario/hardware) compatibility on the market: virtually every commercial app, game and peripheral is developed first (and sometimes exclusively) for it. This ubiquity, combined with Microsoft extensive support, makes [Windows](https://www.microsoft.com/pt-br/windows/) the safest option for those who do not want incompatibility surprises.

### Compatibility and hardware variety

Windows runs on machines from dozens of manufacturers, from basic laptops to workstations and 2-in-1 devices, which allows choosing equipment for any budget. The large user base also ensures abundant documentation, regular updates and a huge supply of third-party apps.

### Gaming and entertainment

Windows is the leading platform for PC gaming: most titles are developed and optimized for it, and services like [Xbox Game Pass](https://www.xbox.com/pt-BR/xbox-game-pass) give access to a game library by subscription. Video and audio streaming and creative tools also have full support.

### Corporate environment integration

Windows has dominated the corporate world for decades, with mature features for centralized management, security and support for the [Microsoft 365](https://www.microsoft.com/pt-br/microsoft-365) suite. The historical counterpoint is being the preferred target of viruses and malware, precisely because of its popularity — the evolution of this platform and its bets on AI (Artificial Intelligence) are detailed in [our analysis of the Windows journey](/en/blog/windows-a-jornada-do-sistema-operacional-dominante-e-seu-futuro-impuls).

## When to choose macOS?

macOS is the best choice for those who already use iPhone or iPad, value stability and work with content creation or development for Apple platforms. Since [Apple](https://www.apple.com/br/macos/) controls both hardware and software, the system delivers optimization, consistent performance and fewer crashes — in exchange for higher prices and less hardware flexibility.

### Apple ecosystem integration

macOS syncs automatically with iPhone and iPad through iCloud: photos, messages, files and even calls flow between devices. The elegant design and cohesive interface complete an experience that prioritizes ease of use without sacrificing advanced features.

### Security and privacy

macOS has built-in protection features, such as [Gatekeeper](/en/blog/o-que-e-gatekeeper), which blocks untrusted apps from running, and FileVault, which encrypts the disk. Apple also adopts a strict privacy stance, with granular per-app permission controls and tracking protection in Safari.

### Preferred platform for Apple development

macOS is required to compile and publish iPhone, iPad and Mac apps, making it the standard platform for those creating for the ecosystem — as our [complete iOS development guide](/en/blog/desenvolvimento-ios-guia-completo-para-criar-aplicativos-apple-de-suce) explains. The native Unix terminal also appeals to web and backend developers.

## Why do developers prefer Linux?

Linux is an open-source, free and fully customizable operating system, which made it the absolute standard in servers, cloud and high-performance computing. According to the [Linux Foundation](https://www.linuxfoundation.org/blog/blog/linux-runs-all-of-the-worlds-fastest-supercomputers), 100% of the world 500 fastest supercomputers (the TOP500 list) run Linux — total dominance maintained since November 2017.

### Open source and zero cost

Linux gives full access to the source code, allowing modification of any aspect of the system. A global community of developers identifies and fixes vulnerabilities quickly, which sustains its reputation for security and stability — all without licensing cost.

### Distributions for every profile

Linux is distributed in versions with distinct proposals: Ubuntu and Linux Mint for beginners, Debian and Fedora for those seeking balance, Arch for advanced users and even distributions specialized in offensive security, as our article on [Kali Linux](/en/blog/kali-linux) shows. Desktop environments like GNOME, KDE and Xfce let you fully customize appearance and behavior.

### Learning curve as investment

Linux requires more technical knowledge than Windows and macOS, especially on the command line ([CLI](/en/glossario/cli)) — mastering the [fundamental terminal commands](/en/blog/comandos-fundamentais-de-terminal-cmd-linux-mac) greatly accelerates this transition. For developers, the effort pays off: the Linux desktop replicates the server environment where the code will run in production.

## ChromeOS: simplicity and low cost

ChromeOS is [Google](https://www.google.com/intl/pt-BR/chromebook/chrome-os/) operating system for Chromebooks, designed around the browser and web apps. Because it relies on the cloud for most tasks, it runs smoothly on modest, cheap hardware, booting in seconds.

Security is a highlight: verified boot, app sandboxing and frequent automatic updates form a layered defense that makes Chromebooks less susceptible to malware. Native integration with Google Drive, Docs and Gmail favors collaboration and online productivity.

The limitation is clear: heavy professional software, AAA games and complex offline workflows are out. ChromeOS serves students, schools and users who live in the browser well — and serves poorly those who need locally installed apps.

## Conclusion

There is no "best" operating system in the abstract — there is the best for your use case. The practical CodeCrush recommendation: stay on Windows if games and commercial software dominate your day; invest in macOS if you live in the Apple ecosystem or develop for iOS; adopt Linux if you want total control, zero cost and an environment identical to servers; and consider a Chromebook if your digital life fits in the browser. In 2026, with WSL (Windows Subsystem for Linux) on Windows and the Unix terminal on macOS, the boundary between systems has never been easier to cross — which makes getting the choice wrong much less costly than it used to be.]]></content:encoded>
    </item>
    <item>
      <guid>https://codecrush.com.br/en/blog/api-cowsay</guid>
      <title>Cowsay API: how to use the talking cow in the terminal</title>
      <link>https://codecrush.com.br/en/blog/api-cowsay</link>
      <description>Cowsay is a command-line tool that displays messages in the speech bubble of an ASCII cow. Install via apt or npm and customize with the -f flag.</description>
      <pubDate>Sun, 24 Mar 2024 00:00:00 GMT</pubDate>
      <author>devhenrico@gmail.com (Henrico Piubello)</author>
      <category>DevOps e Ferramentas</category><category>Desenvolvimento</category>
      <content:encoded><![CDATA[![zsh terminal running the npx cowsay command with the ASCII cow displaying a message](/static/images/articles/cowsay-capa.webp)

Cowsay is a command-line tool that displays text messages in the speech bubble of a cow drawn in ASCII (American Standard Code for Information Interchange). Created in Perl by Tony Monroe in 1999, it gives personality to scripts and warnings in the Linux, macOS and Node.js terminal.



## What is Cowsay?

[Cowsay](https://cowsay.diamonds/) is a [CLI (command-line interface)](/en/glossario/cli) program written in Perl that prints to the terminal a cow in ASCII art "speaking" the message the user provides. The official manual defines it, with humor, as "configurable speaking/thinking cow (and a bit more)" — a configurable speaking (or thinking) cow, and a bit more, according to the [cowsay man page](https://linux.die.net/man/1/cowsay).

Tony Monroe released Cowsay in 1999, inspired by the ASCII cow culture of the University of California Berkeley computer science community, as reported on the [official project site](https://cowsay.diamonds/). In 2016, Monroe published the final version 3.04 of the original code and the community took over maintenance through the fork [cowsay-org/cowsay](https://github.com/cowsay-org/cowsay), maintained by Andrew Janke.

The fun continues alive in the JavaScript ecosystem: the [npm cowsay package](https://www.npmjs.com/package/cowsay), maintained by Fabio Crisci under the MIT license and at version 1.6.0, recorded 88,679 downloads in the week of July 2-8, 2026, according to the public npm downloads API. Although popularly searched as "Cowsay API", it works both as a terminal command and as a JavaScript [API](/en/glossario/api) importable in Node.js applications.

Beyond the fun, Cowsay has practical utility: visually highlighting important messages in scripts, builds and shared terminal sessions.

## How to install and use Cowsay in the terminal?

To install Cowsay, use your operating system package manager or the npm from [Node.js](/en/glossario/nodejs). The full process takes less than a minute:

1. **Install via the system package manager**: on Ubuntu and Debian derivatives, run `sudo apt-get install cowsay`; on other Linux distributions, use the equivalent (`yum`, `dnf`, `pacman`).
2. **Or install via npm**: with Node.js configured, run `npm install -g cowsay`. If you have doubts about npm and yarn, see our [package managers guide](/en/blog/gerenciadores-de-pacotes-npm-yarn-pnpm).
3. **Run the command with your message**: type `cowsay "Hello World!"` and the cow appears in the terminal with the text in the speech bubble.
4. **Test without installing anything**: run `npx cowsay "Hello World!"` — [npx, the npm package runner](/en/blog/introducao-npx-uma-biblioteca-de-execucao), downloads and runs the package on the spot.

In the terminal, the result looks like this:

```bash
cowsay "Hello World!"
```

Or, using npx:

```bash
npx cowsay "Hello World!"
```

![Cowsay ASCII cow displaying the Hello World message in the terminal](/static/images/articles/hello-cowsay.webp)

The npm package also works as a module inside code. Just import and call the `say` function:

```javascript
const cowsay = require('cowsay')

console.log(cowsay.say({ text: 'Hello, CodeCrush!' }))
```

This programmatic usage is useful for generating messages in your own command-line tools, without depending on the system-installed binary.

## Customizing Cowsay: flags, cowfiles and cowthink

Cowsay accepts flags that change the character, the eyes and even the bubble shape. The main options documented in the manual are:

- `-f <cowfile>`: switches the cow to another character (a "cowfile"). Example: `cowsay -f tux "Hello Tux!"` displays the Linux penguin.
- `-l`: lists all available cowfiles on the system.
- `-e <eyes>`: customizes the character eyes with two characters, like `-e "^^"`.
- `-T <tongue>`: sets the character tongue, like `-T " U"`.
- `cowthink`: invoked instead of `cowsay`, makes the cow "think" the message in a cloud bubble.

See the example with Tux:

```bash
npx cowsay -f tux "Hello Tux!"
```

![Tux penguin drawn by Cowsay with the -f flag in the terminal](/static/images/articles/hello-tux.webp)

Those who want to go further can create custom cowfiles: they are simple text files that define the ASCII drawing, and the format is documented in the [official cowsay repository](https://github.com/cowsay-org/cowsay).

## When to use Cowsay in real projects?

Cowsay is ideal whenever you want to highlight a message in the terminal in a way that is impossible to ignore — and draw a smile in the process. The most common uses among developers are:

1. **Signal script status**: display success or failure of a build or deploy with a different character for each result.
2. **Create welcome messages**: add Cowsay to the shell startup file to greet the team with a quote of the day.
3. **Make warnings visible on shared servers**: an ASCII cow draws more attention than a common log line.
4. **Teach terminal concepts**: Cowsay is a fun first command for those learning the [fundamental terminal commands](/en/blog/comandos-fundamentais-de-terminal-cmd-linux-mac).

In serious production pipelines, use in moderation: the fun is in the contrast, not in repetition.

## Cowsay, Fortune or Figlet: which to choose?

The choice depends on the desired effect: Cowsay gives voice to a character, Fortune draws quotes and Figlet turns text into a banner. The table summarizes the classic options for terminal fun:

| Tool | What it does                                 | Best use                        |
| ---------- | ----------------------------------------- | --------------------------------- |
| Cowsay     | ASCII character speaks your message      | Fun feedback in scripts     |
| cowthink   | Cow "thinks" the message in a cloud bubble | Subtle Cowsay variation          |
| Fortune    | Draws random quotes and proverbs  | Login messages and quote of the day |
| Figlet     | Converts text into giant ASCII letters   | Banners and titles in the terminal     |
| lolcat     | Colors the output of other commands         | Combine with Cowsay and Figlet      |

The tools combine well with each other: the pipeline `fortune | cowsay` is a classic of Unix terminals, making the cow "speak" a random quote on each run.

## Conclusion

Cowsay proves that not every tool needs to solve a serious problem to deserve a place in your terminal: sometimes the value is in humanizing the daily life of those who program. Install with one command, customize with `-f` and use the npm version when you want the cow inside your own JavaScript code. Here at CodeCrush, the recommendation is practical: adopt Cowsay at the points in the flow where a message needs to be seen — and let the cow work for your deploy.]]></content:encoded>
    </item>
    <item>
      <guid>https://codecrush.com.br/en/blog/api-facebook-graph</guid>
      <title>Facebook Graph API: what it is and how to implement</title>
      <link>https://codecrush.com.br/en/blog/api-facebook-graph</link>
      <description>The Graph API is Meta official HTTP interface for reading and publishing Facebook data. See how to register the app, authenticate users and make calls.</description>
      <pubDate>Fri, 29 Mar 2024 00:00:00 GMT</pubDate>
      <author>devhenrico@gmail.com (Henrico Piubello)</author>
      <category>Web e APIs</category><category>Desenvolvimento</category>
      <content:encoded><![CDATA[![Meta logo with graph connections representing the Facebook Graph API](/static/images/articles/facebook-graph-api.webp)

The Facebook Graph API is Meta official HTTP interface for reading and writing Facebook data programmatically, used for social login, content publishing and metrics analysis. With a registered app and an access token, any application queries the Facebook social graph in a few lines of code.



## What is the Facebook Graph API?

The Facebook Graph API is an [API (Application Programming Interface)](/en/glossario/api) based on HTTP that represents Facebook data as a graph: **nodes** (users, pages, photos, events), **edges** (connections between nodes, like the comments on a post) and **fields** (attributes, like a profile name). All reading and writing of data on the platform goes through it, at the `graph.facebook.com` endpoint, following the [REST](/en/glossario/rest-api) style over HTTPS.

The Graph API gives access to public and private information — user profiles, posts, photos, events and metrics — always conditioned on the permissions the user grants to your application during login.

The API is versioned: the current version is **v25.0, launched on February 18, 2026**, according to the [official Graph API changelog](https://developers.facebook.com/docs/graph-api/changelog). The [Meta versioning guide](https://developers.facebook.com/docs/graph-api/guides/versioning/) guarantees that each version stays active for at least two years after launch — v19.0, for example, launched in early 2024, expired in May 2026. Pinning the version in your request URLs prevents silent breakage when Meta deprecates old versions.

## When to use the Facebook Graph API?

The Facebook Graph API is the right choice whenever your application or website needs to interact with the Facebook platform — and it is also the gateway to the rest of the Meta ecosystem, which includes Instagram and the [Threads social network](/en/blog/rede-social-threads). The most common use cases are:

- **User authentication** via Facebook Login (social login).
- **Content display**: posts, profile photos and events inside your app.
- **Programmatic publishing** of content to pages from your system.
- **Metrics analysis** of page and post engagement.

A practical warning: since the Graph API exposes personal data from users, your app must respect the [data processing rules of the LGPD](/en/blog/o-que-e-lgpd), collecting only strictly necessary permissions — Meta itself reviews apps that request advanced permissions before releasing them in production.

## How to implement the Facebook Graph API?

Implementing the Facebook Graph API follows four steps: register the application, configure login, get an access token and make HTTP requests. In detail:

1. **Register the application** on [Meta for Developers](https://developers.facebook.com/). After registration, you receive an App ID and a secret key — the credentials that identify your app in all calls.
2. **Configure Facebook Login** in the app dashboard, defining the OAuth redirect URLs and the permissions (scopes) that will be requested from the user.
3. **Get the access token**: upon completing login, the user authorizes your app and the platform returns a [token](/en/glossario/token) representing that authorization. All requests on behalf of the user carry this token.
4. **Make the first request** to the `graph.facebook.com` endpoint, specifying the desired node (for example, `/me`), the fields and the token. Use the [Graph API Explorer](https://developers.facebook.com/tools/explorer/) to test calls in the browser before coding.

The flow is the same OAuth standard from other platforms — if you have already integrated the [Google Maps API in a web project](/en/blog/api-google-maps), you will recognize the credentials, keys and parameterized requests structure.

## What are the limits and token validity?

The Facebook Graph API imposes rate limits per application: at the standard access level, the ceiling is **200 calls per hour multiplied by the number of daily active users of the app**, calculated on a rolling window, as per the [Meta Rate Limits documentation](https://developers.facebook.com/docs/graph-api/overview/rate-limiting/). Responses include the `X-Business-Use-Case-Usage` header, which reports current consumption — monitor this value to avoid being blocked at peak hours.

Access tokens also have an expiration date, documented in the [Access Tokens guide](https://developers.facebook.com/docs/facebook-login/guides/access-tokens/):

| Token type          | Approximate duration | Typical use                  |
| ---------------------- | ------------------ | --------------------------- |
| User, short-lived | 1 to 2 hours        | Browser login (web)   |
| User, long-lived | About 60 days   | Mobile apps and servers    |

Converting a short token into a long one is done with a server call using the app secret key. Meta recommends not relying on these timeframes: they can change without notice, and tokens can be invalidated before expiration (password change, permission revocation). Always handle the expired token error in your code.

## How to retrieve user data with JavaScript?

Retrieving user data with the Facebook Graph API in [JavaScript](/en/glossario/javascript) requires only a `fetch()` request to the `/me` endpoint with a valid access token. In the example below, a simple HTML page has a **Get User Data** button and a `div` to display the information; on click, the `getUserData()` function is called:

```html
<!DOCTYPE html>
<html lang="pt-br">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Facebook Graph API Example</title>
  </head>
  <body>
    <h1>Facebook Graph API Example</h1>
    <button onclick="getUserData()">Get User Data</button>
    <div id="userData"></div>

    <script>
      // Function to make API request and retrieve user information
      function getUserData() {
        // Access token obtained after user authentication
        var accessToken = 'PUT_YOUR_ACCESS_TOKEN_HERE'

        // API URL to retrieve logged-in user information
        var apiUrl = 'https://graph.facebook.com/me?fields=id,name,email&access_token=' + accessToken

        // Making GET request to the API
        fetch(apiUrl)
          .then((response) => response.json())
          .then((data) => {
            // Displaying user information on the page
            document.getElementById('userData').innerHTML = `
              <p>ID: ${data.id}</p>
              <p>Name: ${data.name}</p>
              <p>Email: ${data.email}</p>
            `
          })
          .catch((error) => {
            console.error('Error retrieving user data:', error)
          })
      }
    </script>
  </body>
</html>
```

Inside the `getUserData()` function, the Graph API URL requests the user basic fields (`id`, `name` and `email`) via the `fields` parameter. The `fetch()` method makes the GET request, and the JSON response is displayed on the page with `innerHTML`.

Replace `PUT_YOUR_ACCESS_TOKEN_HERE` with the real token obtained on Facebook login. In production, never expose long-lived tokens or the secret key on the frontend — keep them on the server and pass only short tokens with minimal permissions to the browser.

## Conclusion

The Facebook Graph API remains the most reliable way to integrate a product with the world largest social graph — as long as you play by Meta rules: pin the API version, request only necessary permissions, monitor rate limits and handle token expiration from the first commit. The cost of ignoring these details is an app blocked in review or broken on a version deprecation. Start small in the Graph API Explorer, validate the login flow and only then take the calls to code — here at CodeCrush, that is the order we recommend for any third-party API integration.]]></content:encoded>
    </item>
    <item>
      <guid>https://codecrush.com.br/en/blog/api-google-maps</guid>
      <title>Google Maps API: What it is, how to implement it, and how much it costs</title>
      <link>https://codecrush.com.br/en/blog/api-google-maps</link>
      <description>The Google Maps API lets you embed interactive maps, routes, and geolocation in websites and apps; it requires an API key and offers 10,000 free calls per month.</description>
      <pubDate>Fri, 29 Mar 2024 20:40:00 GMT</pubDate>
      <author>devhenrico@gmail.com (Henrico Piubello)</author>
      <category>Web e APIs</category>
      <content:encoded><![CDATA[![Illustration of the Google Maps API with an interactive map and a developer programming the integration](/static/images/articles/google-maps-api.webp)

The Google Maps API is the set of Google Maps Platform interfaces that lets you embed interactive maps, routes, geocoding, and place data into apps and websites. Present on more than 10 million sites and apps, it is the market standard for location features in web and mobile projects.



## What is the Google Maps API?

The Google Maps API is an [API](/en/glossario/api) (Application Programming Interface) from the Google Maps Platform that gives programmatic access to Google Maps data and resources: map views, markers, directions, traffic information, geocoding, and establishment details. With it, developers add maps and location to apps and websites without building their own cartographic infrastructure.

According to the [official Google blog](https://blog.google/products/earth/grounding-google-maps-generative-ai/) (2024), more than 10 million websites and applications use the Google Maps Platform, from delivery apps to real estate portals. The platform is part of the [Google Cloud](/en/blog/google-cloud-desvendando-o-ecossistema-de-inovacao-e-escalabilidade-pa) ecosystem, which centralizes authentication, billing, and API usage monitoring.

In practice, the most common integration happens through [JavaScript](/en/glossario/javascript): the Maps JavaScript API renders interactive maps directly in the browser, while services like Geocoding and Routes respond to HTTP requests with structured data.

## Which APIs make up the Google Maps Platform?

The Google Maps Platform brings together several specialized APIs, and choosing the right one avoids unnecessary costs. The main ones are the Maps JavaScript API (interactive maps), the Geocoding API (converting addresses to coordinates), the Routes API (routes and directions), and the Places API (New) (place data).

| API                 | Main function                        | Typical use case             |
| ------------------- | ------------------------------------- | ---------------------------- |
| Maps JavaScript API | Interactive maps in the browser       | Site with an embedded map    |
| Static Maps API     | Static map images                     | Emails and lightweight pages |
| Geocoding API       | Addresses to coordinates and back     | Location-based search        |
| Routes API          | Route and direction calculation        | Delivery and transport apps  |
| Places API (New)    | Detailed place data                   | Address autocomplete         |

Watch out when choosing: in March 2025 Google reclassified older services. According to the [official Google Maps Platform documentation](https://developers.google.com/maps/billing-and-pricing/march-2025), "Google is designating three services as Legacy status: Places API, Directions API, and Distance Matrix API" — meaning Places API, Directions API, and Distance Matrix API became Legacy, and new projects should use the Places API (New) and the Routes API, which offer better data quality and expanded volume discounts.

## When to use the Google Maps API?

The Google Maps API should be used whenever a project needs to display maps, calculate routes, or work with location data with global coverage and consistent data quality. It is the default choice when the accuracy of [georeferencing](/en/blog/o-que-e-georreferenciamento) directly impacts the user experience. Frequent use cases include:

- Delivery apps that show the courier's position and the destination in real time.
- Hotel booking sites that display the proximity to points of interest.
- Transportation apps that calculate routes and estimate travel times with traffic data.
- E-commerce and marketplaces that validate delivery addresses with geocoding.
- Logistics dashboards that draw coverage areas with polygons and markers.

Just like other APIs from major platforms — the [Facebook Graph API](/en/blog/api-facebook-graph) is another classic example — the Google Maps API charges for usage above the free quota. For internal prototypes or purely illustrative maps, open alternatives like OpenStreetMap may suffice; for production products with real users, Google's coverage, support, and SLA (Service Level Agreement) usually justify the investment.

## How much does the Google Maps API cost?

Since March 1, 2025, the Google Maps API no longer uses the US$200 monthly credit: each SKU (Stock Keeping Unit, the billing unit for each resource) in the Essentials category now includes 10,000 free calls per month, per the [official March 2025 changes page](https://developers.google.com/maps/billing-and-pricing/march-2025). The Geocoding API, for example, has 10,000 recurring free monthly requests.

APIs are organized into three categories — Essentials, Pro, and Enterprise — each with its own monthly free quota per SKU. Above the quota, billing is per thousand events, with automatic volume discounts that, according to the [official Google Maps Platform pricing FAQ](https://developers.google.com/maps/billing-and-pricing/faq) (2025), scale up to tiers of more than 5,000,000 billable events per month.

To avoid surprises on the invoice, three practices are essential: restrict the API key by domain or app, set budget alerts and limits in the Google Cloud console, and monitor consumption per SKU in the billing dashboard. Because the free quota renews monthly, small projects and blogs — like many of the tutorials published here on CodeCrush — frequently operate at no cost.

## How to implement the Google Maps API on your site

The basic implementation of the Maps JavaScript API takes three steps:

1. **Create an API key** in the Google Cloud console, enabling the Maps JavaScript API in the project.
2. **Load the JavaScript library** in the page's HTML, passing the key as a parameter.
3. **Initialize the map** in a page element, defining the center, zoom, and markers.

### Step 1: get an API key

The Google Cloud API key authenticates your requests and links consumption to your project. Follow the instructions in the [official API key documentation](https://developers.google.com/maps/documentation/javascript/get-api-key) to generate it, and then restrict it by HTTP domain — an exposed key without restrictions can be abused by third parties and generate improper charges.

### Step 2: include the JavaScript library

With the key in hand, add the Maps JavaScript API script to the `<head>` section of your HTML pages:

```html
<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&loading=async"></script>
```

Replace `YOUR_API_KEY` with the key generated in the previous step. The `loading=async` parameter is Google's recommended way to load the library without blocking page rendering.

### Step 3: add a map to the page

With the library loaded, a few lines of code display a map with a marker:

```html
<div id="map"></div>
<script>
  function initMap() {
    var myLatLng = { lat: -25.363, lng: 131.044 } // Sets the map coordinates
    var map = new google.maps.Map(document.getElementById('map'), {
      zoom: 4,
      center: myLatLng,
    }) // Creates the map
    var marker = new google.maps.Marker({
      position: myLatLng,
      map: map,
      title: 'Hello World!',
    }) // Adds a marker to the map
  }
</script>
<script
  async
  defer
  src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap"
></script>
```

This code creates a map centered on the specified coordinates and adds a marker at the location. From there, the [markers documentation](https://developers.google.com/maps/documentation/javascript/markers#add) shows how to add polygons, lines, and real-time traffic layers.

## Practical examples and reference repositories

Seeing real code accelerates learning the Google Maps API. Three open source repositories are good starting points:

1. **[Uber Clone](https://github.com/SimCoderYoutube/UberClone)**: source code of an Uber app clone, with mapping and directions using the Google Maps API.
2. **[React Native Maps](https://github.com/react-native-maps/react-native-maps)**: npm package that integrates native Google maps into React Native apps — useful for anyone already [getting started with React](/en/blog/iniciando-com-react) who wants to bring maps to mobile.
3. **[Restaurant Reviews App](https://github.com/udacity/mws-restaurant-stage-1)**: Udacity project that displays restaurant reviews on an interactive map.

Beyond those projects, four practical implementations cover most day-to-day needs: address geocoding with the [Geocoding API](https://developers.google.com/maps/documentation/geocoding/overview#geocoding_requests) for location-based searches; route calculation for transportation and delivery apps; the [real-time traffic layer](https://developers.google.com/maps/documentation/javascript/examples/layer-traffic) to help users avoid congestion; and markers, polygons, and lines to highlight points of interest and coverage areas. By combining these blocks, you can build everything from a simple contact map to a complete logistics platform.

## Conclusion

The Google Maps API remains the safest choice for location in production: no alternative combines the same global coverage, real-time traffic data, and library ecosystem. The point of attention has shifted from "how to implement" to "what to use and how much it costs" — with the per-SKU quota model in effect since March 2025 and the Legacy APIs being retired, it's worth starting any new project directly with the Routes API and Places API (New), with the key restricted by domain and budget alerts configured from day one.]]></content:encoded>
    </item>
    <item>
      <guid>https://codecrush.com.br/en/blog/aplicacoes-da-inteligencia-artificial</guid>
      <title>Artificial Intelligence Applications: Examples and Real Uses</title>
      <link>https://codecrush.com.br/en/blog/aplicacoes-da-inteligencia-artificial</link>
      <description>AI is already applied in medicine, digital security, industry, routing, customer service, and marketing. See real examples, the risks, and how to start studying.</description>
      <pubDate>Sun, 14 May 2023 00:00:00 GMT</pubDate>
      <author>devhenrico@gmail.com (Henrico Piubello)</author>
      <category>Inteligência Artificial</category><category>Tecnologia e Inovação</category>
      <content:encoded><![CDATA[![Humanoid robot with a digital brain representing applications of artificial intelligence in chips and processors](/static/images/articles/ia.webp)

The most relevant applications of AI (Artificial Intelligence) today include medical diagnosis, digital security, smart routing, industrial production, customer service, and marketing. These are systems that learn from data to recognize images, understand natural language, and predict human behavior.



## What is artificial intelligence?

Artificial Intelligence is an area of computer science that develops algorithms and systems capable of performing tasks that usually require human intelligence, such as **learning**, **decision-making**, **speech and vision recognition**, and **natural language processing**, used to automate and optimize processes in virtually every sector.

AI systems are designed to analyze large amounts of data and learn from it, which means they can adapt and improve over time. Corporate adoption has accelerated: according to the [McKinsey State of AI report (2025)](https://www.mckinsey.com/capabilities/quantumblack/our-insights/the-state-of-ai), **88% of organizations already use AI in at least one business function**, up from 78% the previous year.

If the difference between the terms still confuses you, check out this [comparison between machine learning and artificial intelligence](/en/blog/diferenca-machine-learning-e-inteligencia-artificial).

## How does artificial intelligence work?

Artificial intelligence works through [machine learning](/en/glossario/machine-learning) algorithms, which allow the system to learn from available data and adapt to new information. There are three main types of learning: **supervised**, **unsupervised**, and **reinforcement**.

In supervised learning, the system is **trained with a labeled dataset** and then uses that knowledge to classify new data. In unsupervised learning, the system **looks for patterns in the data** without prior labels. In reinforcement learning, the system **learns by trial and error**, receiving positive or negative feedback on its actions.

### Machine learning

Machine learning is the technique that allows AI systems to **learn from data**. The algorithms analyze large volumes of information and use these patterns to make predictions or decisions.

### Neural networks

Neural networks are mathematical models designed to **mimic the workings of the human brain**. These models learn from examples and make predictions based on that learning — they are the foundation of today's language models.

### Natural language processing

NLP (Natural Language Processing) is the technique that allows AI systems to understand human language, through algorithms that analyze the meaning of words and sentences.

## What are the main applications of artificial intelligence?

The main applications of artificial intelligence today are concentrated in seven areas: medicine, digital security, routing, document verification, industrial production, customer service, and digital marketing.

1. **Medicine** — more accurate diagnoses and hospital risk management.
2. **Digital security** — intrusion detection and suspicious activity monitoring.
3. **Routing apps** — traffic optimization and travel prediction.
4. **Document verification** — authentication with OCR and biometrics.
5. **Industrial production** — real-time monitoring and correction.
6. **Customer service** — chatbots and 24/7 virtual assistants.
7. **Digital marketing** — personalized targeting and recommendations.

### Medicine

AI contributes to more accurate diagnoses and preventive treatments by analyzing and cross-referencing patient data. The progress is measurable: according to the [Stanford HAI AI Index 2025](https://hai.stanford.edu/ai-index/2025-ai-index-report/science-and-medicine), the FDA had approved **950 AI-enabled medical devices** by August 2024 — there were only 6 in 2015. In Brazil, the [robot Laura](http://www.laura-br.com/) acts as a risk manager in hospitals, improving the safety of medical care.

### Digital security

AI protects users against account takeovers and suspicious activity through intelligent surveillance software, which learns from successful security actions to improve defenses against new threats.

### Routing apps

Tools like [Google Maps](https://www.google.com.br/maps/preview) and [Waze](https://www.waze.com/pt-PT/live-map/) employ AI to optimize traffic, calculate the best routes, predict travel times, and estimate ride prices.

### Document verification and validation

AI automates the checking and authentication of documents through OCR (Optical Character Recognition), facial and biometric recognition, speeding up bureaucratic processes.

### Industrial production

Real-time data collection sensors allow AI to monitor and correct industrial production, optimizing processes from raw material to final delivery to the consumer, with greater efficiency and lower cost.

### Customer service

With [chatbots and automation tools](/en/blog/ferramentas-chatbot-de-automacao), virtual assistants and interactive bots, AI improves the customer experience, answering questions, providing solutions, and even making sales.

### Digital marketing

AI personalizes communication with customers, analyzing behaviors, preferences, and interests to create more relevant segments, recommendations, and offers.

## How is artificial intelligence applied in everyday life?

Artificial intelligence is already embedded in services we use every day, from email to streaming, making everyday tasks faster, more convenient, and safer. The most common examples:

- **Spam filters**: email providers use AI to identify and filter unwanted or malicious messages, blocking spam and phishing.
- **Facial recognition**: smartphones use AI to unlock the device with fast and secure authentication.
- **Voice assistants**: Apple's [Siri](https://www.apple.com/br/siri/), Amazon's Alexa, and [Google Assistant](https://assistant.google.com/) understand natural language to answer questions, play music, control lights, and perform tasks.
- **Fraud detection**: banks analyze behavioral patterns with AI to identify suspicious activity in online transactions.
- **Content recommendations**: platforms like [Netflix](https://www.netflix.com/br/) and [Spotify](https://open.spotify.com/) use AI algorithms to suggest movies, series, and playlists based on the user's history.
- **Home automation**: AI controls smart devices in homes connected to the [IoT](/en/glossario/iot) (Internet of Things) — lights, thermostats, and security systems — based on usage patterns.
- **Instant translation**: messaging apps incorporate AI-based translation for real-time communication across languages.
- **Autonomous vehicles**: cars process sensor and camera data with AI to navigate independently, identifying obstacles and traffic signs.

## How to apply artificial intelligence at work?

Artificial intelligence is applied at work by automating repetitive tasks, supporting decisions with data analysis, and personalizing customer contact. Adoption is already the rule among technology professionals: the [Stack Overflow Developer Survey 2025](https://survey.stackoverflow.co/2025/ai/) shows that **84% of developers use or plan to use AI tools** in their development process, up from 76% in 2024.

The most common corporate uses:

- **Recruitment and selection**: analyzing resumes and profiles to identify suitable candidates for each position.
- **Automating repetitive tasks**: data processing, workflow management, and record updates, freeing the team for strategic work.
- **Support and technical service**: chatbots answer common questions and resolve basic issues 24/7.
- **Data analysis and decision-making**: identifying trends and patterns in large datasets for informed decisions.
- **Demand and inventory forecasting**: projecting demand based on historical data, avoiding shortages or surplus goods.
- **Production and logistics optimization**: real-time production adjustment and delivery route optimization, reducing costs.
- **Sentiment analysis**: reading customer perception on social media to guide improvements in products and services.
- **Experience personalization**: specific recommendations and offers per user in e-commerce and apps.

## How do models like ChatGPT work?

ChatGPT works on the basis of GPT (Generative Pre-trained Transformer), a language model developed by [OpenAI](https://openai.com/) that understands and generates text in a way similar to humans. GPT uses the Transformer neural network architecture, capable of processing sequences of words and learning complex language patterns.

The model is trained on large volumes of text, absorbing knowledge from diverse sources to acquire broad linguistic context. With that, it can generate coherent and relevant text: answer questions, create stories, and write complete articles.

This advance also raises questions of ethics and reliability. Because the model is trained on internet data, there are risks of bias and the spread of false information — which is why AI labs invest in content moderation, safety, and transparency.

## What are the risks of artificial intelligence?

The risks of artificial intelligence include unemployment from automation, bias inherited from data, privacy violations, and lack of regulation — challenges that grow at the same pace as adoption. The ten most discussed risks:

1. **Mass unemployment**: automation can replace many jobs, increasing economic inequality.
2. **Bias and discrimination**: AI can reflect prejudices present in training data, generating unfair decisions in recruitment, credit, and criminal justice.
3. **Excessive dependence**: relying too much on AI in critical decisions can atrophy essential human skills.
4. **Privacy and security**: the proliferation of AI expands the collection of personal data and opens the door to sophisticated cyberattacks.
5. **Superintelligence**: an AI much smarter than humans would have actions and intentions that are hard to predict.
6. **Malevolent autonomy**: autonomous systems can be used for advanced cyberattacks or disinformation.
7. **Inadequate control and regulation**: lack of regulation can lead to undesirable consequences for society.
8. **Ethical and legal difficulties**: critical decisions made by algorithms without clear attribution of responsibility.
9. **Technological dependence**: essential sectors like transportation, health, and energy become vulnerable to system failures.
10. **Technological singularity**: an AI capable of improving itself would make the future highly unpredictable.

Researchers, developers, and lawmakers need to work together to mitigate these risks and ensure AI is developed responsibly and ethically.

## Where to start studying artificial intelligence?

To start studying artificial intelligence, the path is to build a solid foundation in math and programming, master machine learning next, and consolidate everything with hands-on projects. Concepts of linear algebra, calculus, and statistics are fundamental to understanding the algorithms, and the [Python](/en/blog/python) language is the most widely used in the AI community.

After the fundamentals, explore the subfields: machine learning allows computers to improve their performance from data, without explicit programming, and artificial neural networks recognize complex patterns inspired by the human brain. A good next step is this [guide to methods and resources for studying machine learning](/en/blog/guia-estudar-machine-learning-metodos-listas-recursos).

**Practice is what consolidates knowledge**: take part in data science competitions, contribute to open source projects, and build a relevant portfolio. Finally, stay up to date — AI evolves constantly, and conferences, workshops, online courses, and technical blogs like CodeCrush help you keep up with new techniques and connect with other professionals in the field.

## Conclusion

Artificial intelligence has gone from being a promise to becoming infrastructure: with 88% of organizations using AI in some function (McKinsey, 2025) and 84% of developers adopting AI tools (Stack Overflow, 2025), the practical question is no longer "whether" but "where" to apply it responsibly. For those who develop software, the most profitable move is to master the fundamentals — data, machine learning, and Python — and treat the risks of bias and privacy as a project requirement, not as a footnote.]]></content:encoded>
    </item>
    <item>
      <guid>https://codecrush.com.br/en/blog/areas-aplicacao-ciencia-de-dados</guid>
      <title>Data Science: 65 Application Areas with Real Examples</title>
      <link>https://codecrush.com.br/en/blog/areas-aplicacao-ciencia-de-dados</link>
      <description>Data science uses statistics and machine learning to drive decisions: see 65 application areas, from finance and health to smart cities.</description>
      <pubDate>Thu, 20 Jul 2023 00:00:00 GMT</pubDate>
      <author>devhenrico@gmail.com (Henrico Piubello)</author>
      <category>Dados e Machine Learning</category>
      <content:encoded><![CDATA[![World map in orange lines symbolizing the globalization of data science](/static/images/articles/ciencia-65-areas.webp)

Data science is the discipline that combines statistics, programming, and machine learning to transform raw data into decisions. In this guide, CodeCrush brings together 65 real application areas — from finance, health, and marketing to agribusiness, sports, and smart cities — with practical examples.



## What does a data scientist do?

A data scientist collects, organizes, analyzes, and interprets large volumes of data to generate insights and support strategic decisions. To do so, they combine statistics, programming, math, [machine learning](/en/glossario/machine-learning), and data visualization — a skill set that the Harvard Business Review described, in Thomas Davenport and DJ Patil's 2012 article, as "Data Scientist: The Sexiest Job of the 21st Century" ([HBR, 2012](https://hbr.org/2012/10/data-scientist-the-sexiest-job-of-the-21st-century)).

Demand remains high: the BLS (Bureau of Labor Statistics), the US labor statistics agency, projects [34% growth in data scientist employment between 2024 and 2034](https://www.bls.gov/ooh/math/data-scientists.htm), with about 23,400 openings per year and a median salary of US$112,590 in May 2024 — well above the 3% average for other occupations.

The main responsibilities of a data scientist include:

1. Data collection and preparation
2. Exploratory data analysis
3. Development and evaluation of analytical models
4. Interpretation of results and communication of insights
5. Feature engineering and development of custom algorithms
6. Performance optimization, monitoring, and model maintenance
7. Identification of data opportunities and team collaboration
8. Ethics, data governance, and continuous learning

Those looking to enter the field usually start with the [fundamentals of machine learning](/en/blog/fundamentos-de-machine-learning) and a language like [Python](/en/blog/python), the most used in the data ecosystem.

## What are the 65 application areas of data science?

Data science is applied in at least 65 areas, which this guide groups into 7 macro-sectors: business and finance, health, marketing and media, industry and energy, government and society, technology and security, and logistics and services. In all of them, the flow is similar: a [data pipeline](/en/blog/o-que-e-pipeline-de-dados) collects and processes the information that feeds models and decisions.

| Macro-sector | # of areas | Application examples |
| --- | --- | --- |
| Business and finance | 10 | Fraud detection, credit risk, demand forecasting |
| Health and biotechnology | 6 | Diagnosis, genomics, drug discovery |
| Marketing and media | 9 | Content recommendation, sentiment analysis |
| Industry, energy, and agribusiness | 13 | Predictive maintenance, crop forecasting, quality control |
| Government and society | 12 | Smart cities, education, public policy |
| Technology and security | 8 | AI, cybersecurity, spatial data |
| Logistics and services | 7 | Route optimization, tourism, sports |

The following sections detail each of the 65 areas, in continuous numbering from 1 to 65.

## How is data science applied in business and finance?

Business and finance concentrate the most mature data science applications: risk analysis, fraud detection, demand forecasting, and pricing are already routine in banks, insurers, and retailers, which use [Big Data](/en/glossario/big-data) to decide at scale.

1. **Business and Finance** — sales and consumer behavior analysis, demand forecasting, supply chain optimization, risk analysis, fraud detection, and investment management.
2. **Retail and E-commerce** — sales data analysis, customer segmentation, personalized recommendations, price optimization, and inventory management.
3. **Product Recommendation** — recommendations on e-commerce platforms based on purchase history, preferences, and browsing behavior.
4. **Demand Forecasting** — forecasting product demand in retail and distribution, supporting inventory, production, and logistics planning.
5. **Market Research** — survey analysis, customer segmentation, competitive analysis, and trend forecasting.
6. **Insurance** — risk analysis, policy pricing, fraud detection, claims analysis, and catastrophic event forecasting.
7. **Risk Management** — financial and credit risk analysis, fraud detection, and forecasting of adverse events in companies.
8. **Credit Risk Management** — assessing the risk of default based on payment history, income, and other factors.
9. **Financial Risk Analysis** — portfolio management, market movement forecasting, and support for investment decisions.
10. **Personal Finance** — expense analysis apps, financial planning, investment recommendations, and budget creation.

## How does data science transform health?

In health, data science underpins assisted diagnosis, drug discovery, and personalized medicine — a line of research followed in Brazil by institutions such as [Fiocruz](https://www.icict.fiocruz.br/ciencia-de-dados-aplicada-saude), which maintains a program dedicated to data science applied to health.

11. **Health and Medicine** — medical data analysis, diagnostic support, drug discovery, patient monitoring, genomic analysis, and public health.
12. **Biotechnology and Genomics** — DNA sequencing analysis, gene identification, gene expression, and personalized therapies.
13. **Digital Health** — electronic patient records, medical imaging, sensor data, and treatment personalization.
14. **Health Monitoring** — smartwatches and apps that analyze physical activity, heart rate, and sleep quality.
15. **Mental Health** — analysis of clinical records for disorder detection, personalized treatments, and prevention.
16. **Pharmaceutical Industry** — clinical trial analysis, drug efficacy and safety evaluation, and therapy development.

## Where does data science appear in marketing and media?

In marketing and media, recommendation systems are the most visible case of data science. In the article [The Netflix Recommender System](https://dl.acm.org/doi/10.1145/2843948) (ACM TMIS, 2016), Carlos Gomez-Uribe and Neil Hunt state that "the combined effect of personalization and recommendations save us more than $1B per year" — more than US$1 billion per year — with recommendations influencing about 80% of hours watched on Netflix.

17. **Marketing and Advertising** — audience targeting, campaign personalization, social media sentiment analysis, and trend forecasting.
18. **Digital Marketing** — campaign, click, and conversion analysis, market segmentation, and strategy optimization.
19. **Retail Marketing** — market basket analysis, customer segmentation, and offer personalization.
20. **Political Marketing** — electoral data and public opinion analysis, voter segmentation, and result forecasting.
21. **Media and Entertainment** — audience analysis, content personalization, and recommendation of movies, series, and music.
22. **Content Recommendation** — streaming platforms like Netflix and Spotify analyze consumption habits to personalize the experience.
23. **Sentiment Analysis** — analysis of posts, comments, and reviews to gauge public opinion about products and brands.
24. **Social Media Monitoring** — influencer identification, trend detection, and brand reputation monitoring.
25. **Social Network Analysis** — community analysis, influencer detection, and behavior prediction.

## Data science in industry, energy, and agribusiness

Industry, the energy sector, and agribusiness use data science to optimize processes, predict failures, and reduce waste — from sensors in factories to climate data in the field.

26. **Energy and Sustainability** — understanding energy consumption and production, optimizing electrical grids, and analyzing carbon footprint.
27. **Renewable Energy** — generation analysis, demand forecasting, resource optimization, and energy efficiency monitoring.
28. **Manufacturing and Quality Control** — real-time monitoring, fault and defect identification, and production optimization.
29. **Maintenance Forecasting** — predictive maintenance using sensor data and records, preventing failures and reducing costs.
30. **Process Engineering** — industrial process optimization, anomaly detection, and continuous improvement.
31. **Oil and Gas Exploration** — geological and seismic data analysis, reserve forecasting, and pipeline monitoring.
32. **Agriculture and Agribusiness** — climate data analysis, crop forecasting, pest monitoring, and agricultural market analysis.
33. **Asset Management** — optimizing machine and infrastructure maintenance and maximizing asset lifespan.
34. **Product Development** — market data analysis, customer feedback, and consumption trends to create and improve products.
35. **Industrial Design** — usability analysis, consumer preferences, product testing, and design optimization.
36. **Product Design and User Experience (UX)** — A/B testing, usage analysis, and experience personalization.
37. **Food Science** — nutritional composition analysis, traceability, food safety, and production optimization.
38. **Waste Management** — collection route optimization, recycling management, and environmental impact reduction.

## How do governments and society use data science?

Governments apply data science to plan public services, detect fraud in social programs, and design evidence-based policies, while social researchers use it to understand collective phenomena.

39. **Government and Public Sector** — forecasting demand for public services, fraud detection, crime and public policy analysis.
40. **Education** — academic performance analysis, personalized learning, and school dropout forecasting.
41. **Social Sciences** — social and behavioral research, demographic data analysis, and public opinion studies.
42. **Economics and Public Policy** — economic indicator analysis, modeling, and policy impact forecasting.
43. **Psychology and Human Behavior** — behavior analysis, personality studies, and social trend forecasting.
44. **Environmental Sciences** — climate change modeling, air and water quality monitoring, and biodiversity analysis.
45. **Disaster Management** — natural disaster forecasting, emergency response planning, and risk mitigation.
46. **Smart City Development** — collecting and analyzing real-time sensor data for mobility, energy, safety, and citizen participation.
47. **Urban Design** — analysis of commuting patterns, infrastructure planning, and improving quality of life in cities.
48. **Public Services and Infrastructure** — energy consumption analysis, traffic management, and public transit data.
49. **Art and Culture** — audience analysis, artistic preferences, artwork recommendation, and cultural trend identification.
50. **Crime Investigation** — forensic data analysis, crime patterns, crime forecasting, and criminal network mapping.

## Technology, security, and data-driven scientific research

Technology itself is one of the biggest consumers of data science: AI (Artificial Intelligence) models, cybersecurity systems, and scientific research all depend on large-scale data analysis.

51. **Artificial Intelligence and Robotics** — development of machine learning algorithms, computer vision, natural language processing, and autonomous robots.
52. **Interpretable Machine Learning** — methods to understand and explain the decisions of AI models.
53. **Security and Cybersecurity** — cyber threat detection, digital forensics, and protection of sensitive information.
54. **Cybersecurity** — suspicious pattern identification, attack prevention, and protection of systems and networks.
55. **Telecommunications** — network demand forecasting, call routing optimization, and customer experience improvement.
56. **Science and Research** — physics, astronomy, biology, genetics, and chemistry, with statistical modeling and large-scale data analysis.
57. **Spatial Data Exploration** — satellite image analysis, terrain mapping, and astronomical data.
58. **Games and Entertainment** — player data analysis, gameplay balancing, cheat detection, and trend forecasting.

## Data science in logistics, tourism, sports, and services

Services and operations also depend on data: optimized routes, employee turnover forecasting, and tactical analysis in sports are consolidated applications.

59. **Transportation and Logistics** — route optimization, traffic pattern analysis, fleet management, and autonomous transportation systems.
60. **Logistics and Supply Chain** — demand forecasting, inventory management, and goods tracking across the supply chain.
61. **Reverse Logistics** — optimizing product return, recycling, and proper disposal processes.
62. **Tourism and Hospitality** — reservation and review analysis, destination recommendation, and price optimization for flights and lodging.
63. **Sports** — athlete performance analysis, sensor data, result forecasting, and tactical pattern analysis.
64. **Human Resources and Talent Management** — recruitment and performance analysis, turnover forecasting, and workforce planning.
65. **Gambling and Betting** — sports betting analysis, result forecasting, and risk management.

## Conclusion

The practical lesson from these 65 areas is that data science has gone from being a differentiator to being infrastructure: any sector that generates data already competes with those who analyze it. For beginners, the most efficient path is not to memorize the list, but to master the complete cycle — statistics, programming, modeling, and communication of results in visualization tools like [Power BI](/en/blog/o-que-e-power-bi) — and apply it to a specific sector. Specialists who combine business domain knowledge and analytical method will continue to be the most sought-after professionals of the decade.]]></content:encoded>
    </item>
    <item>
      <guid>https://codecrush.com.br/en/blog/atraso-e-latencia-em-pacotes-de-redes</guid>
      <title>Network Latency: How to Calculate Total Packet Delay</title>
      <link>https://codecrush.com.br/en/blog/atraso-e-latencia-em-pacotes-de-redes</link>
      <description>The total delay of a packet is the sum of processing, queuing, transmission, and propagation delays. See the formula, an example in ms, and how to measure it.</description>
      <pubDate>Fri, 03 Nov 2023 00:00:00 GMT</pubDate>
      <author>devhenrico@gmail.com (Henrico Piubello)</author>
      <category>Cloud e Infraestrutura</category><category>Hardware e Sistemas</category>
      <content:encoded><![CDATA[![Network cables and connections interlinked illustrating the sending of data packets](/static/images/articles/calculo-pacotes-de-redes.webp)

Packet delay, or latency, is the time data takes to travel from source to destination on a network. The total delay is the sum of four components — processing, queuing, transmission, and propagation — and is expressed in milliseconds (ms). This calculation is the basis for diagnosing performance bottlenecks.



## What is network latency?

Network latency is the measure of the time a data packet takes to travel from a source to a destination on a communication network, usually expressed in milliseconds (ms) or microseconds (µs). It directly determines the quality of the user experience in video conferencing, online gaming, streaming, and financial transactions.

Latency is not a single number: it is composed of several delays that accumulate at each device and link the packet traverses. A router needs to inspect and forward the packet, the packet may wait in a queue when there is congestion, the bits need to be placed onto the physical medium, and finally the signal needs to travel the distance to the next node.

This accumulation explains why two connections with the same bandwidth can perform very differently. Bandwidth defines how many bits per second the link carries; latency defines how long each packet takes on its way. To understand how packets flow between layers and protocols, it is worth reading the article on [protocols and service models in network communication](/en/blog/comunicacao-em-redes).

As the demand for real-time communications and fast data transfers grows, measuring and managing latency has ceased to be the exclusive concern of network engineers and now affects any team operating applications in the [cloud](/en/glossario/cloud-computing).

## What are the types of delay in networks?

The total delay of a packet is made up of four types of delay: processing, queuing, transmission, and propagation. Each has a distinct cause and its own mitigation strategy, as the table below summarizes.

| Delay type | Main cause | How to reduce it |
| --- | --- | --- |
| Processing | Packet inspection and forwarding in routers | Higher-capacity routers and switches |
| Queuing | Full buffers during congestion | QoS and load balancing |
| Transmission | Limited link capacity in bits per second | Increase available bandwidth |
| Propagation | Physical distance between source and destination | Shorten routes with CDNs and peering |

**Processing delay** occurs when network devices analyze the packet header, run security checks, address translations, and decide on the output interface. On modern [hardware](/en/glossario/hardware), this delay is usually measured in microseconds, but it grows with deep packet inspection.

**Queuing delay** appears when the packet waits in a buffer before being transmitted. Under heavy traffic, full queues are the main cause of latency variation (jitter) and packet drops.

**Transmission delay** is the time to push all the bits of the packet onto the link, and depends on the packet size and bandwidth: a 12,000-bit packet on a 1 Mbps link takes 12 ms to be transmitted.

**Propagation delay** is the travel time of the signal through the physical medium. The Cisco documentation on [delay in packet voice networks](https://www.cisco.com/c/en/us/support/docs/voice/voice-quality/5125-delay-details.html) uses the planning estimate of 6 µs/km in fiber optic cable, derived from ITU-T G.114 — on a 1,000 km link, that means about 6 ms of propagation alone.

## How to measure network latency?

Latency is measured mainly by RTT (Round-Trip Time), the round-trip time of a packet between your device and a destination. The most accessible tools are `ping` and `traceroute`, present on any operating system.

```bash
ping google.com
traceroute google.com
```

1. Run `ping <destination>` to get the minimum, average, and maximum RTT in milliseconds.
2. Run `traceroute <destination>` (or `tracert` on Windows) to identify the latency at each intermediate hop along the path.
3. Compare the hops: a sudden RTT spike at a specific node points to the bottleneck.
4. Record measurements at different times to separate momentary congestion from a structural problem.

For continuous monitoring, monitoring tools like [Wireshark](https://www.wireshark.org/), Nagios, and PRTG Network Monitor record latency over time — a practice that connects to the broader concept of [observability in distributed systems](/en/blog/observabilidade-desvendando-o-comportamento-de-sistemas-distribuidos-p). Online speed tests also report latency alongside bandwidth.

In the web context, network latency shows up embedded in TTFB (Time to First Byte): the [Google web.dev Time to First Byte guide](https://web.dev/articles/ttfb) considers a TTFB of up to 800 ms at the 75th percentile of accesses good, and above 1.8 seconds poor. It is worth remembering that even name resolution contributes to this time, as the article on [the distributed structure of DNS](/en/blog/estrutura-distribuida-dns) shows.

## How to calculate the total packet sending delay?

The total delay is calculated by summing the four latency components the packet faces while traveling from source to destination. Mathematically:

$AT = AtrasoProcessamento + AtrasoFila + AtrasoTransmissao + AtrasoPropagacao$

This calculation holds for each link in the path: on a route with several routers, the end-to-end delay is the sum of the total delays of all the links traversed.

### Practical example of total delay calculation

Suppose a data packet traversing a link with the following characteristics:

- Processing delay: $2 ms$
- Queuing delay: $4 ms$
- Transmission delay: $3 ms$
- Propagation delay: $5 ms$

The total delay is calculated as follows:

$AT = 2ms + 4ms + 3ms + 5ms = 14ms$

Therefore, the total sending delay for this packet is 14 milliseconds. The example shows how each component contributes to the final result: calculations of this kind are essential for sizing infrastructure, defining service level agreements, and predicting the behavior of delay-sensitive applications.

## Impact of latency on applications

Latency affects each application category differently, and knowing the limits tolerated by each guides the network design:

- **Voice and video conferencing**: the [ITU-T G.114](https://www.itu.int/rec/T-REC-G.114) recommendation (2003) indicates up to 150 ms one-way delay as the preferred range for voice; between 150 and 400 ms degradation increases, and above 400 ms the conversation becomes unacceptable.
- **Online gaming**: delay, perceived as "lag," shifts players' actions. In competitive games, tens of milliseconds separate a recorded play from a missed one.
- **Financial transactions**: in electronic markets, latency delays order execution, and execution speed has a direct financial impact.
- **Video and audio streaming**: high and unstable latency causes rebuffers and playback delays.
- **Real-time web applications**: chats, dashboards, and in-browser games depend on persistent, low-latency connections, like those described in the article on [WebSockets and bidirectional real-time communication](/en/blog/desvendando-websockets-a-essencia-da-comunicacao-bidirecional-em-tempo).

Understanding these limits turns latency from an abstract number into a design requirement: each use case defines how much delay the network can tolerate.

## Strategies to reduce network latency

Latency optimization is a continuous process that combines sizing, traffic prioritization, and monitoring. The highest-impact actions:

1. Size the bandwidth for the expected workload, considering future growth, to avoid transmission delays.
2. Configure QoS (Quality of Service) to prioritize delay-sensitive traffic, such as VoIP (voice over IP) and video conferencing.
3. Reduce the number of intermediate hops with a well-planned topology and high-performance equipment.
4. Use efficient routing algorithms and load balancing to distribute traffic and avoid congestion.
5. Apply caching and data compression to reduce the volume transmitted over the network.
6. Monitor the network in real time and adjust the configuration based on the data collected.
7. Keep hardware and software up to date and plan for redundancy and failover for operational continuity.
8. Protect the network: attacks and malware generate spurious traffic, congest links, and raise latency.

None of these measures eliminates propagation delay — physics imposes the limit — but together they attack the controllable components: processing, queuing, and transmission.

## Conclusion

Calculating the total packet delay is more than an academic exercise: it is the tool that separates guesswork from diagnosis when the network is "slow." In our CodeCrush practice, the recommendation is direct — measure RTT with ping and traceroute before any change, decompose the delay into its four components, and invest first where there is real control: queues and bandwidth. Propagation, physics solves (or doesn't); the rest is engineering.]]></content:encoded>
    </item>
    <item>
      <guid>https://codecrush.com.br/en/blog/automacao-com-ia-desvendando-o-futuro-cognitivo-do-trabalho-e-dos-nego</guid>
      <title>Automation with AI: What it is, how it works, and where to apply it</title>
      <link>https://codecrush.com.br/en/blog/automacao-com-ia-desvendando-o-futuro-cognitivo-do-trabalho-e-dos-nego</link>
      <description>Automation with AI combines RPA with machine learning, NLP, and computer vision to perform complex tasks, make decisions, and learn without human intervention.</description>
      <pubDate>Sat, 27 Jun 2026 22:45:08 GMT</pubDate>
      <author>devhenrico@gmail.com (Henrico Piubello)</author>
      <category>Inteligência Artificial</category><category>Tecnologia e Inovação</category>
      <content:encoded><![CDATA[Automation with AI (Artificial Intelligence) is the fusion of process automation with cognitive technologies — [machine learning](/en/glossario/machine-learning), NLP, and computer vision — used to perform complex tasks, make decisions, and learn from data, without constant human supervision.



## What is Automation with AI?

Automation with AI is the strategic combination of process automation technologies with artificial intelligence capabilities: instead of merely repeating actions based on predefined rules, the system processes unstructured data, understands context, predicts outcomes, and optimizes workflows autonomously.

Traditionally, automation was limited to replicating human actions with fixed rules, as RPA (Robotic Process Automation) does. With the integration of AI, this automation transcends repetition and acquires analytical and decision-making capability. This evolution manifests in technologies such as IDP (Intelligent Document Processing), CPA (Cognitive Process Automation), and IPA (Intelligent Process Automation), which combine RPA with ML (Machine Learning), NLP (Natural Language Processing), and computer vision. If the boundaries between these concepts still seem fuzzy, it is worth reviewing the [difference between machine learning and artificial intelligence](/en/blog/diferenca-machine-learning-e-inteligencia-artificial) before moving on.

A practical example makes the definition concrete: imagine an accounts payable department that receives thousands of invoices in different formats. An Automation with AI solution, using computer vision and NLP, automatically extracts the relevant data from each invoice (supplier, amount, date), validates the information against internal systems, identifies anomalies, and starts the payment process without manual intervention. Platforms like [UiPath Automation Cloud](https://docs.uipath.com/) and Automation Anywhere Enterprise offer exactly this kind of feature, integrating RPA bots with AI modules.

## How does Automation with AI work?

Automation with AI works in a five-step cycle: data ingestion, intelligent processing via ML, NLP, and computer vision, algorithmic decision-making, automated action execution, and continuous feedback for learning. It is this last link — feedback — that differentiates the system from conventional automation.

1. **Data collection and ingestion:** the system captures data from multiple sources (emails, documents, databases, sensors), including large volumes of unstructured data.
2. **Processing and understanding:** ML, NLP, and computer vision algorithms interpret, classify, and extract meaningful information from the raw material.
3. **Decision-making:** based on learned patterns, the models evaluate the information and determine the best action, combining business rules and probability.
4. **Action execution:** RPA software or other automation tools execute the digital tasks according to the AI's decision.
5. **Feedback and continuous learning:** the system monitors results, collects new data, and refines its models, improving accuracy and efficiency over time.

Financial fraud detection illustrates the complete cycle. The system collects data from millions of transactions (origin, amount, user history); ML models trained on historical cases identify suspicious patterns; when a new transaction shows high risk, an RPA bot blocks it or routes it for human review — and each validated case feeds the model back. Card networks like Visa and Mastercard apply AI in this format to analyze transactions in real time. Those who want to understand the algorithms behind this process can start with the [fundamentals of machine learning](/en/blog/fundamentos-de-machine-learning).

## What is the difference between RPA and Automation with AI?

The central difference is the ability to learn and decide: RPA follows fixed rules and breaks on exceptions, while Automation with AI (IPA) interprets unstructured data, decides based on patterns, and improves on its own with use. The table summarizes the contrast:

| Criterion         | Traditional RPA                       | Automation with AI (IPA)                       |
| ----------------- | ------------------------------------- | ---------------------------------------------- |
| Task type         | Repetitive, rule-based                | Complex, with variations and ambiguity         |
| Data              | Structured (spreadsheets, forms)      | Structured and unstructured                    |
| Decision-making   | None; follows the programmed flow     | Autonomous, based on learned patterns          |
| Learning          | Does not learn; requires reprogramming| Improves continuously with new data            |
| Typical example   | Copying data between two systems      | Detecting fraud in transactions in real time   |

In practice, the two approaches are complementary: RPA remains the execution layer — the "hands" that click, type, and move data — while AI acts as the "brain" that interprets and decides. The most recent evolution of this combination is agentic AI, in which autonomous agents plan and execute entire flows end to end.

## What are the advantages of Automation with AI?

Automation with AI increases operational efficiency, reduces errors and costs, scales without proportional hiring, and frees teams for strategic work. The economic impact is measurable: [McKinsey estimates that generative AI could add US$2.6 to 4.4 trillion per year](https://www.mckinsey.com/capabilities/tech-and-ai/our-insights/the-economic-potential-of-generative-ai-the-next-productivity-frontier) to the global economy, according to the report "The economic potential of generative AI" (2023).

1. **Exponential efficiency:** AI processes and analyzes volumes of data at speeds unattainable for humans, accelerating business cycles and boosting productivity.
2. **Error reduction:** machines don't suffer from fatigue or inattention; consistent execution minimizes human errors in production, customer service, and data analysis.
3. **Operating cost reduction:** by automating labor-intensive tasks, the organization reallocates resources and reduces recurring expenses.
4. **Scalability:** automated systems absorb demand peaks without proportional hiring and training.
5. **Predictive insights:** ML models identify trends and predict outcomes, from supply chain optimization to customer experience personalization.
6. **Compliance and governance:** automated processes follow policies strictly and generate detailed audit trails, reducing regulatory risk.

In customer service, the effect is even more visible. [Gartner predicts that, by 2029, agentic AI will autonomously resolve 80% of common customer service tickets](https://www.gartner.com/en/newsroom/press-releases/2025-03-05-gartner-predicts-agentic-ai-will-autonomously-resolve-80-percent-of-common-customer-service-issues-without-human-intervention-by-20290), with a 30% reduction in operating costs. As Daniel O'Sullivan, senior analyst at Gartner, puts it: "Agentic AI has emerged as a game-changer for customer service, paving the way for autonomous and low-effort customer experiences" — agentic AI has emerged as a game-changer for service, paving the way for autonomous, low-effort experiences.

## Challenges and limitations of Automation with AI

Automation with AI critically depends on data quality, requires complex integration with legacy systems, has a high upfront cost, and suffers from the lack of explainability of models. Ignoring these limits is the most common cause of projects that never leave the pilot stage.

1. **Dependence on data quality:** AI is only as good as the data it was trained on. Incomplete, inconsistent, or biased data lead to incorrect decisions and undermine the effectiveness of the automation.
2. **Implementation complexity:** integrating AI solutions with legacy systems and orchestrating multiple components requires specialized expertise and careful planning.
3. **High upfront cost:** the investment in technology, infrastructure, and talent can be substantial, a real barrier for small and medium-sized businesses.
4. **Lack of transparency (black box):** many models, especially deep neural networks, are considered black boxes: they produce decisions that are hard to explain, which complicates audits and the attribution of responsibility in regulated sectors.
5. **Bias and ethics:** models trained on historical data can reproduce and amplify existing biases, requiring constant monitoring and AI governance.
6. **Need for human oversight:** critical decisions continue to require human review; total automation without safeguards is an operational and reputational risk.

This caution shows up in the numbers: in the [Stack Overflow Developer Survey 2025](https://survey.stackoverflow.co/2025/ai/), 84% of developers use or plan to use AI tools, but only 29% say they trust the results they produce — a sign that accelerated adoption and full trust still don't go hand in hand.

## First steps to applying Automation with AI in your company

The safest way to adopt Automation with AI is to start small, with a high-volume, clear-rule process, prove the return, and only then scale. A practical five-step roadmap:

1. **Map the processes** in the operation and prioritize the repetitive, high-volume, low-risk ones, such as email triage, extracting data from documents, and reconciliations.
2. **Define a measurable pilot**, with baseline metrics (time, cost, error rate) to compare before and after automation.
3. **Ensure data quality** that will feed the models: standardize sources, clean records, and establish governance owners.
4. **Choose the platform** suited to your context — from suites like UiPath and Power Automate to conversational assistants like [IBM watsonx Assistant](https://www.ibm.com/products/watsonx-assistant); our guide to [chatbot and automation tools for businesses](/en/blog/ferramentas-chatbot-de-automacao) compares accessible options.
5. **Measure, adjust, and scale**: use the pilot's results to refine models and expand automation to neighboring processes, keeping human oversight at the critical points.

For technical teams that want to go beyond ready-made tools and build their own models, CodeCrush maintains a [guide to creating machine learning projects](/en/blog/como-criar-projetos-de-machine-learning) with step-by-step data, training, and validation.

## Conclusion

Automation with AI has gone from being a futuristic differentiator to a competitive requirement: whoever still treats automation as a set of rule-based macros will compete against companies whose processes learn and improve on their own every day. The sensible path is not to automate everything at once, but to choose a high-volume process, measure the real gain, and scale with governance — because the biggest failures in the field come from bad data and inflated expectations, not the technology itself. Start small, measure always, and keep humans in the loop on critical decisions: that is the formula that separates abandoned pilots from genuinely cognitive operations.]]></content:encoded>
    </item>
    <item>
      <guid>https://codecrush.com.br/en/blog/bdd-desenvolvimento-orientado-por-comportamento</guid>
      <title>BDD: What Behavior-Driven Development Is</title>
      <link>https://codecrush.com.br/en/blog/bdd-desenvolvimento-orientado-por-comportamento</link>
      <description>BDD is an agile practice that describes software behavior in Given-When-Then scenarios, aligning business, developers, and QA before the code.</description>
      <pubDate>Wed, 13 Sep 2023 00:00:00 GMT</pubDate>
      <author>devhenrico@gmail.com (Henrico Piubello)</author>
      <category>Desenvolvimento</category>
      <content:encoded><![CDATA[![Development team analyzing BDD scenarios of user behavior on a website](/static/images/articles/bdd.webp)

Behavior-Driven Development (BDD) is an agile methodology that specifies software by its expected behavior, in Given-When-Then scenarios written in natural language. Created by Dan North in 2006, BDD aligns business, development, and quality around the same requirements.



## What is BDD (Behavior-Driven Development)?

BDD is an agile development technique based on short cycles: the team describes the expected behavior of a feature in concrete scenarios, turns those scenarios into automated tests, and only then writes the code that makes them pass. The software is born validated against the client's needs, not against technical assumptions.

The approach was formalized by Dan North in the article ["Introducing BDD"](https://dannorth.net/introducing-bdd/), published in Better Software magazine in March 2006. North had been teaching TDD (Test-Driven Development) and kept seeing the same questions: where to start, what to test, what not to test, and how to name the tests. His answer was to change the vocabulary: instead of "tests," talk about "behaviors."

In North's own words: "I found the shift from thinking in tests to thinking in behaviour so profound that I started to refer to TDD as BDD" — I found the shift from thinking in tests to thinking in behavior so profound that I started referring to TDD as BDD.

In practice, BDD focuses on the observable behavior of objects and the system, not on internal implementation details. Business analysts rarely detail technical aspects, such as database storage; they describe what the system should do for the user. BDD captures exactly that description and makes it executable.

## How does a BDD scenario work in practice?

A BDD scenario structures any requirement into three blocks: **Given** defines the initial context, **When** describes the event or action, and **Then** indicates the expected outcome. This structure is standardized by the [Gherkin](https://cucumber.io/docs/gherkin/reference/) syntax, which according to the official Cucumber documentation has been translated into more than [70 languages](https://cucumber.io/docs/gherkin/languages/) — including English, with the Given, When, and Then keywords.

An example in English:

```gherkin
Feature: ATM withdrawal
  Scenario: Withdrawal with sufficient balance
    Given the customer has a balance of $500
    When they request a withdrawal of $200
    Then the ATM dispenses $200
    And the balance becomes $300
```

Each line of the scenario is linked to an automation step (step definition) written by the developer. The same text that the business analyst validates with the client runs as an automated test in the [CI/CD](/en/glossario/ci-cd) pipeline, flagging any behavior regression. That is why BDD scenarios work as living documentation: if the text and the system diverge, the test fails.

## What is the difference between BDD and TDD?

BDD does not replace TDD — it refines it. TDD, popularized by Kent Beck with the book "Test-Driven Development: By Example" (2002), guides the developer to write the unit test before the functional code. BDD builds on the same principle but changes the level of the conversation: instead of technical units, it specifies system behaviors in language the business understands.

| Aspect | TDD | BDD |
| --- | --- | --- |
| Focus | Code units | System behavior |
| Language | Test code | Natural language (Gherkin) |
| Audience | Developers | Whole team and business |
| Starting point | A failing unit test | A behavior scenario |
| Central question | "Does the code work?" | "Does the system do what the user needs?" |
| Typical tools | JUnit, pytest, Jest | Cucumber, JBehave, Spock |

In the routine of a mature team, the two practices coexist: BDD defines acceptance scenarios from the outside in, and TDD guides the design of the inner units — often with the help of [mock objects to isolate dependencies in tests](/en/blog/objetos-mock). Those who want to review the conceptual basis can start with our guide on [the importance of software testing](/en/blog/testes-de-software).

## Why does BDD improve team communication?

BDD improves communication because it forces business, development, and quality to describe the system with the same vocabulary: the so-called ubiquitous language. This language is structured around the domain model and extracted from the stories and specifications provided by the client during requirements gathering — each term in the scenario corresponds to a real concept of the business.

Before BDD, TDD alone left communication gaps: developers wrote unit tests that the quality team didn't read, while QA (Quality Assurance) validated system behavior through other paths. With Given-When-Then scenarios, everyone reads and reviews the same artifact, and the developer understands why each piece of code must exist before writing it.

Aslak Hellesøy, creator of Cucumber, summed up this spirit in a [2014 article on the official Cucumber blog](https://cucumber.io/blog/collaboration/the-worlds-most-misunderstood-collaboration-tool/): "If you think Cucumber is a testing tool, please read on, because you are wrong" — if you think Cucumber is a testing tool, you are wrong. For Hellesøy, Cucumber is first and foremost a collaboration tool, which creates shared understanding between different roles on the team; regression tests are a by-product of that collaboration.

## BDD frameworks: Cucumber, JBehave, and Spock

The BDD ecosystem is dominated by [frameworks](/en/glossario/framework) that run scenarios written in natural language. The best known is [Cucumber](https://cucumber.io/docs/), with implementations for Java, JavaScript, Ruby, and other languages. Growth was fast: in that same 2014 article, Hellesøy recorded that Cucumber reached 1 million downloads in its first three years and 5 million downloads three years later.

In the Java community, [JBehave](https://jbehave.org/introduction.html) also stands out, created by Dan North himself as the first BDD tool, and [Spock](https://spockframework.org/), which uses Groovy to write expressive specifications with native given/when/then blocks. The choice between them depends on the project's language and how much the business team will participate in writing the scenarios — if you are still finding your footing in this vocabulary, see [what frameworks are and how to choose the right one](/en/blog/framework).

## What are the advantages and limits of BDD?

BDD delivers four main advantages, all derived from specifying behavior before implementing:

1. **Better-quality code**, because every feature is born with an explicit acceptance criterion.
2. **High cohesion and fewer bugs**, since the expected behavior is continuously validated.
3. **Cheaper maintenance and longer lifespan**, because the scenarios document the system in an always up-to-date way.
4. **Tests that reflect the behavior the user wants**, not just the internal structure of the code.

There are, however, clear limits. Scenarios in Gherkin require constant maintenance: when the business doesn't take part in writing them, they become just an extra layer of syntax over ordinary tests, at a cost with no benefit. BDD also does not remove the need for other verification strategies, such as unit, integration, and exploratory tests. The practical rule: adopt BDD where the conversation with the business is the bottleneck, not where the challenge is purely technical.

## Conclusion

BDD remains, two decades after Dan North's article, the most effective way to turn business requirements into executable specifications — but it only delivers value when the team treats scenarios as a collaboration tool, not as testing bureaucracy. If your team suffers from misinterpreted requirements and rework, start small: pick a critical feature, write three Given-When-Then scenarios with the business at the table, and automate them. Here at CodeCrush, that is our standard recommendation for teams that want to raise quality without bloating the process.]]></content:encoded>
    </item>
    <item>
      <guid>https://codecrush.com.br/en/blog/carreira-de-product-owner</guid>
      <title>Product Owner: What they do and what the PO career is like</title>
      <link>https://codecrush.com.br/en/blog/carreira-de-product-owner</link>
      <description>A Product Owner maximizes the value of the product in Scrum: they manage the backlog, prioritize deliveries, and earn an average of R$9,525/month in Brazil.</description>
      <pubDate>Sun, 03 Sep 2023 08:00:00 GMT</pubDate>
      <author>devhenrico@gmail.com (Henrico Piubello)</author>
      <category>Carreira Tech</category>
      <content:encoded><![CDATA[![Professional in front of a notebook studying to work in a Product Owner career](/static/images/articles/product-owner.webp)

A Product Owner (PO) is the professional who maximizes the value of a digital product within the Scrum [framework](/en/glossario/framework): they manage the Product Backlog, prioritize deliveries, and represent stakeholders to the development team. The career combines business vision, communication, and agile methods.



## What is a Product Owner?

The Product Owner is the Scrum role responsible for maximizing the value of the product and ensuring the development team always works on what generates the most return for the business. They own the Product Backlog: they define, order, and communicate the items the product should contain, balancing stakeholder needs with the team's actual capacity.

The official definition comes from the [Scrum Guide 2020](https://scrumguides.org/scrum-guide.html), written by Ken Schwaber and Jeff Sutherland: "The Product Owner is accountable for maximizing the value of the product resulting from the work of the Scrum Team". The same document reinforces that the PO is one person, not a committee, and that their decisions about the backlog must be respected by the entire organization.

In practice, the Product Owner acts as the link between two worlds: on one side, customers, users, and business areas; on the other, the technical team that builds the product. When that link fails, the team delivers fast — but delivers the wrong thing. That is why, in projects that demand flexibility and quick responses to change, a competent PO is a condition for success, not an organizational detail.

## Responsibilities of the Product Owner in Scrum

The Product Owner is the planner and facilitator of the work around the backlog: they define short-term goals, prioritize what goes into each sprint, and act as the "voice of the customer" within the company. The seven core responsibilities of the role are:

1. **Define product features**: the Product Owner creates and maintains the Product Backlog, listing all the features and requirements the product must cover.
2. **Prioritize based on business value**: the PO evaluates the value of each backlog item and defines the order in which they will be addressed.
3. **Adjust features and priorities each sprint**: as the project progresses, the PO recalibrates the backlog to reflect changes in needs and objectives.
4. **Ensure backlog transparency**: the Product Backlog must be visible, transparent, and understandable to all team members.
5. **Ensure understanding by the team**: the PO guarantees the development team understands each item at the level needed to execute the work.
6. **Decide on releases**: the Product Owner defines when a version will be released and which features will be part of the launch.
7. **Accept or reject deliveries**: at the end of each sprint, the PO evaluates the completed work against the acceptance criteria.

## The day-to-day of a Product Owner

A Product Owner's day-to-day revolves around conversations: with customers and users to understand needs, and with the development team to turn those needs into prioritized deliveries. Since different customer and user profiles may be involved, the PO must master the business domain and understand the demands of different audiences.

The start of each sprint is marked by the planning meeting, where the Product Owner conveys and prioritizes the requirements for the team. They help order the user stories in the backlog, ensure the team knows exactly what will be addressed in the cycle, and clarify any questions before development begins — a detail poorly explained in planning becomes rework in delivery.

This dynamic of balancing multiple stakeholders is what brings the PO role close to the classic disciplines of [IT (Information Technology) project management](/en/blog/gestao-de-projetos-ti), with an important difference: the Product Owner doesn't manage people or schedules — they manage value.

## Product Owner vs Product Manager: what is the difference?

The Product Owner acts at the tactical level, within Scrum and close to the development team; the Product Manager (PM) has a broader, more strategic view, involving market, UX (user experience), and business. Many companies treat the PO career as a natural stepping stone to PM.

| Aspect      | Product Owner                     | Product Manager               |
| ------------ | --------------------------------- | ----------------------------- |
| Focus        | Backlog and development team       | Strategy, market, and business |
| Horizon      | Sprint and release                 | Product lifecycle             |
| Interlocution| Scrum team and stakeholders        | Executives, UX, and customers |
| Scope        | Tactical, within Scrum             | Strategic, beyond Scrum       |
| Seniority    | Entry point into product           | Common evolution from PO      |

This progression resembles what happens on the technical track, where experienced developers evolve into roles like [Tech Lead](/en/blog/o-que-e-tech-lead): seniority comes less from executing more and more from deciding better.

## How much does a Product Owner earn in Brazil?

A Product Owner in Brazil earns an average of R$9,525 per month, according to [Glassdoor](https://www.glassdoor.com.br/Sal%C3%A1rios/product-owner-sal%C3%A1rio-SRCH_KO0,13.htm) data from June 2026, with a typical range between R$7,083 and R$12,159 monthly. In São Paulo, the average rises to R$11,250 — about 32% above the national average, also according to Glassdoor.

As in any technology career, compensation varies with seniority, company size, and sector: POs in digital banks and big techs tend to be above the range, while entry-level positions at smaller companies fall below. The progression logic is similar to the [junior, mid-level, and senior levels in development](/en/blog/dev-junior-pleno-senior): the greater the autonomy to decide without supervision, the higher the salary.

## How to become a Product Owner?

To enter the PO career, follow a track that combines theoretical foundation, certification, and real practice:

1. **Master the fundamentals of Scrum**: read the Scrum Guide in full and understand roles, events, and artifacts before thinking about certification.
2. **Obtain a recognized certification**: the PSPO (Professional Scrum Product Owner), from [Scrum.org](https://www.scrum.org/), and the CSPO (Certified Scrum Product Owner), from [Scrum Alliance](https://www.scrumalliance.org/), are the most valued in the market.
3. **Practice backlog management**: take part in real or volunteer projects writing user stories, defining acceptance criteria, and prioritizing deliveries.
4. **Develop communication and negotiation**: the PO negotiates priorities every day; practice presenting decisions backed by data and business-value arguments.
5. **Position your experience**: highlight product results (metrics, releases, impact) on your resume — the CodeCrush [resume guide for people who work in technology](/en/blog/guia-para-criar-curriculo-de-programador) shows how to structure this.

## Essential skills of the Product Owner

A successful Product Owner combines four core competencies:

- **Knowledge of agile methodologies**: mastering Scrum is the minimum; knowing scaled frameworks earns points — according to the [Digital.ai 18th State of Agile Report](https://digital.ai/resource-center/analyst-reports/state-of-agile-report/) (2025), 44% of organizations use SAFe (Scaled Agile Framework) and 23% use Scrum@Scale or Scrum of Scrums.
- **Effective communication**: the PO translates customer needs to the team and technical decisions to the business, in both directions and without noise.
- **Negotiation ability**: managing stakeholders with divergent interests and saying "no" with criteria is part of the daily work.
- **Macro vision of the business**: prioritization decisions require understanding the market, users, and strategy — not just the task queue.

## Conclusion

The Product Owner career offers something rare in technology: the chance to see a product grow from zero to implementation as the decision-maker, not just the executor. With agile frameworks consolidated in companies, average salaries above R$9,500 per month according to Glassdoor, and a clear path of progression to Product Manager, the role rewards those who like to decide under uncertainty and to connect business and technology. If that is your profile, start with the Scrum Guide and a certification — the rest is built by prioritizing, sprint after sprint.]]></content:encoded>
    </item>
    <item>
      <guid>https://codecrush.com.br/en/blog/casos-de-uso-aplicacoes-blockchain</guid>
      <title>Blockchain Use Cases: 6 Real Applications in 2026</title>
      <link>https://codecrush.com.br/en/blog/casos-de-uso-aplicacoes-blockchain</link>
      <description>Blockchain is used in payments, supply chains, smart contracts, digital identity, voting, and land registry. See real cases.</description>
      <pubDate>Tue, 03 Oct 2023 07:30:00 GMT</pubDate>
      <author>devhenrico@gmail.com (Henrico Piubello)</author>
      <category>Tecnologia e Inovação</category><category>Segurança</category>
      <content:encoded><![CDATA[![Luminous blockchain network connecting points around planet Earth seen from space](/static/images/articles/blockchain-casos-e-uso.webp)

The main use cases of [blockchain](/en/glossario/blockchain) are payments, supply chain tracking, smart contracts, digital identity, voting, and land registry. In all of them, the technology acts as an immutable, decentralized record that dispenses with trusted intermediaries.



## What are the main blockchain use cases?

Blockchain has six consolidated use cases in production: cryptocurrencies and payments, supply chain traceability, smart contracts, digital identity management, electronic voting, and land registry. All exploit the same central property of the technology: a distributed ledger that no one can alter retroactively.

1. **Cryptocurrencies and payments** — direct financial transactions between parties, without banks or processors as intermediaries.
2. **Supply chain** — an immutable record of the origin and journey of each product, from farm to shelf.
3. **Smart contracts** — agreements that execute themselves when predefined conditions are met.
4. **Digital identity management** — the user controls their own data and proves who they are without relying on a central database.
5. **Electronic voting** — votes recorded in an auditable, tamper-resistant way.
6. **Land registry** — property titles with traceable history, reducing disputes and document fraud.

If the fundamentals are still unclear, the guide on [what blockchain technology is and how it works](/en/blog/o-que-e-blockchain) explains blocks, hashes, and consensus mechanisms in detail. The sections below go deeper into each use case with verified examples.

## How is blockchain used in cryptocurrencies and payments?

Blockchain makes payments possible by allowing two parties to transfer value directly, without a bank validating the operation: the network itself confirms and records each transaction. That was exactly the proposal of Bitcoin, the first practical application of the technology, described in the [Satoshi Nakamoto whitepaper](https://bitcoin.org/bitcoin.pdf) in 2008: "A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution".

Beyond the coins themselves, blockchain underpins cheaper and more inclusive payment systems: international remittances, stablecoins, and [tokens](/en/glossario/token) that represent real-world assets. The movement is strong in Brazil: according to the [Chainalysis 2025 Global Crypto Adoption Index](https://www.chainalysis.com/blog/2025-global-crypto-adoption-index/), the country is 5th in the world in adoption, with US$318.8 billion in on-chain value received in the analyzed period — nearly a third of all crypto activity in Latin America.

## How does supply chain traceability work?

In the supply chain, blockchain works as a shared, immutable history: each link (producer, carrier, distributor, retailer) records its step, and any participant can audit a product's provenance in seconds. This ensures the item's authenticity, quality, and safety from origin to final consumer.

The most cited case is Walmart's. In pilots with IBM using the permissioned Hyperledger Fabric network, the retailer cut the time to trace the origin of a mango from 7 days to 2.2 seconds, according to the [case study published by the Linux Foundation Decentralized Trust](https://www.lfdecentralizedtrust.org/case-studies/walmart-case-study). The same study reports that the system came to track more than 25 products from 5 different suppliers, from leafy greens to pork.

Corporate networks like this are usually permissioned, meaning only authorized participants write to the ledger — a model very different from the public networks of Bitcoin and Ethereum. The differences between these models are detailed in the comparison of [public, private, and consortium blockchain networks](/en/blog/tipos-de-blockchain).

## What are smart contracts?

Smart contracts are computer programs stored on a blockchain that automatically execute predefined clauses and conditions when certain criteria are met, used to automate agreements without intermediaries. The concept was proposed by computer scientist Nick Szabo in the 1990s and gained practical implementation with Ethereum, as documented on the [Ethereum Foundation's official smart contracts page](https://ethereum.org/pt-br/smart-contracts/).

In practice, the smart contract replaces the notary or trusted intermediary: the code defines the rules, and the network guarantees they are applied exactly as written, with no unilateral alteration later. This enables applications such as decentralized finance (DeFi), automated auctions, parametric insurance, and programmable royalties — reliable, automated, end-to-end transactions.

## How does blockchain protect digital identity?

Blockchain protects digital identity by inverting the traditional model: instead of personal data sitting in centralized databases of companies and governments, the user keeps their own credentials and shares only the proof needed for each verification. This is the model known as self-sovereign identity.

This design reduces the attack surface — there is no single database to leak — and gives the holder real control over which information they reveal to financial, government, and health services. In the Brazilian context, this control speaks directly to principles like data minimization and consent provided in the [LGPD (General Data Protection Law)](/en/blog/o-que-e-lgpd): the decentralized architecture makes it easier to prove an attribute (such as legal age) without exposing the entire document.

## Blockchain and electronic voting

Blockchain can make electoral processes more auditable: each vote recorded on the network is immutable, the count can be verified independently, and the retroactive manipulation of results becomes computationally infeasible. For this reason, governments and universities have been testing blockchain voting pilots for internal elections, assemblies, and public consultations.

The technology, however, does not by itself solve every challenge of an election: ensuring voter anonymity, verifying identity without coercion, and protecting the device where the vote is typed remain open problems. The current technical consensus is that blockchain adds integrity and transparency to the count, but large-scale popular voting still depends on advances in end-to-end security — which is why most initiatives remain in the experimental stage.

## Land and property registry on blockchain

Land registries historically suffer from imprecise documentation, property disputes, and corruption. Blockchain attacks these problems by keeping titles with a complete, immutable history verifiable by any party, making it easier to trace property and resolve conflicts.

The most mature example is Georgia (the Caucasus country): since 2016, the National Agency of Public Registry (NAPR) anchors land certificates on a blockchain in partnership with Bitfury, and the project had already published 1.5 million titles by 2018, according to the [Exonum platform case study](https://exonum.com/story-georgia). It was the first time a national government used the Bitcoin blockchain to register land titles.

In the private real estate market, the same principle can speed up due diligence and bring security to transactions — a scenario that connects to the use of technology in the [new-business stage of real estate development](/en/blog/a-tecnologia-na-incorporacao-imobiliaria).

## Conclusion

Blockchain has ceased to be synonymous with cryptocurrency speculation: the cases of Walmart, Georgia, and the smart-contract ecosystem show the technology solving concrete trust problems between parties who don't know each other. The practical lesson for developers is direct — use blockchain when the problem requires an immutable, shared record between multiple organizations; for everything else, a traditional database remains simpler and cheaper. Here at CodeCrush, our recommendation is to start with the fundamentals and the types of networks before choosing a stack: understanding the why of decentralization is worth more than memorizing any trendy framework.]]></content:encoded>
    </item>
    <item>
      <guid>https://codecrush.com.br/en/blog/claude-code-desvendando-a-inteligencia-artificial-da-anthropic-para-o-</guid>
      <title>Claude Code: Anthropic&apos;&apos;s AI agent in the terminal</title>
      <link>https://codecrush.com.br/en/blog/claude-code-desvendando-a-inteligencia-artificial-da-anthropic-para-o-</link>
      <description>Understand what Claude Code is, Anthropic&apos;&apos;s coding agent in the terminal: it reads the repository, edits files, runs tests, and opens pull requests.</description>
      <pubDate>Mon, 06 Jul 2026 00:00:00 GMT</pubDate>
      <author>devhenrico@gmail.com (Henrico Piubello)</author>
      <category>Inteligência Artificial</category><category>DevOps e Ferramentas</category>
      <content:encoded><![CDATA[Claude Code is Anthropic's agentic command-line tool for software development. It reads the entire repository, edits files, runs commands and tests, and opens pull requests — it is a coding agent, not just a chat that generates code snippets.

## What is Claude Code?
Claude Code is Anthropic's agentic command-line tool for software development. Instead of just answering in a chat, it acts in the terminal: it maps the project with agentic search, edits files in multiple places across the code, runs commands and tests, and records the changes in version control. It is a coding agent, not an isolated snippet generator.

In practice, you open the [command-line interface](/en/glossario/cli) inside a project, describe the task in natural language, and the agent plans and executes. It understands the structure and dependencies of the entire repository without you manually selecting each context file. Beyond the terminal, Claude Code also runs in [IDE](/en/glossario/ide) extensions like VS Code and JetBrains, in a desktop app, and in the browser, at claude.ai/code — all surfaces share the same engine.

Here at CodeCrush, we treat Claude Code as a scalable, always-available coding colleague, capable of taking on everything from repetitive tasks — writing tests, fixing lint, updating dependencies — to complete feature implementations.

## How does Claude Code work in practice?
Claude Code works as an iterative agent: it receives an instruction, builds a plan, performs actions with tools (read, edit, run commands), and checks the result before proceeding. At each step, it reads the output of commands and tests and adjusts course, approaching the behavior of a human developer debugging a problem.

Working with [git](/en/glossario/git) is native: the agent stages changes, writes commit messages, creates branches, and opens pull requests. It also connects to external tools through the Model Context Protocol (MCP), an open standard for linking AI to data sources like Google Drive, Jira, or Slack. Features like the CLAUDE.md file (project memory), skills, and hooks customize the behavior per repository.

**Practical example:** faced with a `NullPointerException` in a Java application, you describe the symptom or paste the stack trace. Claude Code traces the flow through the code, identifies the root cause, applies the fix, runs the tests, and if everything passes, proposes the commit — turning hours of manual debugging into minutes.

## Where Claude Code runs: terminal, IDE, desktop, and web
Claude Code runs on four main surfaces: the terminal (CLI), IDE extensions, a desktop app, and the web. In the terminal, you install it with a command and type `claude` inside the project. In the VS Code and JetBrains IDEs, you get inline diffs, @-mentions, and plan review within the editor.

The desktop app lets you review diffs visually, run several sessions side by side, and schedule recurring tasks. On the web, at claude.ai/code, you kick off long-running tasks and come back when they finish — useful for repositories you don't have locally. Because all surfaces use the same engine, your CLAUDE.md files, settings, and MCP servers work on any of them. The CLI and the VS Code extension also accept third-party providers.

## What are the benefits of Claude Code in the workflow?
The main benefit of Claude Code is transferring entire tasks — not just suggestions — to a reliable agent, raising productivity without taking control away from the team. It accelerates code generation, automates tests, handles documentation, and shortens debugging time by tracing root causes across the whole base.

Among the concrete gains:

1. **Automating the boring work:** writes tests for uncovered code, fixes lint errors across the project, resolves merge conflicts, and updates dependencies.
2. **Faster debugging:** analyzes stack traces and the surrounding code to point to the likely cause and the fix.
3. **Always up-to-date documentation:** generates docstrings, comments, and guides from the source code.
4. **Legacy system refactoring:** understands complex interdependencies and modernizes sections safely.
5. **End-to-end flow:** reads an issue, writes the code, runs the tests, and opens the pull request.

According to Anthropic's [2026 Agentic Coding Trends Report](https://resources.anthropic.com/hubfs/2026%20Agentic%20Coding%20Trends%20Report.pdf), the proportion of projects on GitHub with code-agent activity has more than doubled since the end of 2025 — a sign that the agentic model has stopped being an experiment and become part of the workflow. [AI automation](/en/blog/automacao-com-ia-desvendando-o-futuro-cognitivo-do-trabalho-e-dos-nego) tools follow the same direction.

## What are the challenges and limitations of Claude Code?
Despite being powerful, Claude Code requires supervision: correctness, security, and human review remain the developer's responsibility. Like any language model, it can hallucinate — generating plausible code but with subtle logical errors or vulnerabilities — so nothing should go to production without review and tests.

Other points of attention:

- **Prompt quality:** poor results usually come from vague instructions. It's worth developing prompt engineering to describe goal, constraints, and context.
- **Privacy and intellectual property:** understand how the source code is handled, especially in corporate environments with strict compliance.
- **Cost:** consumption grows with the volume of tokens processed; large, autonomous tasks cost more.
- **Destructive actions:** because it runs commands and alters files, the agent needs permissions and diff review before irreversible changes.

**Practical example:** when asked for a form-validation function, Claude Code may deliver code that doesn't sanitize input against cross-site scripting (XSS) attacks if the prompt doesn't require it. Human review is what prevents the gap.

## Claude Code vs. GitHub Copilot and ChatGPT: what is the difference?
The central difference is the unit of work: Claude Code operates as an agent that completes multi-file tasks end to end, while GitHub Copilot focuses on autocompleting code in the IDE and ChatGPT acts as a general-purpose conversational chat. Each solves a different problem.

**GitHub Copilot** shines at suggesting lines and snippets as you type, with context from the open file. **ChatGPT** and other chats (like **Google Gemini**) are versatile for explaining concepts and generating examples, but they don't edit your repository or run your tests on their own. **Claude Code** occupies another category: it receives a task, acts on the code, and delivers the verified result.

| Aspect | Claude Code (agent in the terminal) | Autocomplete assistant |
| :--- | :--- | :--- |
| Unit of work | End-to-end multi-file task | Line or snippet in the IDE |
| Context | Entire repository (agentic search) | Open file and surrounding |
| Actions | Edits, runs tests, commits, opens PR | Suggests code for you to accept |
| Where it runs | Terminal, IDE, desktop, and web | Inside the editor |
| Integrations | MCP, git, CI/CD, Slack | Depends on the editor |

In practice, the tools complement each other: many teams use autocomplete for assisted typing and Claude Code for larger, more autonomous tasks.

## How to start using Claude Code?
To start using Claude Code, install the CLI, authenticate your account, and describe the first task in natural language. The most common path takes a few minutes:

1. **Install Claude Code.** On macOS, Linux, or WSL, run `curl -fsSL https://claude.ai/install.sh | bash`; on Windows, use the PowerShell installer. Homebrew and WinGet are also available.
2. **Open your project.** Run `cd your-project` and then `claude` to start a session in the terminal. Familiarity with [terminal commands](/en/blog/comandos-fundamentais-de-terminal-cmd-linux-mac) helps a lot here.
3. **Authenticate.** On first use, log in with your Claude subscription or Anthropic Console account.
4. **Describe the task.** Be specific: instead of "write some code," ask "write tests for the authentication module, run them, and fix the failures."
5. **Review and approve.** Check the diffs, run the test suite, and only then accept the commits or pull request.

Start with small, well-defined tasks and increase the complexity as you gain confidence in the agent's behavior.

## Best practices to maximize efficiency with Claude Code
To maximize efficiency with Claude Code, invest in clear instructions, project context, and disciplined validation. The best practices revolve around guiding the agent well and checking what it produces.

1. **Set up CLAUDE.md:** register code conventions, architecture decisions, and preferred libraries in the file the agent reads every session.
2. **Master prompt engineering:** define role, output format, and constraints; for complex problems, ask for a plan before execution.
3. **Give broad context:** point to relevant files, error messages, and requirements — the context window of up to 1 million tokens allows reasoning over entire bases.
4. **Always validate:** treat the code as a starting point; run tests, review security, and read the diffs before merging.
5. **Use hooks and skills:** automate formatting, lint, and repeatable flows, and package team commands as reusable skills.
6. **Control permissions:** require confirmation for destructive actions and keep the agent in a safe scope.

## The future of Claude Code and AI-assisted programming
The future of Claude Code points to more autonomy, integration, and parallel work. The trend is for the agent to take on long-running tasks with little supervision, coordinate teams of subagents, and run on managed infrastructure, triggered by events, schedules, or API calls.

Already today it's possible to run several sessions in parallel, schedule routines that execute even with the computer off, and automatically review code on every pull request. The developer's role shifts from typing to architecture, clearly specifying objectives, and strategic oversight — deciding what to build and ensuring quality, while the agent handles execution. Anthropic, with its focus on safety and alignment, tends to keep this autonomy under human control.

## Conclusion
Claude Code represents a concrete shift in how we program: instead of a chat that suggests snippets, an AI agent that lives in the terminal, understands the entire repository, edits files, runs tests, and opens pull requests — also available in IDEs, desktop, and the web. Powered by the latest Claude models, with a context window of up to 1 million tokens, it automates repetitive work and frees the team for higher-value challenges. The known limits — hallucinations, dependence on good prompts, and the need for human review — don't negate the gain; they only reinforce that the developer remains in charge. Adopting it judiciously is a natural step for anyone who wants to speed up delivery without sacrificing quality.]]></content:encoded>
    </item>
    <item>
      <guid>https://codecrush.com.br/en/blog/comandos-fundamentais-de-terminal-cmd-linux-mac</guid>
      <title>Terminal Commands: A Guide for Windows, Mac, and Linux</title>
      <link>https://codecrush.com.br/en/blog/comandos-fundamentais-de-terminal-cmd-linux-mac</link>
      <description>A guide to essential terminal commands: dir, cd, and ipconfig in Windows CMD; ls, cp, mv, and grep in the Mac Terminal and the Linux shell.</description>
      <pubDate>Tue, 09 Jan 2024 00:00:00 GMT</pubDate>
      <author>devhenrico@gmail.com (Henrico Piubello)</author>
      <category>Desenvolvimento</category><category>Hardware e Sistemas</category>
      <content:encoded><![CDATA[![Terminal screen showing command-line use on Windows, Mac, and Linux](/static/images/articles/terminal-de-comando.webp)

Terminal commands are text instructions that the operating system executes without a graphical interface. On Windows, they run in CMD (Command Prompt) or PowerShell; on Mac and Linux, in [shells](/en/glossario/shell) like Zsh and Bash. Mastering dir, cd, ls, and grep speeds up file, network, and automation tasks.



## What are terminal commands?

Terminal commands are the way to operate the computer through a [CLI](/en/glossario/cli) (Command-Line Interface): instead of clicking on windows and menus, you type instructions that the shell interprets and executes. Each command is a small program or an internal shell function, and most accept arguments and options that modify their behavior.

It's worth separating two concepts that often get mixed up. The terminal (or terminal emulator) is the window where you type and read the responses — Command Prompt and Windows Terminal on Windows, the Terminal app on Mac, GNOME Terminal or Konsole on Linux. The shell is the interpreter that runs inside that window: CMD and PowerShell on Windows, Zsh on Mac, Bash on most Linux distributions.

This text layer has existed since the early Unix systems of the 1970s and remains the most direct interface with the operating system: batch file manipulation, network diagnostics, process management, and routine automation are tasks where the command line outperforms the graphical interface in speed and reproducibility.

## What is the difference between the Windows, Mac, and Linux terminal?

The central difference is the origin of the shells: Windows CMD inherits MS-DOS syntax, while Mac and Linux use Unix-family shells — which is why macOS and Linux commands are practically identical, and Windows ones have their own names. The table below shows the most-used equivalents:

| Task                | Windows (CMD) | Mac and Linux           |
| ------------------- | ------------- | ----------------------- |
| List files          | `dir`         | `ls`                    |
| Change directory    | `cd`          | `cd`                    |
| Copy file           | `copy`        | `cp`                    |
| Move or rename      | `move`        | `mv`                    |
| Delete file         | `del`         | `rm`                    |
| Create directory    | `mkdir`       | `mkdir`                 |
| Network config      | `ipconfig`    | `ip addr`, `ifconfig`   |
| Clear the screen    | `cls`         | `clear`                 |

The ecosystem has evolved on all three systems. On Windows, [Windows Terminal became the default terminal starting with Windows 11 22H2](https://devblogs.microsoft.com/commandline/windows-terminal-is-now-the-default-in-windows-11/), according to Microsoft (2022), unifying CMD, PowerShell, and WSL in one app. On the Mac, Apple documents that [Zsh has been the default shell since macOS Catalina](https://support.apple.com/en-us/102360), released in 2019, replacing Bash. On Linux, the [GNU project's Bash](https://www.gnu.org/software/bash/manual/) remains the default shell on most distributions. For a broader comparison across the three systems, see our [comparative analysis of Windows, Linux, and macOS](/en/blog/analise-entre-sistemas-operacionais).

## What are the main CMD commands on Windows?

The fundamental CMD commands on Windows are `dir`, `cd`, `mkdir`, `copy`, `del`, and `ipconfig`: with them you navigate folders, create and remove files, and diagnose the network without opening a single Explorer window.

- **dir** — lists the files and folders in the current directory.
- **cd** — changes the working directory.
- **mkdir** — creates a new directory.
- **copy** — copies files from one location to another.
- **del** — deletes files.
- **ipconfig** — displays the network configuration (IP, gateway, DNS).

```batch
dir
cd C:\Projetos
mkdir relatorios
copy dados.txt C:\Projetos\relatorios\
del rascunho-antigo.txt
ipconfig /all
```

CMD also accepts diagnostic utilities like `ping`, `tracert`, and `tasklist`. The complete list, with every command's options, is in the [official Windows command reference on Microsoft Learn](https://learn.microsoft.com/pt-br/windows-server/administration/windows-commands/windows-commands). For more advanced automation — scripts, objects, and integration with services — the natural path is to migrate from CMD to PowerShell, which stays compatible with these commands through aliases.

## What are the main Terminal commands on a Mac?

The essential Terminal commands on a Mac are `ls`, `cd`, `cp`, `mv`, `rm`, and `top` — the same basic set of any Unix system, run by default in the Zsh shell.

- **ls** — lists the files in the current directory.
- **cd** — navigates between directories.
- **cp** — copies files or directories.
- **mv** — moves or renames files.
- **rm** — removes files or directories.
- **top** — shows running processes and resource usage.

```shell
ls -la
cd ~/Documentos/projetos
cp config.json backup/config.json
mv rascunho.md artigo-final.md
rm arquivo-temporario.txt
top
```

Because macOS is a certified Unix system, almost everything you learn in the Mac Terminal also applies to Linux servers — and vice versa. The main practical difference is in system utilities: on the Mac, the most popular package manager is Homebrew, a topic we detail in the guide on [package managers like npm, Homebrew, and Chocolatey](/en/blog/gerenciadores-de-pacotes-npm-yarn-pnpm). Take special care with `rm`: the command sends nothing to the Trash, deletion is permanent.

## What are the main Linux commands?

The key Linux commands are `pwd`, `ls`, `cp`, `mv`, `rm`, and `grep`, typically run in the Bash shell. They cover the basic work cycle: know where you are, list and manipulate files, and search content inside them.

- **pwd** — displays the current directory path.
- **ls** — lists files and folders.
- **cp** — copies files or directories.
- **mv** — moves or renames files.
- **rm** — removes files or directories.
- **grep** — searches for text patterns inside files.

```shell
pwd
ls -lh /var/log
cp app.conf app.conf.bak
mv build/ releases/v2/
rm -r cache-antigo/
grep -r "erro" /var/log/nginx/
```

On Linux, the terminal isn't optional for those who administer systems: package installation (`apt`, `dnf`), permissions (`chmod`, `chown`), and services (`systemctl`) all go through the command line. It's also through it that you do [secure remote access to servers via SSH](/en/blog/o-que-e-ssh-na-pratica), the dominant scenario in the cloud. Specialized distributions take this to the extreme: [Kali Linux, aimed at security testing](/en/blog/kali-linux), concentrates hundreds of tools operated almost exclusively through the terminal.

## Why learn terminal commands in 2026?

Learning terminal commands remains worthwhile because modern infrastructure is operated by text: the Unix family (Linux and derivatives) runs on [91.7% of sites whose operating system is known](https://w3techs.com/technologies/overview/operating_system), according to W3Techs (July 2026). Anyone who deploys, debugs containers, or accesses cloud servers works, in practice, inside a shell.

On the desktop, the scenario is hybrid: the [Stack Overflow Developer Survey 2024](https://survey.stackoverflow.co/2024/technology) recorded Windows as the most-used OS by developers (59.2% for personal use), with macOS at 31.8% — meaning the typical professional moves between CMD/PowerShell syntax on the local machine and Unix syntax on servers. Mastering both columns of this guide's table eliminates that friction.

There's also a multiplier effect: Git, Docker, package managers, and CI/CD (continuous integration and delivery) pipelines expose their primary interfaces as commands. Here at CodeCrush, we treat the terminal as the foundation: it's the skill that unlocks virtually every other day-to-day tool for those who program.

## Conclusion

The terminal is the investment with the best return for anyone working in technology: a small set of commands — `dir`, `cd`, and `ipconfig` on Windows; `ls`, `cp`, `mv`, `rm`, and `grep` on Mac and Linux — covers most everyday tasks and pays off for decades, because these interfaces barely change. Start by using this guide's equivalence table as a cheat sheet, practice the examples in a test folder, and when the basic commands become reflex, move on to scripts and automation: that's the point where the command line stops being a convenience and becomes a competitive advantage.]]></content:encoded>
    </item>
    <item>
      <guid>https://codecrush.com.br/en/blog/como-criar-projetos-de-machine-learning</guid>
      <title>How to Create Machine Learning Projects: A 5-Step Guide</title>
      <link>https://codecrush.com.br/en/blog/como-criar-projetos-de-machine-learning</link>
      <description>Machine learning projects require data preparation, suitable algorithms, iterative pipelines, scalability, and metrics like recall and F1-Score.</description>
      <pubDate>Tue, 26 Sep 2023 00:00:00 GMT</pubDate>
      <author>devhenrico@gmail.com (Henrico Piubello)</author>
      <category>Dados e Machine Learning</category><category>Inteligência Artificial</category>
      <content:encoded><![CDATA[![Illustration of a machine with neural networks in orange representing machine learning projects](/static/images/articles/projetos-machine-learning.webp)

Creating successful machine learning projects requires five elements combined: data preparation, adequate algorithm choice, automated and iterative processes, scalability, and joint modeling — plus evaluation metrics aligned with the problem, such as accuracy, recall, F1-Score, and AUC-ROC.



## What does a machine learning project need to succeed?

An effective **[machine learning](/en/blog/machine-learning)** project combines five essential elements that, together, ensure the model handles data complexity and delivers reliable insights. Before writing any line of code, it's worth knowing each one:

1. **Data preparation** — collect, clean, transform, and structure the data before any training.
2. **Basic and advanced algorithms** — from linear regression to neural networks, chosen according to the type of problem.
3. **Automated and iterative processes** — pipelines that automate repetitive tasks and allow continuous improvement.
4. **Scalability** — an architecture able to grow with data volume without losing performance.
5. **Joint modeling** — models that consider multiple variables simultaneously, capturing complex relationships.

### Data preparation

Data preparation is the most underestimated — and the most time-consuming — component of a machine learning project. According to the [Anaconda State of Data Science 2021 report](https://know.anaconda.com/rs/387-XNW-688/images/Anaconda-2021-SODS-Report-Final.pdf), data scientists spend 39% of their time on data preparation and cleaning — more than on model training, selection, and deployment combined.

Before applying any machine learning algorithm, you need to collect, clean, transform, and structure the data properly. This involves identifying relevant data sources, removing noise and inconsistencies, handling missing values, and normalizing the data.

The quality and adequate preparation of the data are what, in practice, determine whether machine learning models will produce accurate and reliable results.

### Basic and advanced algorithms

Choosing the right algorithms is another crucial aspect of creating effective machine learning systems. There is a variety of algorithms available, from basic ones like **[linear regression](/en/blog/regressao-linear)** and decision trees to more advanced ones like neural networks and deep learning algorithms.

Each algorithm has its own characteristics and is more suited to different types of problems and datasets. Understanding the different algorithms and properly selecting them based on the problem context is essential to obtaining accurate and efficient results.

### Automated and iterative processes

Building good machine learning systems involves automated and iterative processes. This means establishing **[data pipelines](/en/blog/o-que-e-pipeline-de-dados)** that allow automating repetitive tasks such as data preparation, model training, and performance evaluation.

Beyond that, these processes should be iterative: allowing continuous improvement of models through tuning and optimization. Constant iteration improves accuracy over time and helps detect problems like [overfitting](/en/glossario/overfitting) before the model reaches production.

### Scalability

To build robust machine learning systems, you must consider scalability. As data volumes grow, the system must handle that growth without compromising performance — which involves scalable architectures and parallel and distributed processing technologies.

Scalability is also what separates prototypes from real products. According to [Gartner research published in 2024](https://www.gartner.com/en/newsroom/press-releases/2024-05-07-gartner-survey-finds-generative-ai-is-now-the-most-frequently-deployed-ai-solution-in-organizations), only 48% of AI (Artificial Intelligence) projects reach production, and the journey from prototype to that point takes an average of 8 months. Planning the deployment infrastructure from the start reduces that friction dramatically.

### Joint modeling

Joint modeling refers to the ability to create machine learning models that consider multiple variables or aspects simultaneously. Instead of creating separate models for each variable, joint modeling allows different elements to be analyzed together, capturing complex relationships between them and generating broader insights about the problem.

## Tools and languages for machine learning projects

Python dominates the machine learning ecosystem: 57.9% of developers use the language according to the [Stack Overflow Developer Survey 2025](https://survey.stackoverflow.co/2025/technology), a jump of 7 percentage points in a year, driven precisely by AI and data science demand.

In practice, most projects combine Python with consolidated libraries: scikit-learn for classic algorithms, TensorFlow and PyTorch for neural networks, and pandas and NumPy for data manipulation. R remains relevant in statistical analysis and visualization.

To build a study roadmap with courses, documentation, and methods, see the CodeCrush [guide to studying machine learning](/en/blog/guia-estudar-machine-learning-metodos-listas-recursos).

## How to evaluate a machine learning model's performance?

Evaluating a machine learning model means choosing the metric that reflects the real cost of errors in your problem: accuracy for balanced classes, recall when false negatives are costly, F1-Score for imbalanced data, and AUC-ROC to compare the ability to separate classes.

| Metric             | What it measures                              | When to prioritize                          |
| ------------------- | --------------------------------------------- | ------------------------------------------- |
| Accuracy            | Proportion of the model''s correct predictions| Balanced classes in the dataset             |
| Recall              | Real positives identified by the model        | Minimize false negatives (fraud, medical tests) |
| F1-Score            | Harmonic mean of precision and recall         | Imbalanced data, balancing errors           |
| AUC-ROC             | Separation between positive and negative classes| General comparison between candidate models  |

### Accuracy

Accuracy measures the proportion of correct predictions the model makes relative to the total number of predictions. However, accuracy can be misleading when the data is imbalanced — that is, when one class is much more frequent than the other.

In those cases, a model that constantly predicts the majority class can achieve high accuracy without being effective. Therefore, accuracy should be interpreted carefully and, in many scenarios, other metrics are more informative.

### Recall

Recall measures the model's ability to correctly identify all positive instances — the proportion of true positives relative to all actual positive examples.

Recall is especially important when the focus is on minimizing false negatives, as in medical tests or fraud detection. A high recall indicates the model identifies most positive cases, even if that generates some false positives.

### F1-Score

The F1-Score is the harmonic mean of precision and recall, useful when you want to balance the importance of both metrics.

The F1-Score tends to be more informative than accuracy alone, especially with imbalanced data, because it considers both false positives and false negatives. It reaches its maximum value at 1 (perfection) and its minimum at 0.

### Area Under the ROC Curve (AUC-ROC)

The ROC (Receiver Operating Characteristic) curve is a graphical representation of a model's ability to distinguish between positive and negative classes. AUC-ROC (Area Under the Curve) measures the area under that curve and provides a single score of overall performance: the higher, the better the model separates the classes. A value of 0.5 is equivalent to a random guess.

Interpreting the metrics depends on the context and the project's priorities. In fraud detection, a high recall is usually more important, even at the cost of false positives; in medical diagnosis, accuracy may weigh more to avoid incorrect conclusions. Additional metrics, such as the Matthews correlation coefficient (MCC) and the Jaccard index, complement the analysis in specific scenarios.

## Conclusion

Machine learning projects fail far more from poorly prepared data and lack of production planning than from the wrong algorithm choice. The practical order that works is clear: start with the data, define the success metric before training the first model, and treat the pipeline as a product that needs to scale. Those who master these fundamentals join the minority of projects that actually reach production — and deliver real value, not just promising prototypes.]]></content:encoded>
    </item>
    <item>
      <guid>https://codecrush.com.br/en/blog/como-entrar-no-metaverso</guid>
      <title>How to enter the metaverse: step by step and platforms</title>
      <link>https://codecrush.com.br/en/blog/como-entrar-no-metaverso</link>
      <description>To enter the metaverse, create an account on platforms like Roblox or Decentraland and access it from a phone, PC, or VR headset.</description>
      <pubDate>Fri, 06 Oct 2023 00:00:00 GMT</pubDate>
      <author>devhenrico@gmail.com (Henrico Piubello)</author>
      <category>Tecnologia e Inovação</category>
      <content:encoded><![CDATA[![Woman wearing a virtual reality headset to explore a metaverse universe](/static/images/articles/mundos-virtuais.webp)

Entering the metaverse takes three steps: pick a platform like Roblox, Decentraland, or Second Life, create a free account, and access it from the device you already have — a smartphone, a computer, or a VR (Virtual Reality) headset. No expensive gear is required to take the first steps.



## What is the metaverse?

The metaverse is a shared, persistent digital space that combines 3D worlds, avatars, and real-time social interaction, used for gaming, work, education, and virtual commerce. Unlike a regular website or app, the metaverse keeps existing and evolving even when the user disconnects — if you want to go deeper into the concept, see the [complete guide on what the metaverse is and how it works](/en/blog/metaverso).

These virtual universes range from multiplayer gaming platforms, like Roblox and Fortnite, to social and economic simulation environments, like Second Life and Decentraland. In all of them, participants explore scenarios, create their own content, collaborate with others, and even build businesses within the digital space.

Big tech companies' bet on this concept became explicit in 2021, when Facebook changed its name to Meta. In the [2021 Founder's Letter](https://about.fb.com/news/2021/10/founders-letter/), Mark Zuckerberg wrote: "The metaverse is the next frontier in connecting people, just like social networking was when we got started".

Two technologies underpin much of these experiences: VR (Virtual Reality), which immerses the user in a fully digital environment, and [AR (Augmented Reality)](/en/glossario/realidade-aumentada), which projects virtual elements over the real world. Some platforms add [blockchain](/en/glossario/blockchain) to this, used to record the ownership of land and virtual items.

## How to enter the metaverse step by step?

To enter the metaverse, the path is the same on virtually any platform: pick the virtual universe, create an account, install the app on the available device, and personalize an avatar. The whole process takes less than 30 minutes and requires no technical knowledge. Follow the steps below:

1. **Pick the platform**: define what you're looking for — gaming and creation (Roblox, Minecraft), immersive socializing (Meta Horizon Worlds), virtual economy (Second Life), or digital ownership via blockchain (Decentraland).
2. **Create a free account**: sign up on the chosen platform's official site with an email and password. All the platforms mentioned in this guide have free entry.
3. **Install the app on your device**: download the client for phone, PC, or console. Decentraland also runs straight in the browser, and Horizon Worlds requires a Meta Quest headset.
4. **Set up your avatar**: customize appearance, name, and privacy preferences. The avatar is your identity inside the virtual universe.
5. **Explore worlds and interact**: enter community-created experiences, take part in events, and add friends. The learning curve is quick because the worlds guide the beginner.
6. **Connect a digital wallet (optional)**: on blockchain-based platforms like Decentraland, a crypto wallet lets you buy land, wearables, and the MANA currency. Understand first [how blockchain technology works](/en/blog/o-que-e-blockchain).

Those who want more immersion can access the same worlds with a VR headset, but dedicated hardware is an upgrade, not a prerequisite.

## What are the main metaverse platforms?

The main metaverse platforms in 2026 are Roblox, Minecraft, Fortnite, Decentraland, Second Life, and Meta Horizon Worlds — each with a different focus, access method, and audience. The table below summarizes the differences:

| Platform            | Access                    | Highlight                                |
| ------------------- | ------------------------- | ---------------------------------------- |
| Roblox              | PC, phone, console, VR    | Community-built games                    |
| Minecraft           | PC, phone, console        | Block-based world building               |
| Fortnite            | PC, phone, console        | Massive events and virtual concerts      |
| Decentraland        | Browser and PC           | Virtual land recorded on a blockchain     |
| Second Life         | PC                        | Active virtual economy since 2003         |
| Meta Horizon Worlds | Meta Quest headset        | Native virtual reality socializing        |

### Roblox

[Roblox](https://www.roblox.com/) is today the largest-scale metaverse: the company reported an average of 132 million daily active users in the first quarter of 2026, up 35% year over year, with 31 billion hours of engagement in the period, according to the [Roblox Corporation Q1 2026 shareholder letter](https://s27.q4cdn.com/984876518/files/doc_financials/2026/q1/Q1-2026-Earnings-Shareholder-Letter.pdf). Although popular with younger audiences, the platform lets any user create, publish, and monetize their own games and interactive experiences.

### Decentraland

[Decentraland](https://decentraland.org/) is a blockchain-based metaverse where users acquire virtual land and build their own 3D experiences. The platform uses the MANA cryptocurrency as a means of exchange and for community governance.

### Second Life

[Second Life](https://secondlife.com/), launched in 2003, is one of the first metaverses and remains active. Users create avatars, build and sell virtual products and services, and take part in social and cultural events inside the digital world.

### Meta Horizon Worlds

[Meta Horizon Worlds](https://www.meta.com/horizon-worlds/) is Meta's social virtual reality platform. The goal is to create a metaverse where users meet, explore, and interact in immersive environments accessed through the Meta Quest headset.

### Fortnite

[Fortnite](https://store.epicgames.com/pt-BR/p/fortnite), known for its battle royale mode, also features metaverse elements: beyond competitive matches, Epic Games' game hosts concerts, collaborative events, and community-built islands in a constantly evolving virtual world.

### Minecraft

Minecraft, famous for its block-building gameplay, works in practice as a metaverse: players create and explore vast virtual environments, form communities on servers, and share creations. Mojang announced at [Minecraft Live 2023](https://www.minecraft.net/en-us/article/minecraft-live-2023--the-recap-) that the game had surpassed 300 million copies sold, a milestone disclosed in October 2023.

## VR and AR gear for the metaverse

The gear needed to enter the metaverse depends on the platform: a smartphone or ordinary computer is enough for Roblox, Minecraft, Fortnite, Second Life, and Decentraland; only native VR platforms like Meta Horizon Worlds require dedicated headsets. In other words, specialized [hardware](/en/glossario/hardware) broadens the experience but isn't a barrier to entry.

VR headsets, like the Meta Quest and the HTC Vive, fully immerse the user in the virtual universe: screens close to the eyes and motion sensors create an immersive experience where the body takes part in the interaction. Standalone models like the Meta Quest don't need a computer and greatly simplify the initial setup.

Augmented reality devices, like the Microsoft HoloLens and Magic Leap, take the opposite path: they project digital objects over the real world, letting you interact with virtual elements without losing contact with the physical environment. This approach is common in professional applications, from industrial training to medicine.

The potential of these technologies goes far beyond entertainment: immersion in controlled environments is already applied in clinical contexts, as shown by the use of [virtual reality in therapeutic rehabilitation](/en/blog/realidade-virtual-na-reabilitacao). For beginners, the practical recommendation is simple: try first the platforms that run on the device you already own, and only invest in a VR headset if immersion becomes a priority.

## Conclusion

Entering the metaverse in 2026 is less a matter of equipment and more a matter of platform choice: with a free account and the phone already in your pocket, you access universes with hundreds of millions of active users. The concept keeps evolving — platforms appear, pivot, and disappear — so the smart strategy is to start with the ecosystem aligned with your goal (creating, socializing, or building a business) and treat the VR headset as a later investment. Here at CodeCrush, our reading is that the metaverse has stopped being a futuristic promise and become a real market for content creation and development — and those who learn to build in it now get a head start.]]></content:encoded>
    </item>
    <item>
      <guid>https://codecrush.com.br/en/blog/como-escolher-o-melhor-notbook</guid>
      <title>How to Choose a Notebook: A Guide to Processor, RAM, and SSD</title>
      <link>https://codecrush.com.br/en/blog/como-escolher-o-melhor-notbook</link>
      <description>To choose a notebook, define the use: basic tasks call for a Core i3 or Ryzen 3, 8 GB of RAM, and an SSD; heavy work demands an i5/i7, 16 GB, and a Full HD screen.</description>
      <pubDate>Sun, 14 May 2023 00:00:00 GMT</pubDate>
      <author>devhenrico@gmail.com (Henrico Piubello)</author>
      <category>Hardware e Sistemas</category>
      <content:encoded><![CDATA[![Modern notebook on a desk with a mouse and glasses beside the colorful screen](/static/images/articles/notbook.webp)

Choosing an ideal notebook starts with defining the budget and the primary use. Basic tasks work well with a Core i3 or Ryzen 3, 8 GB of RAM, and an SSD. Intensive programming, gaming, and video editing call for a Core i5/i7 or Ryzen 5/7, 16 GB of RAM, an NVMe SSD, and a Full HD screen.



## How to define the budget for a notebook?

A notebook's budget should be defined by the equipment's primary use: entry-level models and [Chromebooks](https://www.google.com/intl/pt_br/chromebook/) cover browsing, study, and an office suite; video editing, gaming, and intensive programming demand investing more in processor, memory, and a dedicated graphics card. The table below summarizes the reference configurations by profile.

| Component      | Basic use           | Heavy use               |
| --------------- | ------------------- | ------------------------ |
| Processor       | Core i3 / Ryzen 3   | Core i5–i7 / Ryzen 5–7   |
| RAM             | 8 GB                | 16 GB or more            |
| Storage         | 256 GB SSD          | 512 GB+ NVMe SSD         |
| Screen          | 14" Full HD         | 15.6" Full HD or more    |
| Battery         | 6 to 8 hours        | 8 hours or more          |

Evaluating the purpose of use avoids two common mistakes: paying for [hardware](/en/glossario/hardware) that will never be demanded and skimping on components that will hold the equipment back in a few years. For those [just starting to study programming](/en/blog/estudar-programacao), for example, a mid-range model with an SSD and 16 GB of RAM usually yields more than a top-of-the-line processor paired with little memory.

When settling on the price, include the additional costs: backpack or case, insurance, adapters, and possible future memory or storage upgrades. A notebook that allows later expansion can be bought in a more modest configuration today and grow with your needs, spreading the investment over time.

## Which processor to choose: Intel or AMD?

The processor is the component that most defines a notebook's performance, and the two main options — [Intel Core](https://www.intel.com.br/content/www/br/pt/products/details/processors/core.html) and [AMD Ryzen](https://www.amd.com/pt/processors) — deliver equivalent results within each price range. For basic tasks, a Core i3 or Ryzen 3 is sufficient; for video editing, gaming, and heavy programming, prefer a recent-generation Core i5/i7 or Ryzen 5/7.

The processor generation matters as much as the line. Manufacturers release new generations regularly, with performance and energy-efficiency gains, so a recent i5 can outperform an older i7. Also check the number of cores and threads, the cache size — which speeds up access to the most-used data — and the frequency in GHz, which indicates each core's speed.

For gaming, 3D rendering, and training AI (Artificial Intelligence) models, the dedicated GPU (Graphics Processing Unit, graphics card) weighs more than the processor. If that's your case, it's worth understanding [how GPUs shaped the AI era and high-performance computing](/en/blog/a-revolucao-silenciosa-como-as-gpus-moldaram-a-era-da-inteligencia-art) before choosing the graphics chip. For general use, the integrated graphics of current processors handle high-resolution video and office applications without difficulty.

## How much RAM is enough?

RAM (Random Access Memory) defines how many tasks the notebook runs at the same time without freezing: 8 GB is the comfortable minimum for browsing and productivity in 2026, and 16 GB or more is recommended for programming, video editing, graphic design, and virtual machines.

The [official Windows 11 requirements published by Microsoft](https://www.microsoft.com/en-us/windows/windows-11-specifications) ask for only 4 GB of RAM and 64 GB of storage — but that's the floor for the operating system to run, not to work comfortably. A browser with several tabs, a code editor, and a simultaneous video call easily account for more than that.

Beyond the amount, observe the memory type. DDR5, the standard on recent models, offers more bandwidth and better energy efficiency than DDR4, still common on entry-level notebooks. Finally, check whether the memory is expandable: some models have RAM soldered to the board, with no upgrade option, while others have free slots. The option to double the memory in the future extends the equipment's lifespan and protects the investment.

## SSD or HDD: which storage to choose?

An SSD (Solid State Drive) is the right choice for the main storage of any notebook: it boots the system in seconds, opens programs almost instantly, and, having no moving parts, better resists the impacts of daily transport. An HDD (Hard Disk Drive) is only justified as cheap secondary space for large files.

| Criterion      | SSD                          | HDD                       |
| -------------- | ---------------------------- | ------------------------- |
| Speed          | Very high, boot in seconds   | Slow read and write       |
| Durability     | No moving parts              | Sensitive to drops        |
| Noise          | Silent                       | Audible mechanical noise  |
| Power draw     | Low, saves battery           | Higher energy consumption |
| Price per GB   | More expensive               | Cheaper                   |

Within SSDs, NVMe models on the PCIe bus outperform SATA SSDs, limited by the 6 Gb/s interface, by a wide margin. For video editing and large projects, NVMe noticeably reduces file opening and export times.

A hybrid configuration — SSD for the operating system and programs, HDD for media libraries and backups — combines speed and capacity at a good cost. Complementing local storage with cloud services also eases the need for larger disks on the equipment itself.

## What is the ideal screen size and resolution?

A notebook's ideal screen depends on mobility: 13 to 14-inch models favor those who carry the equipment every day, 15.6 inches is the most popular format for balancing comfort and portability, and 17 inches suits editing, gaming, and fixed desk use. In all cases, Full HD resolution (1920x1080 pixels) should be the minimum.

HD screens (1366x768 pixels), still found on entry-level notebooks, compress the usable work area and make text less sharp — a saving that costs a lot in productivity. At the opposite end, Quad HD (2560x1440) and 4K (3840x2160) resolutions deliver a more detailed image but consume more battery and require a more capable graphics card.

Also consider the panel type and finish. IPS panels offer more faithful colors and better viewing angles than older TN ones, which matters in design and photo editing. A matte finish reduces glare in lit environments, while glossy enhances colors in controlled settings. Finally, remember that larger screens add weight and bulk: choose a size compatible with your commute routine.

## How much battery does a notebook need?

A notebook for mobile use needs at least 6 to 8 hours of real autonomy to get through a day of classes or meetings without an outlet; those who often work away from a desk should look for models that exceed 8 hours. The autonomy advertised by the manufacturer usually reflects light scenarios, so discount part of the number for real use.

Duration varies with the battery size (measured in Wh), the processor's efficiency, the screen resolution, and the brightness used. 4K screens and dedicated graphics cards are the biggest consumers: if autonomy is a priority, prefer Full HD and integrated graphics.

Two features deserve attention at purchase. The first is fast charging, which recovers a good part of the charge in under an hour — useful between one commitment and the next. The second is charging via USB-C Power Delivery, which lets you use the same phone charger or a compatible power bank, reducing the weight in your backpack. Also check the battery replacement policy: cells age, and a model with accessible replacement lasts more years at lower cost.

## Which connections and ports to check?

A current notebook should offer, at minimum, Wi-Fi 6 (802.11ax), two USB 3.0 or higher ports, a video output via HDMI or DisplayPort, and Bluetooth — this set covers external monitors, peripherals, and modern networks without adapters. More recent models already bring Wi-Fi 6E or Wi-Fi 7.

Wi-Fi 7 was formalized when the [Wi-Fi Alliance launched the Wi-Fi CERTIFIED 7 program in January 2024](https://www.wi-fi.org/news-events/newsroom/wi-fi-alliance-introduces-wi-fi-certified-7), bringing more capacity and lower latency on congested networks. It's not mandatory today, but it ensures the equipment's longevity as compatible routers become popular.

On the physical ports, the generation difference matters: USB 3.0 transfers data at up to 5 Gbps, versus 480 Mbps for USB 2.0 — more than ten times the speed when copying files to an external disk. USB-C ports with video and power support simplify the connection to docks and monitors. An Ethernet port remains useful for those who need a stable wired connection in a home office, and SD card readers speed up the workflow of photographers and content creators.

## Security and operating system

A notebook's security starts with compatibility with a supported operating system. [Support for Windows 10 ended on October 14, 2025, according to Microsoft](https://www.microsoft.com/en-us/windows/end-of-support), and Windows 11 requires the TPM (Trusted Platform Module) 2.0 chip — so avoid buying in 2026 any model that can't run the current system. Those who prefer another path can review the [comparison between Windows, Linux, and macOS](/en/blog/analise-entre-sistemas-operacionais) before deciding.

TPM 2.0 also enables disk encryption, which protects the data even if the equipment is lost or stolen — a basic pillar of [information security](/en/glossario/seguranca-da-informacao) for those who carry work and personal data in their backpack.

Biometric features round out the package: a fingerprint reader and facial recognition unlock the notebook quickly without sacrificing protection. Also check whether the manufacturer maintains a track record of firmware and driver updates; equipment without regular updates accumulates known vulnerabilities. Finally, establish an automated backup routine, local or in the cloud: no security feature replaces an intact copy of your files.

## Design and portability day to day

A notebook's design directly affects the comfort of use: a keyboard with good travel and backlighting, a precise touchpad, and a rigid build make more difference day to day than aesthetics. Portability, in turn, comes down to weight and dimensions — models under 1.5 kg are the ideal companions for those who commute every day.

Build materials indicate durability. Aluminum or magnesium alloy chassis resist torsion and minor impacts better than simple plastics, and firm hinges prevent play over time. If the notebook will travel frequently, that robustness is worth part of the budget.

Also observe the port layout: connectors clustered on one side only can get in the way of an external mouse, and a poorly positioned video output complicates daily life with a monitor. Details like a webcam with a physical shutter, front-facing speakers, and a 180-degree screen opening seem minor in the ad but define the real experience. Balance these factors with the chosen screen size: the larger the panel, the greater the total weight of the package.

## Conclusion

When choosing a notebook, the practical rule CodeCrush recommends is simple: spend first on the SSD and 16 GB of RAM, then on the processor, and only then on the screen and finish — it's that order that ensures a smooth machine for more years. Avoid configurations with an HDD as the main disk or 4 GB of memory, even if the price looks attractive, and require Windows 11 compatibility so you don't inherit an unsupported system. With the primary use defined and these priorities in mind, comparing models stops being a guessing game and becomes an objective decision.]]></content:encoded>
    </item>
    <item>
      <guid>https://codecrush.com.br/en/blog/comparacao-entre-servicos-em-nuvem</guid>
      <title>AWS, Azure, or GCP: Which cloud service to choose?</title>
      <link>https://codecrush.com.br/en/blog/comparacao-entre-servicos-em-nuvem</link>
      <description>AWS leads the cloud with 28% of the market, ahead of Azure (21%) and GCP (14%). Compare service types, strengths, and when to use each provider.</description>
      <pubDate>Sun, 12 Nov 2023 00:00:00 GMT</pubDate>
      <author>devhenrico@gmail.com (Henrico Piubello)</author>
      <category>Cloud e Infraestrutura</category><category>Tecnologia e Inovação</category>
      <content:encoded><![CDATA[![Illustration comparing the AWS, Azure, and Google Cloud Platform cloud services](/static/images/articles/servicos-em-nuvem.webp)

AWS (Amazon Web Services), Microsoft Azure, and Google Cloud Platform (GCP) are the three largest [cloud computing](/en/glossario/cloud-computing) platforms in the world. AWS leads the market with 28%, Azure stands out for its integration with the Microsoft ecosystem, and GCP for data and AI (Artificial Intelligence).



## What is cloud computing?

Cloud computing is the model for delivering IT (Information Technology) resources — servers, storage, databases, networks, software, and analytics — over the internet, on demand and with pay-per-use billing. Instead of buying and maintaining their own data centers, the company rents infrastructure from providers like [AWS](https://aws.amazon.com/pt/), [Microsoft Azure](https://azure.microsoft.com/pt-br/), and [Google Cloud](https://cloud.google.com/?hl=pt-BR).

This model has stopped being a trend and become the foundation of corporate IT. According to the [Synergy Research Group](https://www.srgresearch.com/articles/cloud-market-annual-revenue-run-rate-topped-half-a-trillion-dollars-in-q1-as-growth-surge-continues), worldwide spending on cloud infrastructure reached US$129 billion in the first quarter of 2026 alone, with growth of 35% a year — the ninth consecutive quarter of acceleration, driven mainly by demand for generative AI.

Cloud services offer scalability, flexibility, and accessibility: the company scales resources up or down according to demand, pays only for what it consumes, and eliminates heavy investments in physical hardware and maintenance. It's this elasticity that lets startups and large corporations alike adapt quickly to market changes.

## AWS, Azure, or GCP: what is the difference?

The central difference lies in each platform's focus: AWS offers the broadest service catalog and the greatest maturity; Azure delivers the best integration with Windows Server, SQL Server, and Microsoft 365; and GCP leads in data analytics, [Kubernetes](/en/glossario/kubernetes), and [machine learning](/en/glossario/machine-learning). In market share, Synergy Research Group recorded in the first quarter of 2026: AWS with 28%, Azure with 21%, and Google Cloud with 14% — together, the three control more than 60% of the world market.

| Criterion                         | Recommended provider | Why                                                |
| -------------------------------- | ----------------- | ------------------------------------------------ |
| Largest service catalog          | AWS               | Pioneer, with the broadest and most mature portfolio |
| Integration with the Microsoft stack | Azure             | Native connection with Windows, SQL Server, and 365 |
| Data, AI, and Kubernetes         | GCP               | BigQuery, Vertex AI, and the creation of Kubernetes |
| Global reach                     | AWS               | 39 regions and 123 availability zones               |
| Hybrid and corporate environments| Azure             | Azure Arc and a strong presence in large enterprises|
| Automatic usage discounts        | GCP               | Sustained-use discount, no upfront contract         |

## Types of cloud services: IaaS, PaaS, and SaaS

Every cloud service fits one of three models, which vary in the level of responsibility that remains with the customer:

1. **IaaS (Infrastructure as a Service)** — provides virtual servers, storage, and networks. The customer has full control over configuration and management; in exchange, they need technical knowledge to administer the environment. It's the ideal model for those who want maximum freedom over the infrastructure.
2. **PaaS (Platform as a Service)** — delivers a ready environment to create, deploy, and manage applications, with scalability and automatic updates. It saves development time but limits infrastructure customization. Examples: Heroku, Google App Engine, and Azure App Service.
3. **SaaS (Software as a Service)** — makes the final software available over the internet, with no local installation or maintenance. The provider handles updates and availability; the customer accepts less customization and some vendor lock-in. Examples: Microsoft 365, Salesforce, and Google Workspace.

In practice, AWS, Azure, and GCP offer all three models: virtual machines (IaaS), application platforms (PaaS), and ready-made software (SaaS) coexist in each provider's catalog — the real decision is how much control your team wants to take on.

## When to choose AWS?

Choose AWS when the project requires the largest service catalog on the market, global reach, and a mature ecosystem of documentation, certifications, and community. The leader since the segment's creation, AWS covers computing, storage, databases, networking, data analytics, and artificial intelligence at scale.

Infrastructure is its main strength: according to the [official AWS documentation](https://aws.amazon.com/about-aws/global-infrastructure/), Amazon's cloud operates 123 availability zones across 39 geographic regions, with new regions announced for Saudi Arabia and Chile. In practice, that means lower latency and more data-residency options for global applications.

AWS's weak point is complexity: with so many overlapping services, configuring and managing the environment requires study, especially for beginners — and the bill can surprise you without cost discipline. To start with the fundamentals, see the CodeCrush guide on [servers and the AWS universe in cloud programming](/en/blog/servidores-e-o-universo-aws-na-programacao-em-nuvem).

## Strengths and limitations of Microsoft Azure

Microsoft Azure is the natural choice for companies that already depend on the Microsoft ecosystem: native integration with Windows Server, SQL Server, Microsoft 365, and Active Directory reduces migration friction and simplifies licensing. Azure also stands out in hybrid scenarios, connecting local data centers to the public cloud with tools like Azure Arc.

This corporate strength shows up clearly in regulated segments. [Gartner projects that worldwide spending on sovereign-cloud IaaS will total US$80 billion in 2026](https://www.gartner.com/en/newsroom/press-releases/2026-02-09-gartner-says-worldwide-sovereign-cloud-iaas-spending-will-total-us-dollars-80-billion-in-2026), a market where Azure competes for government contracts and sectors like health and finance, which demand local data residency and control.

The most-cited limitation of Azure is cost: depending on the workload, the platform can be more expensive than its competitors, and the portal, with hundreds of services, also has a learning curve. [FinOps practices to maximize profits in cloud computing](/en/blog/o-que-e-finops) help keep the bill under control on any provider.

## When to choose Google Cloud Platform (GCP)?

Choose GCP when the project is data-centric, machine learning, or containers. Google's platform created Kubernetes, offers BigQuery for large-scale data analytics, and Vertex AI for training and serving models — a direct heritage of the infrastructure that runs products like Search and YouTube.

On price, GCP applies automatic discounts for sustained use, without requiring upfront contracts, and is recognized for network performance, security, and compliance. The smaller market share (14%) also translates into a leaner catalog than AWS's — which can be an advantage for teams who get lost in the overlap of services.

GCP's trade-offs are a learning curve considered steeper by those coming from other providers and a corporate presence still smaller than that of AWS and Azure. To know the platform in depth, read the analysis of the [Google Cloud ecosystem and its scalability proposition](/en/blog/google-cloud-desvendando-o-ecossistema-de-inovacao-e-escalabilidade-pa).

## Conclusion

There is no absolute winner among AWS, Azure, and GCP — there is the right provider for your context. If the priority is service breadth and maturity, start with AWS; if the company breathes Microsoft, Azure pays back the investment quickly; if the product lives on data and AI, GCP offers the best technical cost-benefit. The most expensive mistake is not choosing the "wrong" cloud, but ignoring cost management and vendor lock-in: design the architecture so that switching providers is expensive, but never impossible.]]></content:encoded>
    </item>
  </channel>
</rss>
