Pinned Tweet
Aqui vão 17 PERGUNTAS DE ENTREVISTA se você estiver concorrendo a uma vaga de FrontEnd.
Todas elas tem o link, e tem respostas muito boas nos comentários que você pode usar de insumo junto com o seu estudo!
1. Como otimizar o desempenho de uma aplicação React?xitter.gq/tsu_node/status/198386…
2. Você tem uma lista com mais de 1000 items sem paginação no react, cite pelo menos 3 forma de otimizar isso sem alterar o backend.
xitter.gq/tsu_node/status/197957…
3. Como funciona o fluxo de dados unidirecional no React?
xitter.gq/tsu_node/status/198424…
4. H1 randômico pode afetar o SEO?
xitter.gq/tsu_node/status/198437…
5. O que é Optimistic update e quando usar?
xitter.gq/tsu_node/status/198468…
6. Como você lida com segurança no FE?
xitter.gq/tsu_node/status/198902…
7. Como você evita prop drilling no React?
xitter.gq/tsu_node/status/198076…
8. Quando usar Nextjs? Sempre? Caso específico?
xitter.gq/tsu_node/status/198148…
9. Index do array tá valendo como key em uma lista no React?
xitter.gq/tsu_node/status/197892…
10. O que é o algoritmo Fiber no React?
xitter.gq/tsu_node/status/198645…
11. Quais erros comuns temos com useEffect? Como evitá-los?
xitter.gq/tsu_node/status/198112…
12. O que é uma NodeList no JavaScript e por que o método map() não funciona diretamente com ela?
xitter.gq/tsu_node/status/198836…
13. Como funciona o event loop do javascript (no browser 👀)
xitter.gq/tsu_node/status/198610…
14. O que é lifting state up e quando aplicá-lo?
xitter.gq/tsu_node/status/198348…
15. O que é hidratação (hydration) no React e quando ela acontece?
xitter.gq/tsu_node/status/198535…
16. O que são Web Workers e para que servem?
xitter.gq/tsu_node/status/198798…
17. O que causa stale closures em hooks? Como evitá-las?
xitter.gq/tsu_node/status/199371…
Salva aí. Qual você quer que eu responda?
Nessa era da IA, sinto que às vezes as pessoas deixam de olhar para pequenas coisas que podem ter um impacto gigantesco.
Nas últimas semanas, tenho rodado várias análises para melhorar a performance do frontend, e algo estava me incomodando muito: por que o LCP e o CLS estavam tão altos no mobile?
Antes de explicar o bug, você precisa entender que essas métricas são importantíssimas para UX, mas, mais do que isso, para SEO. O Google utiliza os Core Web Vitals como sinais de experiência na avaliação das páginas.
Por exemplo:
Dois sites estão disputando posições para a keyword "abacaxi".
O primeiro site demora 5 segundos para exibir o conteúdo principal (LCP).
O segundo site tem um conteúdo similar, mas demora apenas 1,8 segundo.
O segundo site PODE ter uma vantagem competitiva no posicionamento do Google.
Note que usei o PODE, pois existem diversos outros fatores que determinam o posicionamento.
O CLS segue um caminho parecido, mas diz muito sobre o quanto o seu site "se mexe" durante o carregamento. Se o CLS é alto, significa que seu site não é visualmente estável, fazendo com que elementos mudem de posição inesperadamente.
Bom, voltando ao bug...
O que descobri é que, na nossa versão mobile, o problema era praticamente imperceptível a olho nu. Mas, rodando algumas ferramentas, como o Lighthouse, @ubersuggest_seo e analisando os Web Vitals no Sentry, percebi que o mobile estava apresentando um erro de hidratação.
Além disso, o menu aparecia aberto nos primeiros segundos da renderização e depois fechava.
Pensa comigo: esse comportamento impactava diretamente o LCP e o CLS.
O menu abria e depois fechava. Com isso, o navegador precisava lidar com uma renderização inicial diferente do estado esperado (menu fechado, que é o comportamento padrão no mobile), atrasando a estabilização e a exibição do conteúdo principal (LCP).
E o CLS? O menu abria e fechava, provocando uma mudança visual significativa logo no primeiro carregamento.
O erro de hidratação também fazia a página passar por uma nova renderização, contribuindo para o problema de estabilidade visual e performance.
Fechando: depois de resolver o bug e garantir que o menu permanecesse fechado desde o início, saímos de:
LCP: 11,1s → 1s
CLS: 0,303 → 0,073
Tudo isso com uma PR de apenas 4 arquivos e 23 linhas alteradas.
Às vezes, não precisamos de uma grande refatoração, de uma nova biblioteca para resolver problemas de performance.
Precisamos olhar para os detalhes.
Uma das coisas que eu mais curto nessa nova era da IA é que o time consegue resolver débito técnico, time consegue automatizar processos....
A gente conseguiu diminuir tempo de pipeline, melhoramos performance do app.
Nada disso era possível sem que o dev parasse de fazer outras coisas de produto. Hoje ele faz em paralelo.
tsu.node ➔ tsunode.com retweeted
Talking to a friend today, I remembered when I asked for a raise (more than ten years ago, just for the sake of context). I explained that it was becoming hard to afford basic necessities like rent and food.
My boss’s response? She told me I needed to change my lifestyle and lower my standard of living.
At the time, I took it as a 'lesson of wisdom.' Today, I realize how outrageous that comment actually was.
She was shifting the blame onto me for the garbage salary she was paying.
If you are a leader, don't ever make comments like that. True leadership means paying a living wage, not telling your people to starve their standards.
Did you live through something similar to that? And how was your reaction?
tsu.node ➔ tsunode.com retweeted
Replying to @ubersuggest_seo
@ubersuggest_seo has a new home! 🚀
Today, we completed a full domain migration, and we’re officially on ubersuggest.com.
There were several learnings along the way, including one interesting Google feature that I’ll share in the comments.
Whenever we make changes like these, we need to focus on two things: minimizing the impact on users and ensuring we can track the changes in our data.
An incorrect status code can hurt your SEO. A misconfigured tag can impact your analytics. That’s why it’s essential to look at the entire process end to end.
Beyond all the details around redirects and status codes, here are a few things worth keeping in mind:
GA4: You can keep the same GA4 property; you just need to make a few adjustments. Even more interestingly, if you’re doing a gradual migration, you can use the same tag across both domains with the right configuration.
Google Search Console (GSC): You can notify Google that you’ve migrated to a new domain. You just need to verify both properties in Search Console and submit the change of address.
Password autofill: Finally, even when moving to a completely different domain, you can help browsers preserve users’ saved login information and password autofill experience across the transition. I’ll share the link in the comments.
A domain migration involves much more than simply pointing one domain to another. Every detail matters! 🔍
Replying to @ubersuggest_seo
@ubersuggest_seo has a new home! 🚀
Today, we completed a full domain migration, and we’re officially on ubersuggest.com.
There were several learnings along the way, including one interesting Google feature that I’ll share in the comments.
Whenever we make changes like these, we need to focus on two things: minimizing the impact on users and ensuring we can track the changes in our data.
An incorrect status code can hurt your SEO. A misconfigured tag can impact your analytics. That’s why it’s essential to look at the entire process end to end.
Beyond all the details around redirects and status codes, here are a few things worth keeping in mind:
GA4: You can keep the same GA4 property; you just need to make a few adjustments. Even more interestingly, if you’re doing a gradual migration, you can use the same tag across both domains with the right configuration.
Google Search Console (GSC): You can notify Google that you’ve migrated to a new domain. You just need to verify both properties in Search Console and submit the change of address.
Password autofill: Finally, even when moving to a completely different domain, you can help browsers preserve users’ saved login information and password autofill experience across the transition. I’ll share the link in the comments.
A domain migration involves much more than simply pointing one domain to another. Every detail matters! 🔍
tsu.node ➔ tsunode.com retweeted
Did you know that Google may only process the first 2 MB of an HTML file when crawling a page?
Let's say your page's HTML is 3 MB and contains three sections: Hero, About, and FAQ.
For simplicity, imagine each section accounts for 1 MB of HTML.
In this hypothetical scenario, Google may process the Hero and About sections, while the FAQ section falls beyond the 2 MB limit.
This means that even if your website is 100% static, Google might not be processing all your content. If important content falls beyond that limit, you could be missing opportunities to rank for highly relevant keywords.
Keep in mind: this limit applies to the HTML file itself, not the total page size including images, CSS, and JavaScript.
I'll share in the thread below how to measure your HTML size and identify potential bottlenecks. 👇
Did you know that Google may only process the first 2 MB of an HTML file when crawling a page?
Let's say your page's HTML is 3 MB and contains three sections: Hero, About, and FAQ.
For simplicity, imagine each section accounts for 1 MB of HTML.
In this hypothetical scenario, Google may process the Hero and About sections, while the FAQ section falls beyond the 2 MB limit.
This means that even if your website is 100% static, Google might not be processing all your content. If important content falls beyond that limit, you could be missing opportunities to rank for highly relevant keywords.
Keep in mind: this limit applies to the HTML file itself, not the total page size including images, CSS, and JavaScript.
I'll share in the thread below how to measure your HTML size and identify potential bottlenecks. 👇
curl -sL tsunode.com/ -o /dev/null \
-w 'Downloaded: %{size_download} bytes\n' |
awk '{printf "%.2f MB\n", $2/1000000}'
You can also run a Site Audit using ubersuggest.com to get valuable insights into what might be preventing your website from ranking higher.
cc: @ubersuggest_seo
Eu vendo uma aula do @FilipeDeschamps de Github e de repente o Github cai.
Acho que ele sabe de alguma coisa
Apple Car play não tem slack, mas tem Claude.
Agr eu tô dirigindo e pergunto se tem alguma mensagem recente via Claude mcp 😂
Ganhei pouco mais de R$ 300.000 nos últimos 3 meses fazendo bug bounty.
Deem um like ou comentário lá, pfv, pretendo usar meu Linkedin pra novos projetos (inclui divulgar detalhes das falhas de segurança) e ter interações vai me ajudar muito!!!
lnkd.in/p/dFaWAvDU
Obg 🙏










