<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7470609498227179578</id><updated>2026-03-06T00:49:01.223+00:00</updated><category term="javascript"/><category term="nodejs"/><category term="react"/><category term="angular"/><category term="css"/><category term="mobile"/><category term="angularjs"/><category term="php"/><category term="git"/><category term="asp.net"/><category term="CI/CD"/><category term="html"/><category term="mongodb"/><title type='text'>teklinks</title><subtitle type='html'>tech/webdev magazine</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='https://teklinks.andrejnsimoes.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/7470609498227179578/posts/default'/><link rel='alternate' type='text/html' href='https://teklinks.andrejnsimoes.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='https://www.blogger.com/feeds/7470609498227179578/posts/default?start-index=26&amp;max-results=25'/><author><name>Teklinks</name><uri>http://www.blogger.com/profile/04628333596365452977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>13071</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7470609498227179578.post-336954583942398533</id><published>2025-07-08T13:36:00.001+01:00</published><updated>2025-07-08T13:36:59.389+01:00</updated><title type='text'>Not an option, but a necessity: How organizations are adopting and implementing AI internally</title><content type='html'>&lt;div class=&quot;ajs_post_separator&quot;&gt;&lt;a href=&quot;https://cdn.stackoverflow.co/images/jo7n4k8s/production/e6e802d62c08b00550a760931e03862ef78634ab-1200x630.png?w=1200&amp;h=630&amp;auto=format&amp;dpr=2&quot; class=&quot;ajs_post_img_link&quot;&gt;&lt;img class=&quot;ajs_post_img&quot; onerror=&quot;this.src=&#39;https://lh3.googleusercontent.com/-xXiVLUL1PQg/VJ8HJGh11vI/AAAAAAAAFbQ/IP2Vky0DlOo/w498-h255-no/3bd01cb.jpg&#39;&quot; src=&quot;https://cdn.stackoverflow.co/images/jo7n4k8s/production/e6e802d62c08b00550a760931e03862ef78634ab-1200x630.png?w=1200&amp;h=630&amp;auto=format&amp;dpr=2&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
AI is no longer just a luxury for the most tech savvy companies — it&#39;s now a necessity for organizational transformation. How are real teams successfully leveraging and innovating with these new tools? Organizations have entered an era where AI adoption is key to creating internal transformation.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://stackoverflow.blog/2025/06/25/not-an-option-but-a-necessity-how-organizations-are-adopting-and-implementing-ai-internally/&quot; class=&quot;ajs_post_fullarticle_link&quot;&gt;Full article&lt;/a&gt;&lt;br /&gt;
</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/7470609498227179578/posts/default/336954583942398533'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/7470609498227179578/posts/default/336954583942398533'/><link rel='alternate' type='text/html' href='https://teklinks.andrejnsimoes.com/2025/07/not-option-but-necessity-how.html' title='Not an option, but a necessity: How organizations are adopting and implementing AI internally'/><author><name>Teklinks</name><uri>http://www.blogger.com/profile/04628333596365452977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-7470609498227179578.post-4004588919028471568</id><published>2025-07-08T13:21:00.003+01:00</published><updated>2025-07-08T13:21:48.079+01:00</updated><title type='text'>Remixing Shopify&#39;s Admin: How We Made It 30% Faster and AI-Ready</title><content type='html'>&lt;div class=&quot;ajs_post_separator&quot;&gt;&lt;a href=&quot;https://cdn.shopify.com/s/files/1/0779/4361/articles/shopp-e-d30hobakdccj9nww59elcf69-shopify-dashboard-with-code-overlay-and-data-elements_copy_a2df0587-8de6-44dd-87a4-2e8eb55a6d89.png?v=1751315770&quot; class=&quot;ajs_post_img_link&quot;&gt;&lt;img class=&quot;ajs_post_img&quot; onerror=&quot;this.src=&#39;https://lh3.googleusercontent.com/-xXiVLUL1PQg/VJ8HJGh11vI/AAAAAAAAFbQ/IP2Vky0DlOo/w498-h255-no/3bd01cb.jpg&#39;&quot; src=&quot;https://cdn.shopify.com/s/files/1/0779/4361/articles/shopp-e-d30hobakdccj9nww59elcf69-shopify-dashboard-with-code-overlay-and-data-elements_copy_a2df0587-8de6-44dd-87a4-2e8eb55a6d89.png?v=1751315770&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
We just made Shopify&#39;s Admin 30% faster while setting it up for AI superpowers. Behind the scenes, we completely transformed how admin.shopify.com works—rebuilding a system that powers 67 million daily page views and merchants live inside to run their business. Here&#39;s how we did it.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://shopify.engineering/remixing-admin&quot; class=&quot;ajs_post_fullarticle_link&quot;&gt;Full article&lt;/a&gt;&lt;br /&gt;
</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/7470609498227179578/posts/default/4004588919028471568'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/7470609498227179578/posts/default/4004588919028471568'/><link rel='alternate' type='text/html' href='https://teklinks.andrejnsimoes.com/2025/07/remixing-shopifys-admin-how-we-made-it.html' title='Remixing Shopify&#39;s Admin: How We Made It 30% Faster and AI-Ready'/><author><name>Teklinks</name><uri>http://www.blogger.com/profile/04628333596365452977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-7470609498227179578.post-3902773538166918654</id><published>2025-07-08T13:21:00.001+01:00</published><updated>2025-07-08T13:21:43.590+01:00</updated><title type='text'>Agentic Engineering in Action</title><content type='html'>&lt;div class=&quot;ajs_post_separator&quot;&gt;&lt;a href=&quot;https://zed.dev/img/post/agentic-engineering/mitchell.webp&quot; class=&quot;ajs_post_img_link&quot;&gt;&lt;img class=&quot;ajs_post_img&quot; onerror=&quot;this.src=&#39;https://lh3.googleusercontent.com/-xXiVLUL1PQg/VJ8HJGh11vI/AAAAAAAAFbQ/IP2Vky0DlOo/w498-h255-no/3bd01cb.jpg&#39;&quot; src=&quot;https://zed.dev/img/post/agentic-engineering/mitchell.webp&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
In this session, Mitchell Hashimoto walks Richard Feldman through his approach to using AI when building Ghostty. Specifically they went through this recent commit in detail. You can watch their chat on YouTube or read below for some selected quotes.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://zed.dev/blog/agentic-engineering-with-mitchell-hashimoto&quot; class=&quot;ajs_post_fullarticle_link&quot;&gt;Full article&lt;/a&gt;&lt;br /&gt;
</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/7470609498227179578/posts/default/3902773538166918654'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/7470609498227179578/posts/default/3902773538166918654'/><link rel='alternate' type='text/html' href='https://teklinks.andrejnsimoes.com/2025/07/agentic-engineering-in-action.html' title='Agentic Engineering in Action'/><author><name>Teklinks</name><uri>http://www.blogger.com/profile/04628333596365452977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-7470609498227179578.post-839762409192912418</id><published>2025-07-07T08:49:00.006+01:00</published><updated>2025-07-07T08:50:01.559+01:00</updated><title type='text'>ChatGPT May Be Eroding Critical Thinking Skills</title><content type='html'>&lt;div class=&quot;ajs_post_separator&quot;&gt;&lt;a href=&quot;https://api.time.com/wp-content/uploads/2025/06/Figure1_YourBrainonChatGPT.png&quot; class=&quot;ajs_post_img_link&quot;&gt;&lt;img class=&quot;ajs_post_img&quot; onerror=&quot;this.src=&#39;https://lh3.googleusercontent.com/-xXiVLUL1PQg/VJ8HJGh11vI/AAAAAAAAFbQ/IP2Vky0DlOo/w498-h255-no/3bd01cb.jpg&#39;&quot; src=&quot;https://api.time.com/wp-content/uploads/2025/06/Figure1_YourBrainonChatGPT.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Does ChatGPT harm critical thinking abilities? A new study from researchers at MIT’s Media Lab has returned some concerning results. The study divided 54 subjects—18 to 39 year-olds from the Boston area—into three groups, and asked them to write several SAT essays using OpenAI’s ChatGPT, Google’s search engine, and nothing at all, respectively. &lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://time.com/7295195/ai-chatgpt-google-learning-school/&quot; class=&quot;ajs_post_fullarticle_link&quot;&gt;Full article&lt;/a&gt;&lt;br /&gt;
</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/7470609498227179578/posts/default/839762409192912418'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/7470609498227179578/posts/default/839762409192912418'/><link rel='alternate' type='text/html' href='https://teklinks.andrejnsimoes.com/2025/07/chatgpt-may-be-eroding-critical.html' title='ChatGPT May Be Eroding Critical Thinking Skills'/><author><name>Teklinks</name><uri>http://www.blogger.com/profile/04628333596365452977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-7470609498227179578.post-6114894127216153543</id><published>2025-07-07T08:49:00.005+01:00</published><updated>2025-07-07T08:49:48.131+01:00</updated><title type='text'>Proof of Human. Creating the invisible Turing Test for the Internet</title><content type='html'>&lt;div class=&quot;ajs_post_separator&quot;&gt;&lt;a href=&quot;https://research.roundtable.ai/proof-of-human/temp-plots-v3.png&quot; class=&quot;ajs_post_img_link&quot;&gt;&lt;img class=&quot;ajs_post_img&quot; onerror=&quot;this.src=&#39;https://lh3.googleusercontent.com/-xXiVLUL1PQg/VJ8HJGh11vI/AAAAAAAAFbQ/IP2Vky0DlOo/w498-h255-no/3bd01cb.jpg&#39;&quot; src=&quot;https://research.roundtable.ai/proof-of-human/temp-plots-v3.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Proof of Human. Creating the invisible Turing Test for the Internet AI systems have detectable behavioral signatures that can be used to improve bot detection. Roundtable&#39;s Proof-of-Human API verifies proof-of-human invisibly, continuously, and instantaneously.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://research.roundtable.ai/proof-of-human/?lid=qr63i96s3umk&quot; class=&quot;ajs_post_fullarticle_link&quot;&gt;Full article&lt;/a&gt;&lt;br /&gt;
</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/7470609498227179578/posts/default/6114894127216153543'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/7470609498227179578/posts/default/6114894127216153543'/><link rel='alternate' type='text/html' href='https://teklinks.andrejnsimoes.com/2025/07/proof-of-human-creating-invisible.html' title='Proof of Human. Creating the invisible Turing Test for the Internet'/><author><name>Teklinks</name><uri>http://www.blogger.com/profile/04628333596365452977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-7470609498227179578.post-7336388643546908001</id><published>2025-07-07T08:49:00.001+01:00</published><updated>2025-07-07T08:49:03.469+01:00</updated><title type='text'>React Still Feels Insane And No One Is Talking About It</title><content type='html'>&lt;div class=&quot;ajs_post_separator&quot;&gt;&lt;a href=&quot;https://mbrizic.com/images/use-effect-01.png&quot; class=&quot;ajs_post_img_link&quot;&gt;&lt;img class=&quot;ajs_post_img&quot; onerror=&quot;this.src=&#39;https://lh3.googleusercontent.com/-xXiVLUL1PQg/VJ8HJGh11vI/AAAAAAAAFbQ/IP2Vky0DlOo/w498-h255-no/3bd01cb.jpg&#39;&quot; src=&quot;https://mbrizic.com/images/use-effect-01.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Recently, I did a side project that I wrote about in the other post. As part of it, I had what was supposed to be just a few paragraphs on how React sucks - but I just couldn&#39;t stop writing about it.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://mbrizic.com/blog/react-is-insane/&quot; class=&quot;ajs_post_fullarticle_link&quot;&gt;Full article&lt;/a&gt;&lt;br /&gt;
</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/7470609498227179578/posts/default/7336388643546908001'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/7470609498227179578/posts/default/7336388643546908001'/><link rel='alternate' type='text/html' href='https://teklinks.andrejnsimoes.com/2025/07/react-still-feels-insane-and-no-one-is.html' title='React Still Feels Insane And No One Is Talking About It'/><author><name>Teklinks</name><uri>http://www.blogger.com/profile/04628333596365452977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-7470609498227179578.post-3307960143121421336</id><published>2025-07-04T00:40:00.001+01:00</published><updated>2025-07-04T00:40:24.092+01:00</updated><title type='text'>Progressive JSON</title><content type='html'>&lt;div class=&quot;ajs_post_separator&quot;&gt;&lt;a href=&quot;https://overreacted.io/progressive-json/opengraph-image?5b0b970dfd19bb8c&quot; class=&quot;ajs_post_img_link&quot;&gt;&lt;img class=&quot;ajs_post_img&quot; onerror=&quot;this.src=&#39;https://lh3.googleusercontent.com/-xXiVLUL1PQg/VJ8HJGh11vI/AAAAAAAAFbQ/IP2Vky0DlOo/w498-h255-no/3bd01cb.jpg&#39;&quot; src=&quot;https://overreacted.io/progressive-json/opengraph-image?5b0b970dfd19bb8c&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Do you know about Progressive JPEGs? Here’s a nice explanation of what a Progressive JPEG is. The idea is that instead of loading the image top to bottom, the image instead is fuzzy at first and then progressively becomes more crisp. What if we apply the same idea to transferring JSON?&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://overreacted.io/progressive-json/?ck_subscriber_id=194259916&quot; class=&quot;ajs_post_fullarticle_link&quot;&gt;Full article&lt;/a&gt;&lt;br /&gt;
</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/7470609498227179578/posts/default/3307960143121421336'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/7470609498227179578/posts/default/3307960143121421336'/><link rel='alternate' type='text/html' href='https://teklinks.andrejnsimoes.com/2025/07/progressive-json.html' title='Progressive JSON'/><author><name>Teklinks</name><uri>http://www.blogger.com/profile/04628333596365452977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-7470609498227179578.post-5771163016173821523</id><published>2025-07-02T15:37:00.001+01:00</published><updated>2025-07-02T15:37:52.916+01:00</updated><title type='text'>What&#39;s coming to JavaScript</title><content type='html'>&lt;div class=&quot;ajs_post_separator&quot;&gt;&lt;a href=&quot;https://deno.com/blog/updates-from-tc39/og.png&quot; class=&quot;ajs_post_img_link&quot;&gt;&lt;img class=&quot;ajs_post_img&quot; onerror=&quot;this.src=&#39;https://lh3.googleusercontent.com/-xXiVLUL1PQg/VJ8HJGh11vI/AAAAAAAAFbQ/IP2Vky0DlOo/w498-h255-no/3bd01cb.jpg&#39;&quot; src=&quot;https://deno.com/blog/updates-from-tc39/og.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Deno is a JavaScript company, and we believe JavaScript should be simple, powerful, and fun. Deno aims to modernize JavaScript and its tooling, with native TypeScript support, and bridging the gap between server-side and browser JavaScript with web standard APIs.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://deno.com/blog/updates-from-tc39&quot; class=&quot;ajs_post_fullarticle_link&quot;&gt;Full article&lt;/a&gt;&lt;br /&gt;
</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/7470609498227179578/posts/default/5771163016173821523'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/7470609498227179578/posts/default/5771163016173821523'/><link rel='alternate' type='text/html' href='https://teklinks.andrejnsimoes.com/2025/07/whats-coming-to-javascript.html' title='What&#39;s coming to JavaScript'/><author><name>Teklinks</name><uri>http://www.blogger.com/profile/04628333596365452977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-7470609498227179578.post-311584526127202688</id><published>2025-07-02T15:36:00.001+01:00</published><updated>2025-07-02T15:36:35.116+01:00</updated><title type='text'>Introducing Roast: Structured AI Workflows Made Easy</title><content type='html'>&lt;div class=&quot;ajs_post_separator&quot;&gt;&lt;a href=&quot;https://cdn.shopify.com/s/files/1/0779/4361/articles/shopp-e-kg6x9zl23m18lncq0w8pnizj-happy-flame-on-grill_611f47ef-530f-430e-8cd2-173f537727f9.png?v=1750255191&quot; class=&quot;ajs_post_img_link&quot;&gt;&lt;img class=&quot;ajs_post_img&quot; onerror=&quot;this.src=&#39;https://lh3.googleusercontent.com/-xXiVLUL1PQg/VJ8HJGh11vI/AAAAAAAAFbQ/IP2Vky0DlOo/w498-h255-no/3bd01cb.jpg&#39;&quot; src=&quot;https://cdn.shopify.com/s/files/1/0779/4361/articles/shopp-e-kg6x9zl23m18lncq0w8pnizj-happy-flame-on-grill_611f47ef-530f-430e-8cd2-173f537727f9.png?v=1750255191&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
This past year, we started exploring how AI agents could boost developer productivity. In thinking about big developer problems such as flaky tests or lack of test coverage, we found immediate opportunities in grading and optimizing unit tests at scale, with minimal human intervention.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://shopify.engineering/introducing-roast&quot; class=&quot;ajs_post_fullarticle_link&quot;&gt;Full article&lt;/a&gt;&lt;br /&gt;
</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/7470609498227179578/posts/default/311584526127202688'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/7470609498227179578/posts/default/311584526127202688'/><link rel='alternate' type='text/html' href='https://teklinks.andrejnsimoes.com/2025/07/introducing-roast-structured-ai.html' title='Introducing Roast: Structured AI Workflows Made Easy'/><author><name>Teklinks</name><uri>http://www.blogger.com/profile/04628333596365452977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-7470609498227179578.post-1207571428541234203</id><published>2025-07-02T15:18:00.001+01:00</published><updated>2025-07-02T15:18:46.497+01:00</updated><title type='text'>How Staff+ Engineers Can Develop Strategic Thinking</title><content type='html'>&lt;div class=&quot;ajs_post_separator&quot;&gt;&lt;a href=&quot;https://www.infoq.com/articles/staff-plus-strategic-thinking/articles/staff-plus-strategic-thinking/en/resources/112figure-1-1749196666199.jpg&quot; class=&quot;ajs_post_img_link&quot;&gt;&lt;img class=&quot;ajs_post_img&quot; onerror=&quot;this.src=&#39;https://lh3.googleusercontent.com/-xXiVLUL1PQg/VJ8HJGh11vI/AAAAAAAAFbQ/IP2Vky0DlOo/w498-h255-no/3bd01cb.jpg&#39;&quot; src=&quot;https://www.infoq.com/articles/staff-plus-strategic-thinking/articles/staff-plus-strategic-thinking/en/resources/112figure-1-1749196666199.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Key Takeaways Strategic thinking is more than just a skill - it’s a mindset. It’s about creating the framework to drive your organization’s long-term success by continuously adapting to new challenges, fostering innovation, and sharpening this muscle over time.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://www.infoq.com/articles/staff-plus-strategic-thinking/&quot; class=&quot;ajs_post_fullarticle_link&quot;&gt;Full article&lt;/a&gt;&lt;br /&gt;
</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/7470609498227179578/posts/default/1207571428541234203'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/7470609498227179578/posts/default/1207571428541234203'/><link rel='alternate' type='text/html' href='https://teklinks.andrejnsimoes.com/2025/07/how-staff-engineers-can-develop.html' title='How Staff+ Engineers Can Develop Strategic Thinking'/><author><name>Teklinks</name><uri>http://www.blogger.com/profile/04628333596365452977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-7470609498227179578.post-2004722777581552502</id><published>2025-06-30T10:31:00.005+01:00</published><updated>2025-06-30T10:31:17.541+01:00</updated><title type='text'>The State of React and the Community in 2025</title><content type='html'>&lt;div class=&quot;ajs_post_separator&quot;&gt;&lt;a href=&quot;https://blog.isquaredsoftware.com/images/2025-06-react-community-2025/react-frameworks-usage.png&quot; class=&quot;ajs_post_img_link&quot;&gt;&lt;img class=&quot;ajs_post_img&quot; onerror=&quot;this.src=&#39;https://lh3.googleusercontent.com/-xXiVLUL1PQg/VJ8HJGh11vI/AAAAAAAAFbQ/IP2Vky0DlOo/w498-h255-no/3bd01cb.jpg&#39;&quot; src=&quot;https://blog.isquaredsoftware.com/images/2025-06-react-community-2025/react-frameworks-usage.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Detailed thoughts on how React has been developed over time, and explanations for common community confusion and concerns Introduction 🔗︎ Today, the state of React and its ecosystem is complicated and fractured, with a mixture of successes, skepticism, and contention.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blog.isquaredsoftware.com/2025/06/react-community-2025/&quot; class=&quot;ajs_post_fullarticle_link&quot;&gt;Full article&lt;/a&gt;&lt;br /&gt;
</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/7470609498227179578/posts/default/2004722777581552502'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/7470609498227179578/posts/default/2004722777581552502'/><link rel='alternate' type='text/html' href='https://teklinks.andrejnsimoes.com/2025/06/the-state-of-react-and-community-in-2025.html' title='The State of React and the Community in 2025'/><author><name>Teklinks</name><uri>http://www.blogger.com/profile/04628333596365452977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-7470609498227179578.post-61320085579251223</id><published>2025-06-30T10:31:00.003+01:00</published><updated>2025-06-30T10:31:14.403+01:00</updated><title type='text'>`document.currentScript` is more useful than I thought.</title><content type='html'>&lt;div class=&quot;ajs_post_separator&quot;&gt;&lt;a href=&quot;https://picperf.io/https://cms.macarthur.me/content/images/2025/06/CleanShot-2025-06-01-at-16.02.10@2x.png?sitemap_path=/posts/current-script&quot; class=&quot;ajs_post_img_link&quot;&gt;&lt;img class=&quot;ajs_post_img&quot; onerror=&quot;this.src=&#39;https://lh3.googleusercontent.com/-xXiVLUL1PQg/VJ8HJGh11vI/AAAAAAAAFbQ/IP2Vky0DlOo/w498-h255-no/3bd01cb.jpg&#39;&quot; src=&quot;https://picperf.io/https://cms.macarthur.me/content/images/2025/06/CleanShot-2025-06-01-at-16.02.10@2x.png?sitemap_path=/posts/current-script&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Every so often, I stumble across a well-established JavaScript API in the browser that I probably should&#39;ve known about years ago. Examples include the window.screen property and the CSS.supports() method. To my relief, I&#39;ve realized I&#39;m not always alone in my ignorance.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://macarthur.me/posts/current-script&quot; class=&quot;ajs_post_fullarticle_link&quot;&gt;Full article&lt;/a&gt;&lt;br /&gt;
</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/7470609498227179578/posts/default/61320085579251223'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/7470609498227179578/posts/default/61320085579251223'/><link rel='alternate' type='text/html' href='https://teklinks.andrejnsimoes.com/2025/06/documentcurrentscript-is-more-useful.html' title='`document.currentScript` is more useful than I thought.'/><author><name>Teklinks</name><uri>http://www.blogger.com/profile/04628333596365452977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-7470609498227179578.post-804106833098758985</id><published>2025-06-30T10:31:00.001+01:00</published><updated>2025-06-30T10:31:11.400+01:00</updated><title type='text'>How does Kafka know what was the last message it processed? Deep dive into Offset Tracking</title><content type='html'>&lt;div class=&quot;ajs_post_separator&quot;&gt;&lt;a href=&quot;https://substackcdn.com/image/fetch/w_1200,h_600,c_fill,f_jpg,q_auto:good,fl_progressive:steep,g_auto/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14e54070-c442-4bd1-9b51-80ee8b297550_728x408.jpeg&quot; class=&quot;ajs_post_img_link&quot;&gt;&lt;img class=&quot;ajs_post_img&quot; onerror=&quot;this.src=&#39;https://lh3.googleusercontent.com/-xXiVLUL1PQg/VJ8HJGh11vI/AAAAAAAAFbQ/IP2Vky0DlOo/w498-h255-no/3bd01cb.jpg&#39;&quot; src=&quot;https://substackcdn.com/image/fetch/w_1200,h_600,c_fill,f_jpg,q_auto:good,fl_progressive:steep,g_auto/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14e54070-c442-4bd1-9b51-80ee8b297550_728x408.jpeg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Let’s say it’s Friday. Not party Friday, but Black Friday. You’re working on a busy e-commerce system that handles thousands of orders per minute. Suddenly, the service responsible for billing processing crashes. Until it recovers, new orders are piling up.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://www.architecture-weekly.com/p/how-does-kafka-know-what-was-the&quot; class=&quot;ajs_post_fullarticle_link&quot;&gt;Full article&lt;/a&gt;&lt;br /&gt;
</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/7470609498227179578/posts/default/804106833098758985'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/7470609498227179578/posts/default/804106833098758985'/><link rel='alternate' type='text/html' href='https://teklinks.andrejnsimoes.com/2025/06/how-does-kafka-know-what-was-last.html' title='How does Kafka know what was the last message it processed? Deep dive into Offset Tracking'/><author><name>Teklinks</name><uri>http://www.blogger.com/profile/04628333596365452977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-7470609498227179578.post-8285065827637849339</id><published>2025-06-27T11:03:00.006+01:00</published><updated>2025-06-27T11:04:53.539+01:00</updated><title type='text'>Connect any React application to an MCP server in three lines of code</title><content type='html'>&lt;div class=&quot;ajs_post_separator&quot;&gt;&lt;a href=&quot;https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3SYJOvNUqnrtTSKCkjxaxn/57151661ce2b97eb30ad11d93ea822ac/OG_Share_2024__58_.png&quot; class=&quot;ajs_post_img_link&quot;&gt;&lt;img class=&quot;ajs_post_img&quot; onerror=&quot;this.src=&#39;https://lh3.googleusercontent.com/-xXiVLUL1PQg/VJ8HJGh11vI/AAAAAAAAFbQ/IP2Vky0DlOo/w498-h255-no/3bd01cb.jpg&#39;&quot; src=&quot;https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3SYJOvNUqnrtTSKCkjxaxn/57151661ce2b97eb30ad11d93ea822ac/OG_Share_2024__58_.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
You can deploy a remote Model Context Protocol (MCP) server on Cloudflare in just one-click. Don’t believe us? Click the button below. This will get you started with a remote MCP server that supports the latest MCP standards and is the reason why thousands of remote MCP servers have been deployed on Cloudflare, including ones from companies like Atlassian, Linear, PayPal, and more. &lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blog.cloudflare.com/connect-any-react-application-to-an-mcp-server-in-three-lines-of-code/&quot; class=&quot;ajs_post_fullarticle_link&quot;&gt;Full article&lt;/a&gt;&lt;br /&gt;
</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/7470609498227179578/posts/default/8285065827637849339'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/7470609498227179578/posts/default/8285065827637849339'/><link rel='alternate' type='text/html' href='https://teklinks.andrejnsimoes.com/2025/06/connect-any-react-application-to-mcp.html' title='Connect any React application to an MCP server in three lines of code'/><author><name>Teklinks</name><uri>http://www.blogger.com/profile/04628333596365452977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-7470609498227179578.post-2696362099939961670</id><published>2025-06-27T11:03:00.005+01:00</published><updated>2025-06-27T11:04:21.080+01:00</updated><title type='text'>How we built our multi-agent research system</title><content type='html'>&lt;div class=&quot;ajs_post_separator&quot;&gt;&lt;a href=&quot;https://cdn.sanity.io/images/4zrzovbb/website/5cf046fff69b847bfa78c12723dd466b285c0218-2400x1260.png&quot; class=&quot;ajs_post_img_link&quot;&gt;&lt;img class=&quot;ajs_post_img&quot; onerror=&quot;this.src=&#39;https://lh3.googleusercontent.com/-xXiVLUL1PQg/VJ8HJGh11vI/AAAAAAAAFbQ/IP2Vky0DlOo/w498-h255-no/3bd01cb.jpg&#39;&quot; src=&quot;https://cdn.sanity.io/images/4zrzovbb/website/5cf046fff69b847bfa78c12723dd466b285c0218-2400x1260.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Claude now has Research capabilities that allow it to search across the web, Google Workspace, and any integrations to accomplish complex tasks. The journey of this multi-agent system from prototype to production taught us critical lessons about system architecture, tool design, and prompt engineering. &lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://www.anthropic.com/engineering/built-multi-agent-research-system?utm_source=alphasignal&quot; class=&quot;ajs_post_fullarticle_link&quot;&gt;Full article&lt;/a&gt;&lt;br /&gt;
</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/7470609498227179578/posts/default/2696362099939961670'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/7470609498227179578/posts/default/2696362099939961670'/><link rel='alternate' type='text/html' href='https://teklinks.andrejnsimoes.com/2025/06/how-we-built-our-multi-agent-research.html' title='How we built our multi-agent research system'/><author><name>Teklinks</name><uri>http://www.blogger.com/profile/04628333596365452977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-7470609498227179578.post-4774988058980067283</id><published>2025-06-27T11:02:00.001+01:00</published><updated>2025-06-27T11:02:59.284+01:00</updated><title type='text'>Why you should never default to Microservices</title><content type='html'>&lt;div class=&quot;ajs_post_separator&quot;&gt;&lt;a href=&quot;https://miro.medium.com/v2/resize:fill:88:88/1*V5Rf8tgKtVi6iBt08CQCqQ.jpeg&quot; class=&quot;ajs_post_img_link&quot;&gt;&lt;img class=&quot;ajs_post_img&quot; onerror=&quot;this.src=&#39;https://lh3.googleusercontent.com/-xXiVLUL1PQg/VJ8HJGh11vI/AAAAAAAAFbQ/IP2Vky0DlOo/w498-h255-no/3bd01cb.jpg&#39;&quot; src=&quot;https://miro.medium.com/v2/resize:fill:88:88/1*V5Rf8tgKtVi6iBt08CQCqQ.jpeg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
There’s a prevailing idea that monoliths create bad code. Monoliths don’t create bad code. Developers do. Splitting a monolith might improve code quality by creating strong boundaries between different domains. But:&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://levelup.gitconnected.com/why-you-should-never-default-to-microservices-c952903fbcb6&quot; class=&quot;ajs_post_fullarticle_link&quot;&gt;Full article&lt;/a&gt;&lt;br /&gt;
</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/7470609498227179578/posts/default/4774988058980067283'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/7470609498227179578/posts/default/4774988058980067283'/><link rel='alternate' type='text/html' href='https://teklinks.andrejnsimoes.com/2025/06/why-you-should-never-default-to.html' title='Why you should never default to Microservices'/><author><name>Teklinks</name><uri>http://www.blogger.com/profile/04628333596365452977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-7470609498227179578.post-8121225391917838461</id><published>2025-06-26T09:12:00.001+01:00</published><updated>2025-06-26T09:12:01.218+01:00</updated><title type='text'>On How Long it Takes to Know if a Job is Right for You or Not</title><content type='html'>&lt;div class=&quot;ajs_post_separator&quot;&gt;&lt;a href=&quot;https://i0.wp.com/charity.wtf/wp-content/uploads/2024/12/stickers-21.jpeg?resize=300%2C144&amp;ssl=1&quot; class=&quot;ajs_post_img_link&quot;&gt;&lt;img class=&quot;ajs_post_img&quot; onerror=&quot;this.src=&#39;https://lh3.googleusercontent.com/-xXiVLUL1PQg/VJ8HJGh11vI/AAAAAAAAFbQ/IP2Vky0DlOo/w498-h255-no/3bd01cb.jpg&#39;&quot; src=&quot;https://i0.wp.com/charity.wtf/wp-content/uploads/2024/12/stickers-21.jpeg?resize=300%2C144&amp;ssl=1&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
A few eagle-eyed readers have noticed that it’s been 4 weeks since my last entry in what I have been thinking of as my “niblet series” — one small piece per week, 1000 words or less, for the next three months. This is true.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://charity.wtf/2025/06/08/on-how-long-it-takes-to-know-if-a-job-is-right-for-you-or-not/&quot; class=&quot;ajs_post_fullarticle_link&quot;&gt;Full article&lt;/a&gt;&lt;br /&gt;
</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/7470609498227179578/posts/default/8121225391917838461'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/7470609498227179578/posts/default/8121225391917838461'/><link rel='alternate' type='text/html' href='https://teklinks.andrejnsimoes.com/2025/06/on-how-long-it-takes-to-know-if-job-is.html' title='On How Long it Takes to Know if a Job is Right for You or Not'/><author><name>Teklinks</name><uri>http://www.blogger.com/profile/04628333596365452977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-7470609498227179578.post-8636216128876658486</id><published>2025-06-26T09:11:00.001+01:00</published><updated>2025-06-26T09:11:57.844+01:00</updated><title type='text'>A short history of web bots and bot detection techniques</title><content type='html'>&lt;div class=&quot;ajs_post_separator&quot;&gt;&lt;a href=&quot;https://sinja.io/images/bot-or-not/tcp-handshake.png&quot; class=&quot;ajs_post_img_link&quot;&gt;&lt;img class=&quot;ajs_post_img&quot; onerror=&quot;this.src=&#39;https://lh3.googleusercontent.com/-xXiVLUL1PQg/VJ8HJGh11vI/AAAAAAAAFbQ/IP2Vky0DlOo/w498-h255-no/3bd01cb.jpg&#39;&quot; src=&quot;https://sinja.io/images/bot-or-not/tcp-handshake.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Did you know your favorite website can detect when you’re browsing it in public transport and when you scroll it laying in your bed? Today we’ll learn how they can do it and how this info is used to fight bots.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://sinja.io//blog/bot-or-not&quot; class=&quot;ajs_post_fullarticle_link&quot;&gt;Full article&lt;/a&gt;&lt;br /&gt;
</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/7470609498227179578/posts/default/8636216128876658486'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/7470609498227179578/posts/default/8636216128876658486'/><link rel='alternate' type='text/html' href='https://teklinks.andrejnsimoes.com/2025/06/a-short-history-of-web-bots-and-bot.html' title='A short history of web bots and bot detection techniques'/><author><name>Teklinks</name><uri>http://www.blogger.com/profile/04628333596365452977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-7470609498227179578.post-5243247284204481753</id><published>2025-06-26T09:04:00.001+01:00</published><updated>2025-06-26T09:04:56.998+01:00</updated><title type='text'>JavaScript broke the web (and called it progress)</title><content type='html'>&lt;div class=&quot;ajs_post_separator&quot;&gt;&lt;a href=&quot;https://www.jonoalderson.com/acd-cgi/img/v1/wp-content/uploads/file_00000000e62461f4b9f9d6b1410c78d2.png?dpr=1&amp;f=auto&amp;fit=cover&amp;height=350&amp;q=85&amp;width=760&quot; class=&quot;ajs_post_img_link&quot;&gt;&lt;img class=&quot;ajs_post_img&quot; onerror=&quot;this.src=&#39;https://lh3.googleusercontent.com/-xXiVLUL1PQg/VJ8HJGh11vI/AAAAAAAAFbQ/IP2Vky0DlOo/w498-h255-no/3bd01cb.jpg&#39;&quot; src=&quot;https://www.jonoalderson.com/acd-cgi/img/v1/wp-content/uploads/file_00000000e62461f4b9f9d6b1410c78d2.png?dpr=1&amp;f=auto&amp;fit=cover&amp;height=350&amp;q=85&amp;width=760&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Most websites are awful. Not just slow – awful. Bloated, fragile, over-engineered disasters. They load slowly, render erratically, and hide their content behind megabytes of JavaScript. They glitch on mobile. They frustrate users and confuse search engines. They’re impossible to maintain.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://www.jonoalderson.com/conjecture/javascript-broke-the-web-and-called-it-progress/&quot; class=&quot;ajs_post_fullarticle_link&quot;&gt;Full article&lt;/a&gt;&lt;br /&gt;
</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/7470609498227179578/posts/default/5243247284204481753'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/7470609498227179578/posts/default/5243247284204481753'/><link rel='alternate' type='text/html' href='https://teklinks.andrejnsimoes.com/2025/06/javascript-broke-web-and-called-it.html' title='JavaScript broke the web (and called it progress)'/><author><name>Teklinks</name><uri>http://www.blogger.com/profile/04628333596365452977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-7470609498227179578.post-9180616639866755578</id><published>2025-06-22T12:37:00.001+01:00</published><updated>2025-06-22T12:37:12.375+01:00</updated><title type='text'>Bringing React&#39;s  to vanilla JS</title><content type='html'>&lt;div class=&quot;ajs_post_separator&quot;&gt;&lt;a href=&quot;https://plainvanillaweb.com/blog/articles/2025-06-12-view-transitions/react-demo.gif&quot; class=&quot;ajs_post_img_link&quot;&gt;&lt;img class=&quot;ajs_post_img&quot; onerror=&quot;this.src=&#39;https://lh3.googleusercontent.com/-xXiVLUL1PQg/VJ8HJGh11vI/AAAAAAAAFbQ/IP2Vky0DlOo/w498-h255-no/3bd01cb.jpg&#39;&quot; src=&quot;https://plainvanillaweb.com/blog/articles/2025-06-12-view-transitions/react-demo.gif&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
I like React. I really do. It is the default answer for modern web development, and it is that answer for a reason. Generally when React adds a feature it is well thought through, within the React system of thinking.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://plainvanillaweb.com/blog/articles/2025-06-12-view-transitions/?ck_subscriber_id=194259916&quot; class=&quot;ajs_post_fullarticle_link&quot;&gt;Full article&lt;/a&gt;&lt;br /&gt;
</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/7470609498227179578/posts/default/9180616639866755578'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/7470609498227179578/posts/default/9180616639866755578'/><link rel='alternate' type='text/html' href='https://teklinks.andrejnsimoes.com/2025/06/bringing-reacts-to-vanilla-js.html' title='Bringing React&#39;s &lt;ViewTransition&gt; to vanilla JS'/><author><name>Teklinks</name><uri>http://www.blogger.com/profile/04628333596365452977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-7470609498227179578.post-1088666657844605855</id><published>2025-06-22T12:36:00.003+01:00</published><updated>2025-06-22T12:36:26.893+01:00</updated><title type='text'>LangGraph for complex workflows</title><content type='html'>&lt;div class=&quot;ajs_post_separator&quot;&gt;&lt;a href=&quot;https://surma.dev/assets/looper.246aefae.svg&quot; class=&quot;ajs_post_img_link&quot;&gt;&lt;img class=&quot;ajs_post_img&quot; onerror=&quot;this.src=&#39;https://lh3.googleusercontent.com/-xXiVLUL1PQg/VJ8HJGh11vI/AAAAAAAAFbQ/IP2Vky0DlOo/w498-h255-no/3bd01cb.jpg&#39;&quot; src=&quot;https://surma.dev/assets/looper.246aefae.svg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
I may be late to the party, but LangGraph lets you build complex workflow architectures and codify them as powerful automations. Also LLMs, if you want. But you don’t have to! I always liked the idea of “flow-based” programming. PureData, DaVinci Resolve, Node Red... they all appeal to me.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://surma.dev/things/langgraph/?ck_subscriber_id=194259916&quot; class=&quot;ajs_post_fullarticle_link&quot;&gt;Full article&lt;/a&gt;&lt;br /&gt;
</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/7470609498227179578/posts/default/1088666657844605855'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/7470609498227179578/posts/default/1088666657844605855'/><link rel='alternate' type='text/html' href='https://teklinks.andrejnsimoes.com/2025/06/langgraph-for-complex-workflows.html' title='LangGraph for complex workflows'/><author><name>Teklinks</name><uri>http://www.blogger.com/profile/04628333596365452977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-7470609498227179578.post-1812233392705710650</id><published>2025-06-22T12:36:00.001+01:00</published><updated>2025-06-22T12:36:20.865+01:00</updated><title type='text'>Want to Be a Better Frontend Engineer? Try a Week On-Call</title><content type='html'>&lt;div class=&quot;ajs_post_separator&quot;&gt;&lt;a href=&quot;https://denodell.com/_astro/try-a-week-on-call.CbfJqTYr_Z19yVAW.jpg&quot; class=&quot;ajs_post_img_link&quot;&gt;&lt;img class=&quot;ajs_post_img&quot; onerror=&quot;this.src=&#39;https://lh3.googleusercontent.com/-xXiVLUL1PQg/VJ8HJGh11vI/AAAAAAAAFbQ/IP2Vky0DlOo/w498-h255-no/3bd01cb.jpg&#39;&quot; src=&quot;https://denodell.com/_astro/try-a-week-on-call.CbfJqTYr_Z19yVAW.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
You’re going to hate me for saying this, but I actually like being on-call. I know. I know. But hear me out. Obviously not the part where PagerDuty yanks you out of a dream with your heart pounding. But on-call taught me more about frontend quality than any bug tracker ever did.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://denodell.com/blog/try-a-week-on-call&quot; class=&quot;ajs_post_fullarticle_link&quot;&gt;Full article&lt;/a&gt;&lt;br /&gt;
</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/7470609498227179578/posts/default/1812233392705710650'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/7470609498227179578/posts/default/1812233392705710650'/><link rel='alternate' type='text/html' href='https://teklinks.andrejnsimoes.com/2025/06/want-to-be-better-frontend-engineer-try.html' title='Want to Be a Better Frontend Engineer? Try a Week On-Call'/><author><name>Teklinks</name><uri>http://www.blogger.com/profile/04628333596365452977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-7470609498227179578.post-8519614311907135746</id><published>2025-06-20T18:18:00.005+01:00</published><updated>2025-06-20T18:18:28.033+01:00</updated><title type='text'>Jest 30: Faster, Leaner, Better</title><content type='html'>&lt;div class=&quot;ajs_post_separator&quot;&gt;&lt;a href=&quot;https://jestjs.io/img/opengraph.png&quot; class=&quot;ajs_post_img_link&quot;&gt;&lt;img class=&quot;ajs_post_img&quot; onerror=&quot;this.src=&#39;https://lh3.googleusercontent.com/-xXiVLUL1PQg/VJ8HJGh11vI/AAAAAAAAFbQ/IP2Vky0DlOo/w498-h255-no/3bd01cb.jpg&#39;&quot; src=&quot;https://jestjs.io/img/opengraph.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Today we are happy to announce the release of Jest 30. This release features a substantial number of changes, fixes, and improvements. While it is one of the largest major releases of Jest ever, we admit that three years for a major release is too long.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://jestjs.io/blog/2025/06/04/jest-30&quot; class=&quot;ajs_post_fullarticle_link&quot;&gt;Full article&lt;/a&gt;&lt;br /&gt;
</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/7470609498227179578/posts/default/8519614311907135746'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/7470609498227179578/posts/default/8519614311907135746'/><link rel='alternate' type='text/html' href='https://teklinks.andrejnsimoes.com/2025/06/jest-30-faster-leaner-better.html' title='Jest 30: Faster, Leaner, Better'/><author><name>Teklinks</name><uri>http://www.blogger.com/profile/04628333596365452977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-7470609498227179578.post-5171969594485055635</id><published>2025-06-20T18:18:00.003+01:00</published><updated>2025-06-20T18:18:24.405+01:00</updated><title type='text'>ai agents</title><content type='html'>&lt;div class=&quot;ajs_post_separator&quot;&gt;&lt;a href=&quot;https://leerob.com/opengraph-image.png?48197077839ee922&quot; class=&quot;ajs_post_img_link&quot;&gt;&lt;img class=&quot;ajs_post_img&quot; onerror=&quot;this.src=&#39;https://lh3.googleusercontent.com/-xXiVLUL1PQg/VJ8HJGh11vI/AAAAAAAAFbQ/IP2Vky0DlOo/w498-h255-no/3bd01cb.jpg&#39;&quot; src=&quot;https://leerob.com/opengraph-image.png?48197077839ee922&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
I&#39;m using agents to write a lot of code now. Just 6 months ago it didn&#39;t really work well, so if you haven&#39;t tried in a while, this is your sign. Let me explain practically how I&#39;ve been using them, where they still kind of suck, and what tools I&#39;ve had success with.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://leerob.com/agents&quot; class=&quot;ajs_post_fullarticle_link&quot;&gt;Full article&lt;/a&gt;&lt;br /&gt;
</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/7470609498227179578/posts/default/5171969594485055635'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/7470609498227179578/posts/default/5171969594485055635'/><link rel='alternate' type='text/html' href='https://teklinks.andrejnsimoes.com/2025/06/ai-agents.html' title='ai agents'/><author><name>Teklinks</name><uri>http://www.blogger.com/profile/04628333596365452977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-7470609498227179578.post-1062249363279075278</id><published>2025-06-20T18:18:00.001+01:00</published><updated>2025-06-20T18:18:20.073+01:00</updated><title type='text'>My AI Skeptic Friends Are All Nuts</title><content type='html'>&lt;div class=&quot;ajs_post_separator&quot;&gt;&lt;a href=&quot;https://fly.io/blog/youre-all-nuts/assets/code-quad.png?2/3&amp;center&quot; class=&quot;ajs_post_img_link&quot;&gt;&lt;img class=&quot;ajs_post_img&quot; onerror=&quot;this.src=&#39;https://lh3.googleusercontent.com/-xXiVLUL1PQg/VJ8HJGh11vI/AAAAAAAAFbQ/IP2Vky0DlOo/w498-h255-no/3bd01cb.jpg&#39;&quot; src=&quot;https://fly.io/blog/youre-all-nuts/assets/code-quad.png?2/3&amp;center&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Tech execs are mandating LLM adoption. That’s bad strategy. But I get where they’re coming from. Some of the smartest people I know share a bone-deep belief that AI is a fad — the next iteration of NFT mania.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://fly.io/blog/youre-all-nuts/&quot; class=&quot;ajs_post_fullarticle_link&quot;&gt;Full article&lt;/a&gt;&lt;br /&gt;
</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/7470609498227179578/posts/default/1062249363279075278'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/7470609498227179578/posts/default/1062249363279075278'/><link rel='alternate' type='text/html' href='https://teklinks.andrejnsimoes.com/2025/06/my-ai-skeptic-friends-are-all-nuts.html' title='My AI Skeptic Friends Are All Nuts'/><author><name>Teklinks</name><uri>http://www.blogger.com/profile/04628333596365452977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry></feed>