<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Ifan Jaya Suswanto Zalukhu</title>
    <description>The latest articles on DEV Community by Ifan Jaya Suswanto Zalukhu (@ifanzalukhu97).</description>
    <link>https://dev.to/ifanzalukhu97</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F329852%2F35e51d18-3073-48bc-89f8-6ca36399f081.jpg</url>
      <title>DEV Community: Ifan Jaya Suswanto Zalukhu</title>
      <link>https://dev.to/ifanzalukhu97</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ifanzalukhu97"/>
    <language>en</language>
    <item>
      <title>AI Tools untuk Process Ideation, Prepare Topik, sampai Simulasi Delivery Talk</title>
      <dc:creator>Ifan Jaya Suswanto Zalukhu</dc:creator>
      <pubDate>Fri, 26 Jun 2026 10:36:00 +0000</pubDate>
      <link>https://dev.to/ifanzalukhu97/ai-tools-untuk-process-ideation-prepare-topik-sampai-simulasi-delivery-talk-35o9</link>
      <guid>https://dev.to/ifanzalukhu97/ai-tools-untuk-process-ideation-prepare-topik-sampai-simulasi-delivery-talk-35o9</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffr2ymc0njub06upcxsw3.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffr2ymc0njub06upcxsw3.jpeg" alt="Banner" width="800" height="534"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Setiap kali dapat kesempatan untuk sharing, proses prepare materinya sekarang hampir selalu ditemani AI. Bukan karena malas mikir 😆, tapi karena memang masing-masing AI tools ternyata punya kelebihan yang berbeda-beda.&lt;/p&gt;

&lt;p&gt;Ada yang saya pakai untuk brainstorming, ada yang membantu melihat flow presentasi, sampai ada yang membantu membuat slide yang lebih proper.&lt;/p&gt;

&lt;p&gt;Workflow yang saya pakai juga bukan sesuatu yang baku. Kadang berubah-ubah tergantung jenis event dan audiensnya. Tapi kurang lebih alurnya seperti ini.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Mulai Brainstorming dengan ChatGPT
&lt;/h3&gt;

&lt;p&gt;Sebagai generasi yang… entah kenapa lebih sering diskusi sama ChatGPT dibanding manusia 😅, biasanya semua dimulai dari sini.&lt;/p&gt;

&lt;p&gt;Prompt awal saya kurang lebih seperti ini:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Saya akan mengisi talk di event berikut. Berdasarkan brief event ini dan history diskusi kita sebelumnya, menurutmu topik apa yang cocok saya bawakan? Tolong jelaskan juga outline dan detail pembahasannya.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Lalu saya lampirkan brief event tersebut.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fc39e8q78aex44eywzo5r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fc39e8q78aex44eywzo5r.png" alt="Image" width="800" height="477"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Menurut saya, salah satu kekuatan ChatGPT bukan cuma karena dia bisa kasih ide, tapi karena dia juga “ingat” hal-hal yang pernah kita diskusikan sebelumnya.&lt;/p&gt;

&lt;p&gt;Misalnya project yang pernah saya kerjakan, pengalaman implementasi AI di kantor, artikel yang pernah saya tulis, atau pengalaman menjadi speaker sebelumnya.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyrvhp8pac7kfc73fnkgv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyrvhp8pac7kfc73fnkgv.png" alt="Image" width="800" height="477"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Jadinya rekomendasi yang diberikan terasa lebih personal dan lebih dekat dengan pengalaman sendiri.&lt;/p&gt;

&lt;p&gt;Ini penting.&lt;/p&gt;

&lt;p&gt;Karena menurut saya, audiens biasanya lebih suka mendengar pengalaman nyata dibanding presentasi yang isinya teori semua.&lt;/p&gt;

&lt;p&gt;Kalau kita membawakan sesuatu yang memang pernah kita alami, delivery juga biasanya jauh lebih santai. Rasanya lebih seperti ngobrol daripada menghafal slide.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxzmgr4lpkr0bb35ugs4j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxzmgr4lpkr0bb35ugs4j.png" alt="Image" width="800" height="477"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Setelah ChatGPT memberikan beberapa ide, saya hampir tidak pernah langsung menerimanya mentah-mentah.&lt;/p&gt;

&lt;p&gt;Biasanya saya baca lagi sambil berpikir:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Oke… ini menarik. Tapi ada pengalaman yang belum kamu tahu nih.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Kalau saya pernah membaca artikel yang relevan, saya kasih link-nya.&lt;/p&gt;

&lt;p&gt;Kalau saya punya project yang bisa dijadikan use case, saya minta dia pelajari.&lt;/p&gt;

&lt;p&gt;Kalau ada insight yang baru kepikiran, saya tambahkan lagi ke context.&lt;/p&gt;

&lt;p&gt;Lalu diskusi berlanjut lagi.&lt;/p&gt;

&lt;p&gt;Proses ini bisa bolak-balik berkali-kali sampai outline materinya benar-benar terasa pas.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. NotebookLM untuk Latihan Delivery dan Cari Ide Visualisasi
&lt;/h3&gt;

&lt;p&gt;Setelah outline mulai matang, saya pindah ke Google NotebookLM.&lt;/p&gt;

&lt;p&gt;Semua context tadi saya masukkan:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Brief event&lt;/li&gt;
&lt;li&gt;Draft hasil brainstorming dari ChatGPT&lt;/li&gt;
&lt;li&gt;Artikel atau referensi tambahan&lt;/li&gt;
&lt;li&gt;Kalau perlu project atau dokumentasi yang relevan&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Baru setelah itu saya mulai bermain dengan beberapa fiturnya.&lt;/p&gt;

&lt;h3&gt;
  
  
  🎙️ Ringkasan Audio (Podcast)
&lt;/h3&gt;

&lt;p&gt;Ini mungkin fitur favorit saya.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fiqi9uumqi603e4yo5t6h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fiqi9uumqi603e4yo5t6h.png" alt="Image" width="800" height="411"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;NotebookLM akan membuat percakapan seperti podcast antara dua orang. Satu orang akan bertanya berdasarkan context yang kita berikan.&lt;/p&gt;

&lt;p&gt;Satunya lagi menjelaskan jawabannya. Ini cukup membantu untuk membayangkan bagaimana nanti materi itu disampaikan.&lt;/p&gt;

&lt;p&gt;Dari sini biasanya saya mulai memperhatikan:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Hook pembuka seperti apa yang menarik.&lt;/li&gt;
&lt;li&gt;Urutan cerita yang lebih enak diikuti.&lt;/li&gt;
&lt;li&gt;Bagian mana yang terlalu panjang.&lt;/li&gt;
&lt;li&gt;Transisi antar topik.&lt;/li&gt;
&lt;li&gt;Kalimat-kalimat yang terdengar lebih natural ketika diucapkan.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Yang menarik lagi, kita bisa mengubah gaya pembahasannya.&lt;/p&gt;

&lt;p&gt;Mau dibuat lebih mendalam, diringkas, dibuat seperti debat, atau bahkan lebih kritis juga bisa.&lt;/p&gt;

&lt;p&gt;Kadang setelah mendengar versi podcast ini malah muncul ide baru yang sebelumnya tidak kepikiran.&lt;/p&gt;

&lt;p&gt;Bonusnya, materi juga jadi lebih gampang diingat karena sudah beberapa kali “didengar”, bukan cuma dibaca.&lt;/p&gt;

&lt;h3&gt;
  
  
  🖼️ Slide Presentasi
&lt;/h3&gt;

&lt;p&gt;Setelah itu saya lanjut mencoba fitur Slide Presentasi.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffs054dxu0bb0luq65zwn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffs054dxu0bb0luq65zwn.png" alt="Image" width="799" height="413"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F08xgs2qvmkgmexmvfkow.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F08xgs2qvmkgmexmvfkow.png" alt="Image" width="799" height="413"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Tujuannya bukan untuk langsung dipakai. Lebih ke mencari inspirasi.&lt;/p&gt;

&lt;p&gt;Misalnya:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Urutan slide seperti apa yang lebih nyaman.&lt;/li&gt;
&lt;li&gt;Visual seperti apa yang cocok.&lt;/li&gt;
&lt;li&gt;Ilustrasi apa yang bisa dipakai.&lt;/li&gt;
&lt;li&gt;Flow presentasinya bagaimana.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Kadang saya generate berkali-kali hanya untuk melihat pendekatan yang berbeda.&lt;/p&gt;

&lt;p&gt;Lucunya, justru di tahap ini sering muncul ide-ide baru.&lt;/p&gt;

&lt;p&gt;Ternyata melihat materi dalam bentuk visual bisa memancing perspektif yang berbeda dibanding hanya membaca teks.&lt;/p&gt;

&lt;h3&gt;
  
  
  ❓ Simulasi Q&amp;amp;A
&lt;/h3&gt;

&lt;p&gt;Fitur terakhir yang sering saya gunakan adalah Kartu Tanya Jawab dan Quiz.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjy5f2cgc7mcrk5bjq46z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjy5f2cgc7mcrk5bjq46z.png" alt="Image" width="799" height="413"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffdfu144v29h6oqdvienx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffdfu144v29h6oqdvienx.png" alt="Image" width="799" height="413"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ini cukup membantu untuk latihan sebelum hari H.&lt;/p&gt;

&lt;p&gt;Minimal saya jadi punya gambaran pertanyaan apa saja yang kemungkinan akan muncul dari peserta.&lt;/p&gt;

&lt;p&gt;Walaupun… tetap saja nanti ada satu pertanyaan yang sama sekali tidak kepikiran. Itu sudah hukum alam seorang speaker. 😂&lt;/p&gt;

&lt;h3&gt;
  
  
  3. AI IDE untuk Membuat Slide yang Lebih Fleksibel
&lt;/h3&gt;

&lt;p&gt;Kalau konsep materi dan alurnya sudah fix, baru saya mulai membuat slide.&lt;/p&gt;

&lt;p&gt;Di tahap ini saya lebih sering menggunakan AI IDE seperti Kiro, Claude Code, atau tools AI berbasis CLI lainnya.&lt;/p&gt;

&lt;p&gt;Kenapa?&lt;/p&gt;

&lt;p&gt;Karena saya lebih suka membuat slide dalam bentuk HTML dibanding PowerPoint biasa.&lt;/p&gt;

&lt;p&gt;Dengan HTML saya bisa lebih bebas mengatur:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;layout,&lt;/li&gt;
&lt;li&gt;animasi,&lt;/li&gt;
&lt;li&gt;interaksi,&lt;/li&gt;
&lt;li&gt;responsive design,&lt;/li&gt;
&lt;li&gt;sampai detail kecil yang biasanya cukup ribet kalau dikerjakan manual.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Workflow-nya biasanya sederhana.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ChatGPT membantu menyusun isi materi.&lt;/li&gt;
&lt;li&gt;NotebookLM membantu mengevaluasi flow dan delivery.&lt;/li&gt;
&lt;li&gt;Lalu AI IDE membantu mengubah semuanya menjadi slide yang lebih polished.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Contoh slide yang terakhir saya buat:&lt;br&gt;&lt;br&gt;
&lt;a href="https://ifanzalukhu97.github.io/slides/from-problem-to-product.html" rel="noopener noreferrer"&gt;https://ifanzalukhu97.github.io/slides/from-problem-to-product.html&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Penutup
&lt;/h3&gt;

&lt;p&gt;Kurang lebih seperti itu workflow yang paling sering saya pakai saat menyiapkan materi sharing.&lt;/p&gt;

&lt;p&gt;Apakah selalu mulus? Tentu tidak. 😆&lt;/p&gt;

&lt;p&gt;Fun fact, ide terbaik saya justru sering muncul ketika deadline submission sudah tinggal hitungan jam atau bahkan malam sebelum acara.&lt;/p&gt;

&lt;p&gt;Entah kenapa otak baru merasa, “Oke, sekarang waktunya bekerja.”&lt;/p&gt;

&lt;p&gt;Mungkin memang benar ada istilah &lt;em&gt;The Power of Kepepet&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Walaupun… saya tetap tidak merekomendasikan dijadikan best practice. 🤣&lt;/p&gt;

</description>
      <category>ai</category>
      <category>aiproductivity</category>
      <category>softwareengineering</category>
      <category>talks</category>
    </item>
    <item>
      <title>Kiro as AI Partner for MS SQL Server Optimization on .NET Core: Yang Biasa Berhari-hari, Sekarang Hitungan Jam</title>
      <dc:creator>Ifan Jaya Suswanto Zalukhu</dc:creator>
      <pubDate>Sat, 13 Jun 2026 18:55:19 +0000</pubDate>
      <link>https://dev.to/kirodotdev/kiro-as-ai-partner-for-ms-sql-server-optimization-on-net-core-yang-biasa-berhari-hari-sekarang-3h07</link>
      <guid>https://dev.to/kirodotdev/kiro-as-ai-partner-for-ms-sql-server-optimization-on-net-core-yang-biasa-berhari-hari-sekarang-3h07</guid>
      <description>&lt;p&gt;&lt;em&gt;English version: &lt;a href="https://builder.aws.com/content/2yf2sol4ZERViP1ZrJtOMHQBTat/kiro-as-ai-partner-for-ms-sql-server-optimization-on-net-core-what-used-to-take-days-now-takes-hours" rel="noopener noreferrer"&gt;Kiro as AI Partner for MS SQL Server Optimization on .NET Core: What Used to Take Days Now Takes Hours&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;Dulu, nyari query yang bikin database spike itu bisa makan berhari-hari. Apalagi kalau aplikasinya pakai ORM dan LINQ di .NET Core — yang terlihat di database adalah raw SQL, sementara yang ditulis di codebase bentuknya berbeda jauh. Yang nyari capek, yang nge-fix juga capek. Sekarang? Hitungan jam — dan bonusnya, sambil belajar hal baru juga.&lt;/p&gt;




&lt;p&gt;Ceritanya begini. Kalau kamu pernah kerja di aplikasi yang pakai ORM (Object-Relational Mapping — semacam "penerjemah otomatis" antara code dan database), pasti familiar sama situasi ini: database tiba-tiba lambat, kamu dapet raw query yang jadi biang kerok, tapi di codebase kamu nulis pakai syntax ORM yang bentuknya beda jauh dari SQL mentah itu.&lt;/p&gt;

&lt;p&gt;Buat yang belum pernah deal sama ORM, bayangin gini: kamu nulis pesan dalam bahasa Indonesia, lalu ada "penerjemah otomatis" yang convert jadi bahasa Jepang sebelum dikirim ke penerima. Suatu hari ada masalah di pesan yang terkirim — tapi kamu cuma bisa lihat versi bahasa Jepang-nya. Nyari bagian mana dari tulisan Indonesia kamu yang bikin terjemahan-nya bermasalah? Itu effort-nya yang bikin pengen balik tidur aja.&lt;/p&gt;

&lt;p&gt;Sekarang dengan bantuan Kiro, cukup kasih raw query + akses ke codebase, dia otomatis nyari bagian mana di code yang nge-generate query bermasalah itu. Yang dulu butuh berhari-hari, sekarang bisa selesai dalam hitungan jam — dan itu baru tahap investigasi, belum termasuk fixing-nya.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ceritanya Kenapa Bisa Pakai Kiro
&lt;/h2&gt;

&lt;p&gt;Akhir-akhir ini lagi aktif pakai Kiro di tempat kerja. Awal tahun lalu kantor dapat credits melalui program &lt;a href="https://kiro.dev/startups/" rel="noopener noreferrer"&gt;Kiro for Startup&lt;/a&gt;, jadi ya sekalian dimaksimalkan.&lt;/p&gt;

&lt;p&gt;Selain buat debug dan explore query di MS SQL Server, kadang pakai Kiro juga buat analisa log AWS CloudWatch — sambil kasih context aplikasi yang running biar analisa-nya lebih akurat dan gak generic.&lt;/p&gt;

&lt;p&gt;Di tulisan kali ini, saya mau sharing gimana pakai Kiro sebagai &lt;em&gt;partner&lt;/em&gt; beberapa minggu terakhir buat improve query performance di aplikasi .NET Core. Kenapa "partner"? Karena Kiro-nya gak boleh langsung akses ke database — jadi wajib melalui perantara saya. Kita discuss, kolaborasi, dan nge-solve bareng. Bukan AI yang dikasih tombol terus disuruh jalan sendiri.&lt;/p&gt;

&lt;h2&gt;
  
  
  Waktu Database Mulai Teriak
&lt;/h2&gt;

&lt;p&gt;Beberapa waktu lalu, metrics database kami menunjukkan alarm — data I/O sering spike. Ini harus dicek dan di-improve sebelum user mulai ngerasain.&lt;/p&gt;

&lt;p&gt;Dulu kayak yang saya bilang tadi — ini pekerjaan yang paling malas saya kerjakan. Ribet-nya di level: kita cuma dapet raw query yang di-generate ORM, sementara di codebase kita nulis pakai syntax yang bentuknya jauh berbeda. Gak langsung ketahuan code bagian mana yang nge-generate query lambat itu.&lt;/p&gt;

&lt;p&gt;Buat gambaran lebih simpel: ORM itu kayak kamu bilang ke asisten "ambilin data pesanan yang aktif, urutin dari yang terbaru ya." Si asisten nerjemahin instruksi itu jadi perintah teknis ke database. Nah kalau ternyata cara dia nerjemahin gak efisien dan bikin database lambat, kamu harus reverse-engineer dari hasil terjemahan teknis itu balik ke instruksi awalmu — dan &lt;em&gt;itu&lt;/em&gt; yang bikin pusing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Gimana Flow-nya: Kiro Gak Bisa Sentuh Database
&lt;/h2&gt;

&lt;p&gt;Karena database gak bisa dikasih akses langsung ke AI, maka flow-nya begini: Kiro kasih instruksi query apa yang perlu saya jalankan, saya eksekusi di database, dan hasilnya saya kirim balik ke dia untuk dianalisa.&lt;/p&gt;

&lt;p&gt;Saya mulai dengan kasih context:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Saya punya database MS SQL Server yang beberapa menit lalu spike data I/O-nya. Kita akan cari tahu proses/query apa penyebabnya. Kamu info ke saya query apa yang perlu dijalankan, nanti saya yang eksekusi dan kirim hasilnya untuk kamu analisa."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Dari situ, Kiro kasih beberapa diagnostic query yang perlu saya run:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Top I/O queries&lt;/strong&gt; — query dengan physical reads/writes tertinggi&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Currently running I/O heavy&lt;/strong&gt; — query yang sedang berjalan saat spike terjadi&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;I/O stats per database file&lt;/strong&gt; — file mana yang paling banyak I/O-nya&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;I/O wait stats&lt;/strong&gt; — wait type terkait I/O yang dominan&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Current indexes&lt;/strong&gt; — semua index yang ada di database&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Index usage stats&lt;/strong&gt; — seberapa sering index digunakan vs di-update&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Missing indexes&lt;/strong&gt; — rekomendasi index dari SQL Server sendiri&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Index fragmentation&lt;/strong&gt; — index yang terfragmentasi bisa bikin I/O berlebihan&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Resource stats&lt;/strong&gt; — historical resource usage (khusus Azure)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;I/O stats per table&lt;/strong&gt; — tabel mana yang paling banyak menghasilkan I/O&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Setelah saya jalankan semua dan kirim hasilnya, Kiro langsung menganalisa dan kasih output yang cukup komprehensif — dari executive summary sampai rencana aksi per-priority.&lt;/p&gt;

&lt;h3&gt;
  
  
  Hasil Analisa: Bukan Cuma "Query-nya Lambat"
&lt;/h3&gt;

&lt;p&gt;Kiro kasih temuan lengkap dengan severity level:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Temuan&lt;/th&gt;
&lt;th&gt;Severity&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Read latency sangat tinggi (130-169ms avg)&lt;/td&gt;
&lt;td&gt;🔴 Critical&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;86% wait time = PAGEIOLATCH_SH (read I/O)&lt;/td&gt;
&lt;td&gt;🔴 Critical&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Missing index pada kolom filter utama&lt;/td&gt;
&lt;td&gt;🔴 Critical&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3 index tidak pernah dibaca (0 reads, 24K+ writes)&lt;/td&gt;
&lt;td&gt;🟡 Warning&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Eager loading sebelum pagination di ORM&lt;/td&gt;
&lt;td&gt;🔴 Critical&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Yang menarik, dia gak berhenti di level database. Dia langsung identify pattern di code yang bermasalah:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Pattern bermasalah yang ditemukan Kiro:&lt;/span&gt;
&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;_db&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Orders&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Include&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;OrderItems&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;      &lt;span class="c1"&gt;// ← Eager load SEMUA items dulu&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;AsNoTracking&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Where&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;TenantId&lt;/span&gt; &lt;span class="p"&gt;==&lt;/span&gt; &lt;span class="n"&gt;tenantId&lt;/span&gt; &lt;span class="p"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="p"&gt;!&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Deleted&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;OrderByDescending&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;UpdatedAt&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Skip&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;page&lt;/span&gt; &lt;span class="p"&gt;*&lt;/span&gt; &lt;span class="n"&gt;size&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Take&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;size&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ToListAsync&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Buat non-.NET developer: &lt;code&gt;.Include()&lt;/code&gt; itu kayak bilang "sekalian ambilin semua data relasi-nya juga." Masalahnya ini ditaruh &lt;em&gt;sebelum&lt;/em&gt; pagination — artinya database load semua data beserta relasi-nya ke memory dulu, baru dipotong per halaman. Kalau datanya jutaan rows? Ya Out of Memory.&lt;/p&gt;

&lt;p&gt;Kiro kasih rekomendasi fix dengan pendekatan 2-step:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Step 1: Ambil ID aja dulu (ringan, tanpa relasi)&lt;/span&gt;
&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;pagedIds&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;_db&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Orders&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Where&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;TenantId&lt;/span&gt; &lt;span class="p"&gt;==&lt;/span&gt; &lt;span class="n"&gt;tenantId&lt;/span&gt; &lt;span class="p"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="p"&gt;!&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Deleted&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;OrderByDescending&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;UpdatedAt&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Skip&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;page&lt;/span&gt; &lt;span class="p"&gt;*&lt;/span&gt; &lt;span class="n"&gt;size&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Take&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;size&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Select&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ToListAsync&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

&lt;span class="c1"&gt;// Step 2: Baru load full data + relasi, cuma untuk ID yang sudah di-page&lt;/span&gt;
&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;_db&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Orders&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Include&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;OrderItems&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;AsNoTracking&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Where&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;pagedIds&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Contains&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Id&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ToListAsync&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Konsepnya universal: jangan load semua dulu baru potong — potong dulu, baru load yang diperlukan. Ini applicable di framework dan bahasa apapun yang punya ORM.&lt;/p&gt;

&lt;p&gt;Selain fix di level code, Kiro juga kasih rencana aksi di level database:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Create missing index&lt;/strong&gt; buat kolom yang sering di-filter tapi belum ada index-nya&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Drop unused index&lt;/strong&gt; yang gak pernah dibaca tapi terus di-update setiap ada write (cost tanpa benefit)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Disable auto-index di Azure&lt;/strong&gt; yang kadang malah bikin overhead karena create index yang ternyata gak berguna&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Kenapa Hasilnya Beda dari Sekadar Paste Query ke AI
&lt;/h2&gt;

&lt;p&gt;Kalau dilihat rencana aksi di atas, Kiro gak cuma menganalisa raw query yang lambat terus kasih saran generic "tambahin index." Yang bikin beda: dia juga mempelajari code backend .NET Core yang jadi sumber query tersebut.&lt;/p&gt;

&lt;p&gt;Jadi misalnya dari raw query yang lambat, dia langsung bisa trace sendiri — "Oh ini query-nya di-generate dari &lt;code&gt;OrderController.GetDataTableParams&lt;/code&gt;, line sekian, di repository method &lt;code&gt;GetOrdersWithDateFilter&lt;/code&gt;." Saya gak perlu kasih tahu file mana — dia cari sendiri di codebase.&lt;/p&gt;

&lt;p&gt;Dari situ saran-nya jadi spesifik ke situasi kita, bukan template jawaban:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Query yang perlu di-tuning bukan cuma dari sisi SQL, tapi juga dari sisi gimana ORM nge-generate-nya. Contohnya &lt;code&gt;.Include()&lt;/code&gt; yang posisinya bikin database load jutaan row sebelum pagination jalan — itu saran refactor di level code, bukan di level database.&lt;/li&gt;
&lt;li&gt;Ada fitur Azure yang ternyata kontra-produktif di setup kita: auto-index yang aktif tapi malah bikin index yang gak pernah dibaca, nambah write cost ~47K updates tanpa benefit sama sekali.&lt;/li&gt;
&lt;li&gt;Index yang dia sarankan buat di-drop itu bukan tebakan. Dia cross-check dari usage stats (0 reads, puluhan ribu writes) dan confirm bahwa memang gak ada query di codebase yang butuh index tersebut.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ini yang beda dari cuma kasih satu potongan query ke AI terus minta pendapat. Karena Kiro punya akses ke seluruh codebase, dia bisa connect the dots — dari "query lambat di database" ke "code pattern di aplikasi yang nge-generate query itu" — dan kasih solusi yang nyambung di kedua sisi sekaligus.&lt;/p&gt;

&lt;h2&gt;
  
  
  AI Bukan Bikin Bodoh — Malah Jadi Teman Belajar
&lt;/h2&gt;

&lt;p&gt;Hal yang sering saya dengar: "AI bikin kita makin bodoh dan malas belajar." Pengalaman saya di case ini justru kebalikannya.&lt;/p&gt;

&lt;p&gt;Begini ceritanya. Waktu Kiro nemuin pattern bermasalah di codebase, dia gak cuma bilang "ini salah, ganti jadi begini." Dia jelaskan &lt;em&gt;kenapa&lt;/em&gt; itu salah, apa yang terjadi di balik layar, dan kapan pattern itu sebenernya boleh dipakai. Dan saya — yang udah bertahun-tahun nulis code .NET — baru ngeh beberapa hal fundamental yang selama ini terlewat.&lt;/p&gt;

&lt;p&gt;Yang bikin ini jadi "teman belajar" dan bukan sekadar autocomplete pintar: setiap kali Kiro nemuin sesuatu yang menarik, saya minta dia jelaskan lebih detail dan simpan jadi file markdown tersendiri. Judulnya saya buat kayak catatan belajar — &lt;em&gt;"What I Learned Today: Kenapa .ToLower() di LINQ Query Bikin Database Lambat."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;File-file itu kemudian saya generate jadi PDF dan share ke Slack tim. Jadi bukan cuma saya yang belajar — satu tim ikut dapat insight-nya.&lt;/p&gt;

&lt;p&gt;Ini beberapa contoh yang saya pelajari dari proses ini:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;.ToLower()&lt;/code&gt; di ORM Query Ternyata Bikin Database Lambat&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Kiro nemuin pattern ini tersebar di banyak repository:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="c1"&gt;// ❌ Bikin index gak bisa dipakai&lt;/span&gt;
&lt;span class="n"&gt;db&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Products&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Any&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Code&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ToLower&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;==&lt;/span&gt; &lt;span class="n"&gt;code&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ToLower&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Kenapa bermasalah? ORM nerjemahin &lt;code&gt;.ToLower()&lt;/code&gt; jadi function &lt;code&gt;LOWER()&lt;/code&gt; di SQL. Ketika ada function yang di-apply ke kolom database di &lt;code&gt;WHERE&lt;/code&gt; clause, index jadi gak bisa dipakai — SQL Server harus scan semua row satu per satu.&lt;/p&gt;

&lt;p&gt;Di tabel dengan 1.6 juta rows: yang harusnya &amp;lt; 1 milidetik jadi 2-5 detik. Dan di case kita, function ini dipanggil ~2,400 kali dalam 1 jam. Itu artinya 2,400 full table scan yang seharusnya gak perlu.&lt;/p&gt;

&lt;p&gt;Ternyata database kami pakai collation Case Insensitive (&lt;code&gt;CI&lt;/code&gt;) — artinya perbandingan string sudah otomatis case-insensitive tanpa perlu function apapun:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="c1"&gt;// ✅ Index terpakai, hasil sama karena collation DB sudah CI&lt;/span&gt;
&lt;span class="n"&gt;db&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Products&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Any&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Code&lt;/span&gt; &lt;span class="p"&gt;==&lt;/span&gt; &lt;span class="n"&gt;code&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Yang Kiro jelaskan dan bikin saya "ohhh" itu bedanya context: kalau query-nya ke database (LINQ-to-SQL), &lt;code&gt;.ToLower()&lt;/code&gt; gak perlu karena collation yang handle. Tapi kalau data sudah di-load ke memory (LINQ-to-Objects), &lt;code&gt;.ToLower()&lt;/code&gt; atau &lt;code&gt;StringComparison.OrdinalIgnoreCase&lt;/code&gt; tetap wajib karena C# itu case-sensitive. Syntax-nya sama, behavior-nya beda total tergantung context. Bertahun-tahun nulis LINQ dan baru kali ini benar-benar paham bedanya.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kondisi &lt;code&gt;OR&lt;/code&gt; yang Ternyata Redundan&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Pattern ini ditemukan di fitur sync mobile:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="c1"&gt;// ❌ Redundan dan bikin index gak optimal&lt;/span&gt;
&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Where&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;UpdatedAt&lt;/span&gt; &lt;span class="p"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="n"&gt;param&lt;/span&gt; &lt;span class="p"&gt;||&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;CreatedAt&lt;/span&gt; &lt;span class="p"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="n"&gt;param&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Dua masalah:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;OR&lt;/code&gt; di dua kolom berbeda bikin database gak bisa pakai index secara efisien — harus scan dua range terpisah lalu merge hasilnya&lt;/li&gt;
&lt;li&gt;Kondisi &lt;code&gt;CreatedAt&lt;/code&gt; itu &lt;strong&gt;redundan&lt;/strong&gt; — karena di logic aplikasi kita, setiap record baru dibuat, &lt;code&gt;UpdatedAt&lt;/code&gt; di-set sama dengan &lt;code&gt;CreatedAt&lt;/code&gt;. Dan setiap kali di-update, cuma &lt;code&gt;UpdatedAt&lt;/code&gt; yang berubah. Jadi &lt;code&gt;UpdatedAt&lt;/code&gt; selalu &amp;gt;= &lt;code&gt;CreatedAt&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Yang bikin ini jadi momen belajar: Kiro gak cuma bilang "hapus aja OR-nya." Dia trace ke &lt;code&gt;SaveChangesHelper&lt;/code&gt; di codebase, tunjukin logic-nya — bahwa di entity lifecycle kita, &lt;code&gt;UpdatedAt&lt;/code&gt; selalu di-set bareng &lt;code&gt;CreatedAt&lt;/code&gt; saat insert, dan cuma &lt;code&gt;UpdatedAt&lt;/code&gt; yang berubah saat update. Jadi secara matematis, kondisi OR itu gak pernah menambah hasil apapun.&lt;/p&gt;

&lt;p&gt;Cukup:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="c1"&gt;// ✅ Satu kondisi, index optimal&lt;/span&gt;
&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Where&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;UpdatedAt&lt;/span&gt; &lt;span class="p"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="n"&gt;param&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;p&gt;Dan masih ada beberapa hal lain yang saya pelajari — cukup banyak sampai sepertinya perlu dipisah jadi artikel tersendiri nanti.&lt;/p&gt;

&lt;p&gt;Point-nya: selagi kita bisa prompting dengan tepat dan punya curiosity buat nanya "kenapa?", AI malah jadi accelerator buat belajar. Dia bukan pengganti berpikir — dia pembuka pintu ke hal-hal yang selama ini gak kita tahu ada. Dan kalau kita rajin simpan insight-nya, satu sesi belajar bisa jadi knowledge sharing buat satu tim.&lt;/p&gt;

&lt;h2&gt;
  
  
  Diskusi yang Berhasil Sayang Kalau Dibuang — Jadi Workflow Aja
&lt;/h2&gt;

&lt;p&gt;Ini bagian yang menurut saya paling impactful.&lt;/p&gt;

&lt;p&gt;Setelah diskusi panjang — bolak-balik kirim query, terima analisa, diskusi solusi — saya mulai sadar: &lt;em&gt;"Pattern-nya udah ketemu. Kalau besok database lain spike, masa harus ulang dari awal lagi?"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Jadi saya minta ke Kiro: &lt;strong&gt;dari diskusi kita hari ini, formalisasi jadi sesuatu yang reusable.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Konkretnya:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Query-query diagnostic tadi, simpan ke folder &lt;code&gt;sql-audit/&lt;/code&gt; — pisahkan per file berdasarkan tujuannya&lt;/li&gt;
&lt;li&gt;Buatkan satu template prompt yang bisa langsung dipakai tanpa perlu ulang diskusi dari awal&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Dan Kiro langsung eksekusi. Hasilnya:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Folder &lt;code&gt;sql-audit/&lt;/code&gt;&lt;/strong&gt; — semua diagnostic query tersusun rapi per file sesuai urutan investigasi. Kedepannya kalau ada masalah I/O, gak perlu mikir "harus mulai dari mana?" — tinggal buka folder, run satu per satu.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;#&lt;/th&gt;
&lt;th&gt;File&lt;/th&gt;
&lt;th&gt;Tujuan&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;code&gt;01_top_io_queries.sql&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Top query penyebab I/O historis&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;&lt;code&gt;02_currently_running_io_heavy.sql&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Query yang berjalan saat spike&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;&lt;code&gt;03_io_stats_per_database_file.sql&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Latency per database file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;&lt;code&gt;04_io_wait_stats.sql&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Wait type I/O yang dominan&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;&lt;code&gt;05_current_indexes.sql&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Review semua index&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;&lt;code&gt;06_index_usage_stats.sql&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Index terpakai atau sia-sia&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;&lt;code&gt;07_missing_indexes.sql&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Rekomendasi index dari SQL Server&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;&lt;code&gt;08_index_physical_stats.sql&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Fragmentasi index&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;&lt;code&gt;09_azure_resource_stats.sql&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Resource usage (Azure)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;&lt;code&gt;10_io_per_table.sql&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Tabel dengan I/O tertinggi&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Template Prompt&lt;/strong&gt; (&lt;code&gt;db-query-optimization-prompt.md&lt;/code&gt;) — instruksi lengkap: apa yang harus Kiro analisa, format output yang diharapkan, severity classification, dan rencana aksi yang harus di-generate. Semacam "SOP" yang tinggal dipanggil.&lt;/p&gt;

&lt;p&gt;Sekarang kalau ada database spike, flow saya literally cuma:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Menggunakan prompt di bawah ini, tolong analisa hasil performance database ini.

File prompt: query-optimization/db-query-optimization-prompt.md
Hasil SQL audit terbaru: /sql-audit
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Done. Gak ada diskusi panjang lagi. Gak ada "eh kemarin kita bahas apa ya." Semuanya sudah ter-encode di template.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Takeaway-nya&lt;/strong&gt;: diskusi panjang sama AI itu berharga, tapi lebih berharga lagi kalau kamu convert hasilnya jadi checkpoint yang reusable. Banyak orang pakai AI tapi knowledge dari diskusi-nya "buang" begitu aja — chat ditutup, ilang. Padahal kamu bisa minta AI-nya formalisasi jadi prompt template, folder terstruktur, atau workflow yang bisa jalan tanpa context sebelumnya.&lt;/p&gt;

&lt;h2&gt;
  
  
  Gimana Kalau Besok Mau Lanjut Tapi Chat-nya Udah Ilang?
&lt;/h2&gt;

&lt;p&gt;Satu masalah lagi yang muncul di awal-awal: gimana melanjutkan progress lintas hari?&lt;/p&gt;

&lt;p&gt;Contohnya, tanggal 13 kita temuin masalah dan apply fix. Tapi butuh beberapa hari buat lihat impact-nya. Pas mau lanjut diskusi tanggal 15 atau 28, chat sebelumnya sudah tertutup dan ribet nyarinya.&lt;/p&gt;

&lt;p&gt;Solusinya simpel: setiap selesai satu session analisa, minta Kiro simpan hasilnya ke file dengan format tanggal:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;query-optimization/orders-db/2026-05-13_initial_analysis.md&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;query-optimization/orders-db/2026-05-28_follow_up_review.md&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Di dalamnya tercatat semua: temuan, saran, yang sudah di-fix, yang belum, reasoning di balik setiap keputusan. Termasuk hal kayak "tanggal 13 Kiro sarankan buat index X, tapi di follow-up tanggal 28 minta dihapus karena setelah code di-refactor ternyata gak efektif lagi."&lt;/p&gt;

&lt;p&gt;Jadi prompt selanjutnya tinggal:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Analisa hasil performance database ini.
- File prompt: db-query-optimization-prompt.md
- Hasil SQL audit terbaru: /sql-audit
- Konteks diskusi sebelumnya: query-optimization/orders-db/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Kiro langsung punya full context. Diskusinya berkelanjutan, saling melengkapi, dan AI-nya dapat gambaran luas tanpa harus dijelaskan ulang dari nol setiap session baru.&lt;/p&gt;

&lt;h2&gt;
  
  
  Yang Gak Disangka: Catatan Audit Jadi Penjaga Code Review
&lt;/h2&gt;

&lt;p&gt;Yang gak saya sangka — folder change log itu ternyata punya kehidupan kedua. Sekarang folder itu jadi bagian dari code review automation.&lt;/p&gt;

&lt;p&gt;Salah satu rule di code review skill agent kami:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Pastikan perubahan code mengikuti best practice dan menghindari kesalahan yang pernah dilakukan — datanya ada di folder &lt;code&gt;query-optimization/&lt;/code&gt;. Pastikan setiap perubahan baru optimal dari sisi query maupun index."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Jadi saat AI melakukan code review pull request developer, dia juga cross-check sama history kesalahan yang pernah terjadi. Feedback loop-nya tertutup — kesalahan yang sama diminimalisir tanpa bergantung pada ingatan manusia.&lt;/p&gt;

&lt;p&gt;Dari yang awalnya cuma "debug database spike," sekarang jadi:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Investigation tool&lt;/strong&gt; — folder sql-audit buat diagnostic cepat&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Knowledge base&lt;/strong&gt; — insight baru yang di-share ke tim&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reusable workflow&lt;/strong&gt; — prompt template yang tinggal pakai&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Continuous context&lt;/strong&gt; — change log sebagai memory lintas session&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Prevention mechanism&lt;/strong&gt; — code review guard dari historical mistakes&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Satu masalah, lima output. Gak direncanakan dari awal — tapi karena setiap langkah dibikin reusable, domino-nya jalan sendiri.&lt;/p&gt;




&lt;p&gt;Itu sharing kali ini. Kiro bukan cuma bikin kerjaan lebih cepat — tapi juga bikin proses belajar lebih terstruktur, workflow lebih repeatable, dan knowledge gak hilang di chat yang tertutup.&lt;/p&gt;

&lt;p&gt;Yang capek bukan database-nya. Yang capek itu manusia yang harus ulang-ulang proses yang sama tanpa sistem.&lt;/p&gt;

&lt;p&gt;Sampai jumpa di tulisan selanjutnya. 🙌&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;About Me&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Halo, nama saya &lt;a href="https://www.linkedin.com/in/ifanzalukhu97/" rel="noopener noreferrer"&gt;Ifan Jaya Suswanto Zalukhu&lt;/a&gt;. Di tahun 2026 ini adalah tahun kedua sebagai &lt;a href="https://builder.aws.com/community/@ifanzalukhu97" rel="noopener noreferrer"&gt;AWS Community Builder&lt;/a&gt;, sekaligus Co-Lead &lt;a href="https://www.meetup.com/aws-user-group-medan/" rel="noopener noreferrer"&gt;AWS User Group Medan&lt;/a&gt;. Suka sharing dan excited belajar hal baru — terutama di intersection cloud, AI, dan engineering productivity.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>sqlserver</category>
      <category>netcore</category>
      <category>database</category>
    </item>
    <item>
      <title>#1 Cloud &amp; Coffee - AWS UG Medan</title>
      <dc:creator>Ifan Jaya Suswanto Zalukhu</dc:creator>
      <pubDate>Sun, 21 Dec 2025 12:38:11 +0000</pubDate>
      <link>https://dev.to/aws-builders/1-cloud-coffee-aws-ug-medan-on3</link>
      <guid>https://dev.to/aws-builders/1-cloud-coffee-aws-ug-medan-on3</guid>
      <description>&lt;p&gt;&lt;strong&gt;Cloud &amp;amp; Coffee&lt;/strong&gt; adalah meetup format baru yang kita mulai coba di AWS User Group Medan. Meetup ini dibuat dengan konsep yang lebih &lt;strong&gt;casual dan nyaman&lt;/strong&gt;: ngobrol santai, sharing, dan real conversation. Jumlah pesertanya juga dibatasi, sekitar 5–20 orang, supaya semua orang punya ruang buat ikut terlibat.&lt;/p&gt;

&lt;p&gt;Di sini, semua peserta bebas share pengalaman mereka seputar teknologi dan AWS. Mulai dari apa yang lagi dipelajari minggu ini, challenge yang lagi dihadapi (atau sudah berhasil di-solve) di tempat kerja, sampai showcase project atau product yang lagi dikembangkan pakai AWS.&lt;/p&gt;

&lt;p&gt;Setiap orang bisa langsung maju ke depan dan bawain topiknya sekitar &lt;strong&gt;5–15 menit&lt;/strong&gt;. Karena konsepnya santai, mau pakai slide boleh, tanpa slide juga nggak masalah, bahkan langsung demo code pun oke banget. Peserta juga boleh membawa makanan atau snack sendiri untuk dibagi bersama, jadi vibes-nya benar-benar cozy dan nggak kaku. Karena jumlah pesertanya nggak banyak, diskusi jadi lebih hidup, interaktif, dan nggak satu arah doang.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.meetup.com/aws-user-group-medan/events/312403488/" rel="noopener noreferrer"&gt;https://www.meetup.com/aws-user-group-medan/events/312403488/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdqom34ex2u0soaun5501.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdqom34ex2u0soaun5501.jpg" alt="AWS UG - Cloud and Coffee - December 2025" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxrlba0ownejaix2ng1nk.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxrlba0ownejaix2ng1nk.jpg" alt="AWS UG - Cloud and Coffee - December 2025" width="800" height="348"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Format baru ini kita inisiasi bareng teman-teman di AWS User Group Medan: Albert &lt;a class="mentioned-user" href="https://dev.to/albert_suwandhi"&gt;@albert_suwandhi&lt;/a&gt; (AWS Hero), Lintang Gilang Pratama &lt;a class="mentioned-user" href="https://dev.to/lintanggilang"&gt;@lintanggilang&lt;/a&gt; (AWS Community Builders), dan saya sendiri, Ifan &lt;a class="mentioned-user" href="https://dev.to/ifanzalukhu97"&gt;@ifanzalukhu97&lt;/a&gt; (AWS Community Builders). Tujuan besarnya sederhana: &lt;strong&gt;pengen AWS User Group Medan bisa lebih aktif dan konsisten bikin event&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Dari pengalaman sebelumnya, ada beberapa tantangan yang sering kita hadapi:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Persiapan lokasi, kerja sama, dan hal teknis lain sebelum event&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Kalau merangkap sebagai speaker, harus prepare topik dan bikin slide yang kadang cukup makan waktu&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Speaker sering itu-itu saja, yang akhirnya bisa bikin peserta bosan&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Padahal sebenarnya banyak peserta AWS UG Medan yang sudah jago dan aktif pakai AWS, tapi jarang yang mau submit / tampil sebagai speaker&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Dari situ kita coba gali lebih dalam. Kenapa sih banyak yang ragu buat jadi speaker? Beberapa alasan yang sering kami dengar:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Nervous kalau harus ngomong di depan banyak orang&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Merasa ilmunya “belum senior / pro”, masih banyak yang lebih jago&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Punya topik menarik, tapi cuma cukup buat 5–10 menit&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Dan lain-lain&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Dari kendala-kendala ini, akhirnya kepikiranlah format &lt;strong&gt;Cloud &amp;amp; Coffee&lt;/strong&gt;. Harapannya, meetup bisa diadakan di cafe, peserta cukup datang, pesan kopi atau snack (atau bawa sendiri), lalu join diskusi. Dari sisi organizer juga jadi lebih ringan dan nggak ribet.&lt;/p&gt;

&lt;p&gt;Kami benar-benar ingin lebih banyak teman-teman lokal yang mau ikut berbagi pengalaman mereka, meskipun masih di level pemula. Karena faktanya, saat diskusi berlangsung, banyak peserta yang sebenarnya punya use case nyata: kesalahan umum, kejutan biaya cloud, sampai kebingungan saat baru mulai menggunakan AWS. &lt;/p&gt;

&lt;p&gt;Namun, sering kali mereka malu untuk berbicara, apalagi di forum dengan banyak orang. Karena itu, kami mencoba format baru ini: jumlah peserta lebih sedikit, lebih minim formalitas, dan tanpa tekanan. Format ini terasa pas untuk sekitar &lt;strong&gt;20–30 orang&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Topik pembahasan juga jadi lebih beragam karena setiap orang datang dengan hal yang sedang mereka eksplor atau minati belakangan ini. Selain itu, Cloud &amp;amp; Coffee juga bisa menjadi &lt;strong&gt;langkah awal untuk latihan public speaking&lt;/strong&gt; mulai dari audiens kecil, sebelum nantinya naik ke event dengan peserta yang lebih banyak.&lt;/p&gt;

&lt;p&gt;Harapan kami, dengan format seperti ini, AWS UG Medan ke depannya bisa lebih aktif karena yang menggerakkan dan mengisi sharing bukan hanya segelintir orang. Selain itu, ini juga bisa menjadi &lt;strong&gt;portfolio awal&lt;/strong&gt; bagi teman-teman yang ingin apply &lt;a href="https://builder.aws.com/community/community-builders" rel="noopener noreferrer"&gt;AWS Community Builder&lt;/a&gt;, sehingga ke depannya semakin banyak AWS Community Builder dari Medan dan komunitasnya semakin hidup dan aktif.&lt;/p&gt;




&lt;p&gt;Acara perdana Cloud &amp;amp; Coffee ini dilaksanakan pada Sabtu, &lt;strong&gt;20 Desember 2025&lt;/strong&gt;, di kantor Codinglab dengan peserta sekitar 15 orang. Teman kami, &lt;strong&gt;Padlian Chairi&lt;/strong&gt; (CTO Codinglab), sangat mendukung pelaksanaan meetup ini mulai dari tempat hingga kopi yang disediakan untuk semua peserta. Padlian juga ikut mengisi sesi sharing dengan topik &lt;strong&gt;Kiro CLI&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Berikut beberapa highlight keseruan acaranya:&lt;/p&gt;

&lt;p&gt;Acara diawali dengan pembukaan oleh Albert, yang memperkenalkan format baru Cloud &amp;amp; Coffee sekaligus membagikan rencana AWS UG Medan ke depan, termasuk rencana pelaksanaan &lt;strong&gt;AWS re:Invent Recap&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi62pcklv7q9toyxdeu4o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi62pcklv7q9toyxdeu4o.png" alt="---" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Dilanjutkan oleh Ifan yang membahas pengenalan komunitas AWS, seperti &lt;a href="https://builder.aws.com/community/user-groups" rel="noopener noreferrer"&gt;AWS User Group&lt;/a&gt;, &lt;a href="https://builder.aws.com/community/community-builders" rel="noopener noreferrer"&gt;AWS Community Builder&lt;/a&gt;, &lt;a href="https://builder.aws.com/community/heroes" rel="noopener noreferrer"&gt;AWS Heroes&lt;/a&gt;, dan &lt;a href="https://builder.aws.com/community/cloud-clubs" rel="noopener noreferrer"&gt;AWS Cloud Clubs&lt;/a&gt;. Sekaligus juga disampaikan informasi mengenai program AWS Community Builder yang rencananya akan dibuka awal tahun depan, lengkap dengan tips, benefit, serta ajakan untuk mulai menyiapkan portfolio dari sekarang.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw7ki2pfmdv3hjv47eus1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw7ki2pfmdv3hjv47eus1.png" alt="---" width="800" height="435"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Sesi pertama dibuka oleh salah satu peserta yang berbagi pengalaman di tempat kerjanya. Ia menceritakan bagaimana mereka menyelesaikan tantangan render custom / GIS maps dengan ukuran data puluhan giga, serta bagaimana cara mengolah dan menampilkannya di web frontend agar tetap smooth dan tidak menyebabkan aplikasi menjadi tidak responsif.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5utp2jlug9wlanzrsl7m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5utp2jlug9wlanzrsl7m.png" alt="---" width="800" height="427"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Setelah sesi pertama selesai, peserta lain langsung mengangkat tangan dan ikut berbagi pengalaman terkait vulnerability pada &lt;strong&gt;React Server Components&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fblq17f696x23n8dapgt2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fblq17f696x23n8dapgt2.png" alt="---" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Menariknya, kedua peserta ini menyampaikan materinya secara santai tanpa menggunakan slide. Dengan durasi rata-rata 5–10 menit, sesi langsung dilanjutkan dengan diskusi dan tanya jawab.&lt;/p&gt;

&lt;p&gt;Sesi berikutnya juga tidak kalah menarik. Salah satu peserta yang sehari-harinya berprofesi sebagai dokter ikut melakukan sharing. Dia showcase ide product / pilot project berupa &lt;strong&gt;Radiation Dose Tracking System&lt;/strong&gt;. Selain membahas solusi dari project tersebut, ia juga bercerita bagaimana dia menggunakan &lt;strong&gt;AWS SNS&lt;/strong&gt; dan &lt;strong&gt;CloudWatch&lt;/strong&gt; untuk kebutuhan monitoring. Ia juga berbagi cerita bagaimana sejak masa COVID mulai belajar teknologi dan kini mengembangkan solusi untuk penanganan kanker.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqqlwncau6xj1kegrpae4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqqlwncau6xj1kegrpae4.png" alt="---" width="800" height="484"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fah165rll9j0b4314iyt9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fah165rll9j0b4314iyt9.png" alt="---" width="800" height="484"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Di sesi ini juga sempat dibahas lika-liku mengenai startup, disertai dengan sharing pengalaman dan tips langsung dari para peserta.&lt;/p&gt;

&lt;p&gt;Ternyata masih banyak peserta lain yang ingin sharing. Sehingga, acara yang awalnya dijadwalkan mulai pukul &lt;strong&gt;13.30 hingga 17.00&lt;/strong&gt; akhirnya baru selesai sekitar &lt;strong&gt;pukul 18.00&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Selanjutnya, Padlian melanjutkan sesi sharing mengenai &lt;strong&gt;Kiro CLI&lt;/strong&gt;, dan menjelaskan bagaimana tool ini mempermudah proses deploy dan CloudOps.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8usdl3q4jgza6bq017bl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8usdl3q4jgza6bq017bl.png" alt="---" width="800" height="509"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo2e5f2nt4hqvt81dv4mc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo2e5f2nt4hqvt81dv4mc.png" alt="---" width="800" height="505"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Sesi berikutnya membahas &lt;strong&gt;Amazon CloudFront&lt;/strong&gt;, termasuk informasi mengenai Free Plan terbaru serta berbagai benefit yang ditawarkan, seperti WAF (Web Application Firewall) yang sudah aktif secara default. Topik ini menjadi lanjutan dari diskusi vulnerability sebelumnya, di mana peserta lain juga langsung menambahkan pengalaman dan tips mereka dalam menghindari masalah serupa.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgurzmbbb18ki8ks0el85.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgurzmbbb18ki8ks0el85.png" alt="---" width="800" height="466"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6bsb121cx95xpe4acyhv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6bsb121cx95xpe4acyhv.png" alt="---" width="736" height="505"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Sesi terakhir diisi oleh Albert yang membahas &lt;strong&gt;EKS Auto Mode dan Managed ArgoCD&lt;/strong&gt;, sekaligus memperkenalkan konsep &lt;strong&gt;GitOps&lt;/strong&gt;. Diskusi kemudian berkembang ke berbagai topik lain seperti cloud security, shared responsibility model, automatic patching menggunakan Systems Manager Patch Manager, container image scanning dengan Amazon Inspector, serta perbandingan penggunaan ECS dan EKS.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmtd5mo89adway0ulbtja.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmtd5mo89adway0ulbtja.png" alt="---" width="800" height="497"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm505sf9tcy23zzkpqkzx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm505sf9tcy23zzkpqkzx.png" alt="---" width="738" height="457"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Acara ditutup dengan sesi networking santai, tanya jawab, serta pengumpulan feedback dari peserta mengenai format baru Cloud &amp;amp; Coffee dan topik-topik yang ingin dibahas di meetup selanjutnya.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2tjesih81bbs3nkxokt1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2tjesih81bbs3nkxokt1.png" alt="---" width="800" height="505"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Terakhir, tentu saja foto bersama 😄&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpbvy6puyka4psay59wt9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpbvy6puyka4psay59wt9.png" alt="---" width="800" height="383"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh9zafsutshdgo51pmx1f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh9zafsutshdgo51pmx1f.png" alt="---" width="800" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>community</category>
    </item>
    <item>
      <title>Pengalaman Sharing di Meetup AWS UG Medan: AWS Cost Mysteries – Real Spikes, True Stories, Real Savings</title>
      <dc:creator>Ifan Jaya Suswanto Zalukhu</dc:creator>
      <pubDate>Wed, 27 Aug 2025 17:58:07 +0000</pubDate>
      <link>https://dev.to/aws-builders/pengalaman-sharing-di-meetup-aws-ug-medan-aws-cost-mysteries-real-spikes-true-stories-real-1ph</link>
      <guid>https://dev.to/aws-builders/pengalaman-sharing-di-meetup-aws-ug-medan-aws-cost-mysteries-real-spikes-true-stories-real-1ph</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwe6bcb6gko4r8g4pb78g.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwe6bcb6gko4r8g4pb78g.jpg" alt="Foto Webinar" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Pertengahan Agustus 2025 kemarin saya dapat kesempatan untuk sharing di &lt;a href="https://www.meetup.com/aws-user-group-medan/events/310322301" rel="noopener noreferrer"&gt;AWS User Group Medan Meetup – August 2025 &lt;/a&gt;. Event ini diadakan offline di kampus UPH Medan, Lippo Plaza. Selain saya, ada juga pak &lt;strong&gt;Albert Suwandhi&lt;/strong&gt; &lt;a class="mentioned-user" href="https://dev.to/albert_suwandhi"&gt;@albert_suwandhi&lt;/a&gt; (AWS Heroes) dan &lt;strong&gt;Lintang Gilang Pratama&lt;/strong&gt; &lt;a class="mentioned-user" href="https://dev.to/lintanggilang"&gt;@lintanggilang&lt;/a&gt; (AWS Community Builders) yang ikut ngisi sesi sharing.&lt;/p&gt;

&lt;p&gt;Di meetup ini ada dua topik utama yang kita bawakan:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;AWS Cost Mysteries: Real Spikes, True Stories, Real Savings&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Smarter Way to Work in CLI with Amazon Q Developer&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Topik pertama saya bawakan bareng pak Albert. Saya sharing pengalaman optimasi biaya di AWS, sedangkan pak Albert kupas tuntas kasus spike biaya sampai ribuan USD dan bagaimana solusinya.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp2ydndjyd2u6v243jm1j.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp2ydndjyd2u6v243jm1j.jpg" alt="Foto Ifan" width="800" height="600"&gt;&lt;/a&gt;&lt;br&gt;
Dari sisi saya, saya sharing beberapa kesalahan dan optimisasi yang pernah saya lakukan, contohnya:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;CloudWatch Logging tanpa retention&lt;/strong&gt;, yang bikin cost jadi naik. Solusinya? Atur retention policy biar lebih efisien.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Salah deploy frontend di ECS&lt;/strong&gt; → ini bikin data transfer bengkak dan website jadi lambat. Solusinya: pindah ke &lt;strong&gt;S3 + CloudFront&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Vertical scaling buat temporary spikes&lt;/strong&gt;, tapi ujung-ujungnya cost inefficient karena resource kebanyakan idle. Lebih oke pakai &lt;strong&gt;Auto Scaling + Lambda Integration&lt;/strong&gt; buat long running workload.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;EC2 Spot Instances&lt;/strong&gt; → bisa hemat sampai 90% dibanding on-demand. Saya juga sharing beberapa tips penggunaannya.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Scheduled Tasks di ECS&lt;/strong&gt; dengan scaling policy + time-based scaling, hasilnya cost lebih optimal.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Retention &amp;amp; Lifecycle configuration&lt;/strong&gt; (S3, ECR) → lumayan banget buat hemat cost jangka panjang.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjmdj0aao2fyoti61mp8z.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjmdj0aao2fyoti61mp8z.jpg" alt="Foto pak Albert" width="592" height="444"&gt;&lt;/a&gt;&lt;br&gt;
Sharing saya ini masih awalnya aja. Dilanjutkan pak Albert dengan case yang lebih dalam lagi, mulai dari &lt;strong&gt;data transfer&lt;/strong&gt;, &lt;strong&gt;reserved instance use case&lt;/strong&gt;, sampai &lt;strong&gt;log spike&lt;/strong&gt;. Jadi makin lengkap insight-nya.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fplencrgphztg72bpmeph.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fplencrgphztg72bpmeph.jpg" alt="Foto Lintang" width="800" height="600"&gt;&lt;/a&gt;&lt;br&gt;
Topik kedua dibawakan oleh Lintang. Dia jelasin cara kerja &lt;strong&gt;Amazon Q Developer&lt;/strong&gt;, plus demo langsung gimana Q bisa bantu nulis &amp;amp; eksekusi perintah CLI. Selain itu, ada juga tips praktis buat ningkatin produktivitas Cloud Engineer &amp;amp; Developer dengan bantuan AI tools ini.&lt;/p&gt;




&lt;p&gt;Buat saya pribadi, topik ini sebenernya gak terlalu baru. Sebelumnya saya udah pernah tulis di Medium dengan judul &lt;a href="https://medium.com/@ifanzalukhu97/kesalahan-setup-aws-pertama-kali-cara-optimasi-cost-nya-ifanzalukhu97-8798fd4e096c" rel="noopener noreferrer"&gt;Kesalahan Setup AWS Pertama Kali &amp;amp; Cara Optimasi Cost-nya&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Tapi yang bikin seru kali ini ada beberapa hal:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dibawakan &lt;strong&gt;dua oran&lt;/strong&gt;g → saya dan pak Albert, jadi insight yang keluar lebih banyak.&lt;/li&gt;
&lt;li&gt;Ini adalah &lt;strong&gt;pertama kalinya saya sharing di event AWS/User Group&lt;/strong&gt; setelah terpilih jadi AWS Community Builder tahun sebelumnya.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjtbwtqkcbki2xrbrsphe.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjtbwtqkcbki2xrbrsphe.jpg" alt="foto Ifan" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Event ini sendiri dihadiri sekitar &lt;strong&gt;20 orang&lt;/strong&gt; dan berlangsung cukup interaktif. Diskusi bareng peserta juga seru, beberapa bahkan share case baru yang mereka lagi kerjakan. Jadi selain QnA, kita juga lanjut ngobrol santai after event.&lt;/p&gt;

&lt;p&gt;Selain topik utama, pak Albert juga memperkenalkan &lt;strong&gt;AWS User Group Medan&lt;/strong&gt; dan program &lt;strong&gt;AWS Community Builders&lt;/strong&gt;. Harapannya, tahun depan makin banyak teman-teman dari Medan yang apply, dan makin banyak juga yang bisa sharing di event-event selanjutnya.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa51nqgaatgpc7xqqo526.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa51nqgaatgpc7xqqo526.jpg" alt="foto pak Albert" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Terakhir, big thanks buat semua peserta yang hadir, sudah ikut belajar dan berbagi pengalaman. Juga terima kasih untuk kampus UPH Medan dan teman-teman panitia yang bantu kolaborasi hingga meetup ini sukses berjalan. #AWSome 🚀&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmyy9m80xatd5yzhoo6z3.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmyy9m80xatd5yzhoo6z3.jpg" alt="foto bersama" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Oh iya, album foto AWS UG Medan Meetup bisa dilihat di sini:&lt;br&gt;
📷 &lt;a href="https://photos.app.goo.gl/X13DELkU8zQ5XaWz7" rel="noopener noreferrer"&gt;https://photos.app.goo.gl/X13DELkU8zQ5XaWz7&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Sedangkan slide presentasi saya kemarin bisa diakses di sini:&lt;br&gt;
📑 &lt;a href="https://bit.ly/ifan-AWSUGMedanMeetup-August2025" rel="noopener noreferrer"&gt;https://bit.ly/ifan-AWSUGMedanMeetup-August2025&lt;/a&gt;&lt;/p&gt;

</description>
      <category>cloud</category>
      <category>devops</category>
      <category>community</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Apa Rasanya Pertama Kali Ikut AWS Summit Jakarta 2025?</title>
      <dc:creator>Ifan Jaya Suswanto Zalukhu</dc:creator>
      <pubDate>Mon, 18 Aug 2025 14:07:59 +0000</pubDate>
      <link>https://dev.to/aws-builders/apa-rasanya-pertama-kali-ikut-aws-summit-jakarta-2025-3cpc</link>
      <guid>https://dev.to/aws-builders/apa-rasanya-pertama-kali-ikut-aws-summit-jakarta-2025-3cpc</guid>
      <description>&lt;p&gt;Bulan ini saya dapat kesempatan ikut &lt;strong&gt;AWS Summit Jakarta 2025&lt;/strong&gt; di The Ritz-Carlton Jakarta Pacific Place. Excited banget karena ini first time saya hadir langsung ke AWS Summit, setelah tahun lalu jadi AWS Community Builder (AI Engineering category).&lt;/p&gt;

&lt;p&gt;Saya bersama Pak &lt;a class="mentioned-user" href="https://dev.to/albert_suwandhi"&gt;@albert_suwandhi&lt;/a&gt; (&lt;strong&gt;Albert Suwandhi&lt;/strong&gt;, AWS Heroes) dan bro &lt;a class="mentioned-user" href="https://dev.to/lintanggilang"&gt;@lintanggilang&lt;/a&gt; (&lt;strong&gt;Lintang Gilang Pratama&lt;/strong&gt;, AWS Community Builders), kita bertiga terbang dari Medan ke Jakarta untuk ikut event ini. Kita memang berusaha sebisa mungkin biar geng dari Medan juga bisa banyak hadir di event besar seperti ini.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwtu5yhlijo89fcm63y3f.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwtu5yhlijo89fcm63y3f.jpeg" alt="Photo 1" width="800" height="600"&gt;&lt;/a&gt; Di event ini, saya bersama bro &lt;strong&gt;Lintang&lt;/strong&gt; dapat kesempatan untuk demo di booth &lt;strong&gt;Amazon SageMaker Unified Studio in Action&lt;/strong&gt; di developer lounge. Honestly, saya bukan expert di data/SageMaker, tapi teman saya Lintang yang cukup paham. Karena SageMaker bisa integrasi dengan &lt;strong&gt;Bedrock/GenAI&lt;/strong&gt;, akhirnya saya bisa bantu menjawab pertanyaan seputar AI use case. Jadi teamwork jalan banget di booth ini. Kesempatan ini juga ada karena kami sama-sama AWS Community Builders dari Medan, dan saya diajak bareng dia untuk demo di booth SageMaker.&lt;/p&gt;

&lt;p&gt;Perjalanannya juga penuh drama. Pesawat dari Medan ke Jakarta yang harusnya jam 7.30 malam malah delay sampai baru berangkat jam 10 malam. Sampai Jakarta sudah subuh jam 2 pagi. Untung tiketnya memang saya ambil H-1, jadi masih aman. Walau kurang tidur, ngantuk langsung hilang begitu masuk venue — suasana eventnya ramai dan energinya luar biasa.&lt;/p&gt;

&lt;p&gt;Selain demo di booth, saya juga sempat ikut melihat light talk di developer lounge. Materinya seru, ringan, tapi insightful. Dari situ jadi termotivasi — semoga tahun depan bisa balik lagi, entah sebagai peserta, panitia, atau malah jadi salah satu speaker di developer lounge 😀. Mulai dari sekarang deh latihan dan prepare materi. &lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdv1sgjweygm6k2m3h6dc.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdv1sgjweygm6k2m3h6dc.jpg" alt="Light Talk Agenda" width="800" height="1422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hal yang nggak kalah menyenangkan adalah akhirnya bisa ketemu langsung teman-teman AWS CB yang biasanya cuma ketemu online lewat Online Meet. This time, bisa ngobrol dan connect langsung.&lt;/p&gt;

&lt;p&gt;Dan yang paling spesial, bisa kenalan langsung dengan &lt;strong&gt;Shafraz Rahim&lt;/strong&gt; dan &lt;strong&gt;Jason Dunn&lt;/strong&gt;. Biasanya cuma lihat di Slack/LinkedIn, sekarang bisa ketemu langsung bahkan dinner bareng setelah acara. Definitely one of the highlights!&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F34uc097p94d37nrt2gnc.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F34uc097p94d37nrt2gnc.jpeg" alt="AWS CB Indonesia di AWS Summit Jakarta 2025" width="800" height="494"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fao2fw9vmlacjoz1uxwm9.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fao2fw9vmlacjoz1uxwm9.jpg" alt="Developer Lounge Post Event Dinner" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Setelah AWS Summit selesai, kita nggak langsung pulang ke Medan. Masih sempat mampir ke kantor &lt;strong&gt;AWS Jakarta&lt;/strong&gt; untuk ikut &lt;strong&gt;Future Community Builder Learning Program Kickoff Meetup&lt;/strong&gt; bareng AWS UG Indonesia. Eventnya nggak kalah seru, penuh insight baru.&lt;/p&gt;

&lt;p&gt;Dari semua pengalaman ini, saya jadi makin semangat untuk aktif di komunitas — belajar, sharing, dan networking. Plus, ada satu pelajaran penting: kalau mau terbang ke event besar, jangan mepet-mepet atau terlalu malam. Delay bisa bikin panik atau malah gagal hadir.&lt;/p&gt;

&lt;p&gt;Overall, pengalaman pertama di AWS Summit Jakarta 2025 ini benar-benar unforgettable! 🚀&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiu8coc9ybyhkxaol5tuq.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiu8coc9ybyhkxaol5tuq.jpg" alt="Ifan Photo" width="512" height="512"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>devjournal</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Kenalan Sama Kiro IDE: Coding Bareng AI Pakai Spec-Driven Development</title>
      <dc:creator>Ifan Jaya Suswanto Zalukhu</dc:creator>
      <pubDate>Wed, 16 Jul 2025 17:02:41 +0000</pubDate>
      <link>https://dev.to/kirodotdev/kenalan-sama-kiro-ide-coding-bareng-ai-pakai-spec-driven-development-l81</link>
      <guid>https://dev.to/kirodotdev/kenalan-sama-kiro-ide-coding-bareng-ai-pakai-spec-driven-development-l81</guid>
      <description>&lt;p&gt;Buat yang penasaran sama Kiro IDE, ini adalah AI-powered IDE yang bantuin kita ngerjain software development secara lebih terstruktur. Alih-alih langsung gas nulis kode (vibe coding), Kiro ngajak kita mulai dari PRD (Product Requirement Document), lanjut ke technical spec atau system design, baru kemudian nge-breakdown task-tasknya.&lt;/p&gt;

&lt;p&gt;Spec-Driven Development ini adalah salah satu fitur utama Kiro. Tapi tenang, kalau kamu lebih suka gaya vibe coding, itu juga bisa — tinggal pilih aja mode yang sesuai. Yang bikin saya pribadi cukup suka adalah pendekatan spec-driven ini karena prosesnya rapi dan mirip seperti cara kerja tim dev pada umumnya. Bahkan format acceptance criteria-nya pun mirip gaya Gherkin!&lt;/p&gt;

&lt;p&gt;🎥 Ini dia hasil eksperimen saya coba Kiro IDE untuk project sederhana pakai data TMDB Movie:&lt;br&gt;
  &lt;iframe src="https://www.youtube.com/embed/wugFYr-G2fY"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Kalau kamu pengen lihat langsung overview-nya, atau bisa explore lebih lanjut ke &lt;a href="https://kiro.dev" rel="noopener noreferrer"&gt;https://kiro.dev&lt;/a&gt; dan &lt;a href="https://kiro.dev/blog/introducing-kiro" rel="noopener noreferrer"&gt;intronya di sini&lt;/a&gt;!&lt;/p&gt;

</description>
      <category>ai</category>
      <category>aws</category>
      <category>genai</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Effort Serius Tapi Kok Hasil Bercanda</title>
      <dc:creator>Ifan Jaya Suswanto Zalukhu</dc:creator>
      <pubDate>Fri, 13 Jun 2025 10:43:38 +0000</pubDate>
      <link>https://dev.to/ifanzalukhu97/effort-serius-tapi-kok-hasil-bercanda-e1g</link>
      <guid>https://dev.to/ifanzalukhu97/effort-serius-tapi-kok-hasil-bercanda-e1g</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk9w4awvhv8hy50aw651l.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk9w4awvhv8hy50aw651l.jpeg" width="800" height="480"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Image di generate oleh ChatGPT dengan prompt “Effort Serius Tapi Kok Hasil Bercanda.Illustration of two coworkers with opposite work styles: one arriving at the office very early with tired eyes, messy desk full of paper and coffee cups, another arriving just on time, looking relaxed, with a clean desk and a robot assistant (AI Copilot) helping him. Comic-style, light colors, office setting.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Tulisan ini murni hasil imajinasi tanpa fakta dan data pendukung. Bukan artikel berita — cuma buat nemenin waktu luang aja. Jadi plis, jangan dibawa terlalu serius ya 🫠&lt;/p&gt;

&lt;p&gt;Okay, mari kita mulai.&lt;/p&gt;

&lt;p&gt;Di suatu pagi, sambil nyeruput secangkir kopi &lt;em&gt;infused choco chip cookie robusta&lt;/em&gt; hasil cold brew, tiba-tiba kepikiran:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Kok ada ya orang yang effort-nya serius banget tapi hasilnya bercanda (alias gak maksimal), tapi ada juga yang effort-nya kelihatan santai, malah hasilnya serius banget (luar biasa)? &lt;em&gt;🤔&lt;/em&gt;”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Apakah ini ada hubungannya dengan hoki? Atau pas lagi bagi-bagi keberuntungan, dia ada di urutan paling belakang? Atau… apakah usaha menghianati hasil — eh maksudnya, apakah hasil menghianati usaha? 😅&lt;/p&gt;

&lt;p&gt;(&lt;em&gt;seruput kopi dulu biar imajinasinya makin ngawur…&lt;/em&gt;)&lt;/p&gt;

&lt;p&gt;Kenapa sih kepikiran soal ini? Karena gak sengaja lihat teman-teman sendiri:&lt;/p&gt;

&lt;h3&gt;
  
  
  Teman Pertama: Si Effort Serius
&lt;/h3&gt;

&lt;p&gt;Orang ini kerja kerasnya total banget. Contohnya, datang ke kantor sejam lebih pagi dari jam kerja (kantor masuk jam 09.00, dia udah nongkrong jam 08.00). Tujuannya? Biar bisa prepare dan kirim report ke leader duluan, sebelum leader datang.&lt;/p&gt;

&lt;p&gt;Pulangnya? Jangan ditanya. Selalu jadi yang terakhir. Kadang sampai security-nya udah nyapu-nyapu dan nyalain lampu emergency, baru dia pulang 😅&lt;/p&gt;

&lt;p&gt;Kenapa? Karena dia berusaha ngebut ngerjain technical debt dan backlog yang numpuk.&lt;/p&gt;

&lt;h3&gt;
  
  
  Teman Kedua: Si Effort Santai Tapi Tertata
&lt;/h3&gt;

&lt;p&gt;Nah ini kebalikannya. Datang jam 09.00 pas, pulang jam 17.30 on the dot. Tapi pas performance review, guess what? Dia yang dinobatkan best performance oleh leader mereka.&lt;/p&gt;

&lt;p&gt;(&lt;em&gt;seruput lagi… kayaknya mulai perlu es batu tambahan biar gak makin panas mikirnya&lt;/em&gt;)&lt;/p&gt;

&lt;p&gt;Terus saya mikir, jangan-jangan dia ini anak pemilik perusahaan yang nyamar? Kayak di drama-drama pendek China itu lho, yang ending-nya bisa ketebak tapi kita tetap nonton… eh pas mau lanjut disuruh download app dulu. 🥲&lt;/p&gt;

&lt;p&gt;Atau… mereka ketuker waktu kecil? Karena biasanya yang ketuker itu hidupnya selalu berat, penuh perjuangan, dan hasilnya bercanda terus 😭&lt;/p&gt;

&lt;p&gt;Eh, kok jadi bahas sinetron ya. Efek kopi sepertinya. Balik ke topik utama.&lt;/p&gt;

&lt;p&gt;(&lt;em&gt;tambahin seruputan lagi&lt;/em&gt; ☕)&lt;/p&gt;

&lt;p&gt;Sampai akhirnya, ada momen saya bisa ngobrol langsung sama leader mereka. Kepo dong, nanya:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Eh, ini si teman yang santai itu… jangan-jangan emang anak bos beneran ya?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Ternyata bukan. Lalu si leader mereka cerita:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Dia emang datang on time, tapi tiap pagi dia yang paling cepat submit report. Tau kenapa?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Saya: &lt;em&gt;“Hah, kok bisa?”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Leader mereka:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Karena dia udah ngautomate banyak hal yang berulang. Misalnya submit report, dia pakai automation tools buat auto-recap dan auto-send ke saya. Jadi, meskipun badannya belum nyampe kantor, report-nya udah duduk manis di inbox saya.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Sore hari? Sama. Pekerjaan beres, pulang on time. Bahkan lebih rapi dan cepat dari yang lain.&lt;/p&gt;

&lt;p&gt;Kok bisa?&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Karena dia&lt;/em&gt; pakai automation tools dan AI/Copilot_. Jadi waktu yang orang lain habisin 10 jam buat satu task, dia cukup 1–2 jam doang 😮_&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Tapi… hasilnya beneran oke?&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Yes bro, karena dia gak asal pakai AI. Dia treat Copilot kayak partner brainstorming, jadi tetap dia review, validasi, dan edit kalau perlu.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Intinya?
&lt;/h3&gt;

&lt;p&gt;Yang satu kerja keras (&lt;em&gt;hard work&lt;/em&gt;), yang satu kerja cerdas (&lt;em&gt;smart work&lt;/em&gt;).&lt;/p&gt;

&lt;p&gt;Kalau pakai analogi quotes dari Abraham Lincoln:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Berikan saya 6 jam untuk menebang pohon, dan saya akan menghabiskan 4 jam pertama untuk mengasah kapak.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Teman pertama tadi full 6 jam buat nebang pohon. Gak sempat ngasah kapak. Jadinya, walau semangatnya tinggi, hasilnya kurang maksimal dan capeknya luar biasa 😩&lt;/p&gt;

&lt;p&gt;Teman kedua? Dia sempatin waktu buat ngasah kapak dan istirahat. Jadi meskipun tenaganya biasa aja, sekali ayun — &lt;em&gt;duar!&lt;/em&gt; — langsung kena besar dan dalam.&lt;/p&gt;

&lt;p&gt;Jadi, apakah hasil menghianati usaha?&lt;/p&gt;

&lt;p&gt;Well… kadang iya, kadang enggak. Banyak juga yang jadi skeptis:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Ngapain usaha keras kalau akhirnya hasilnya bercanda?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Pikiran kayak gitu valid sih, tapi gak sepenuhnya benar juga. Yah, you know lah 🫠&lt;/p&gt;

&lt;h3&gt;
  
  
  Terus, kenapa teman pertama gak pakai automation / Copilot juga?
&lt;/h3&gt;

&lt;p&gt;Good question.&lt;/p&gt;

&lt;p&gt;Ada dua alasan utama:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Gak sadar kalau ada masalah.&lt;/strong&gt;
Ini stage awal dalam &lt;em&gt;Four Stages of Competence&lt;/em&gt; → &lt;em&gt;Unconscious Incompetence&lt;/em&gt;. Dia gak tau kalau hal yang dia alami itu masalah. Misalnya, datang pagi dan pulang malam dianggapnya biasa aja, padahal itu &lt;em&gt;symptom&lt;/em&gt; dari sistem kerja yang gak efisien.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Infinite Problem Loop&lt;/strong&gt;
Pernah lihat ilustrasi ini?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftvsp0b4es0yr5jb0u801.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftvsp0b4es0yr5jb0u801.png" width="800" height="500"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Image source : What Technical Debt Is And How It’s Measured (&lt;a href="https://medium.com/the-andela-way/what-technical-debt-is-and-how-its-measured-ff41603005e3" rel="noopener noreferrer"&gt;https://medium.com/the-andela-way/what-technical-debt-is-and-how-its-measured-ff41603005e3&lt;/a&gt;)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Nah, setiap kali disarankan coba automation atau AI, jawabannya:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Nanti deh, belum sempat. Lagi sibuk ngerjain ini dulu. Itu menarik sih, tapi saya harus habiskan waktu lagi untuk belajar hal tersebut”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Akhirnya waktu habis buat kerja manual terus, jadi gak pernah sempat belajar hal baru. Dan karena gak belajar, makin stuck di pola lama. Ujung-ujungnya… ya muter-muter di loop yang gak berujung. &lt;em&gt;Chicken and egg problem&lt;/em&gt; 🐣🥚&lt;/p&gt;

&lt;p&gt;Padahal kalau dia sempatin waktu buat belajar tools baru, kerjaan bisa lebih cepat kelar. Sisa waktunya bisa dipakai buat belajar lebih lanjut. Combine hard work &lt;em&gt;plus&lt;/em&gt; smart work = hasilnya? Gak cuma maksimal, tapi bisa melesat jauh 🚀&lt;/p&gt;

&lt;h3&gt;
  
  
  So, what did we learn?
&lt;/h3&gt;

&lt;p&gt;Kalau disimpulkan…&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Ngopi sambil nonton short drama China ternyata bisa menghasilkan pemikiran yang surprisingly dalam… &lt;em&gt;😀&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>smartworkvshardwork</category>
      <category>automationsolution</category>
      <category>leadershipskills</category>
      <category>developerproductivit</category>
    </item>
    <item>
      <title>Amazon Q CLI untuk Code Review: Fokus Review Code yang Berubah, Bukan Semua Code di Workspace</title>
      <dc:creator>Ifan Jaya Suswanto Zalukhu</dc:creator>
      <pubDate>Sat, 10 May 2025 17:13:47 +0000</pubDate>
      <link>https://dev.to/aws-builders/amazon-q-cli-untuk-code-review-fokus-review-code-yang-berubah-bukan-semua-code-di-workspace-ko8</link>
      <guid>https://dev.to/aws-builders/amazon-q-cli-untuk-code-review-fokus-review-code-yang-berubah-bukan-semua-code-di-workspace-ko8</guid>
      <description>&lt;h2&gt;
  
  
  Masalahnya
&lt;/h2&gt;

&lt;p&gt;Beberapa AI-powered coding assistant sekarang memang sudah bisa bantu code review. Tapi biasanya, yang direview itu seluruh workspace atau file yang sedang dibuka. Padahal di dunia nyata, kita seringnya cuma butuh review berdasarkan pull request—alias perubahan dari satu branch ke branch lain, contohnya dari hotfix ke main. Jadi yang perlu direview cuma file yang berubah aja, bukan semuanya.&lt;/p&gt;

&lt;p&gt;Nah, saya jadi kepikiran: ada nggak sih AI yang bisa bantu review berdasarkan perubahan antar branch aja? Minimal jadi lapisan pertama review, biar nanti reviewer manual tinggal cek dan verifikasi.&lt;/p&gt;

&lt;h2&gt;
  
  
  Solusinya: Amazon Q Developer di Command Line
&lt;/h2&gt;

&lt;p&gt;Jawabannya: &lt;strong&gt;ada&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;Setelah coba eksplorasi, ternyata Amazon Q Developer CLI bisa bantu banget di skenario ini. Fitur CLI-nya—terutama yang pakai MCP (Model Context Protocol)—bisa dipakai untuk compare dua branch, misalnya dari hotfix ke main. Lalu, dia akan review file-file yang berubah satu per satu dan hasilnya bisa langsung disimpan ke dalam satu file.&lt;/p&gt;

&lt;p&gt;Bisa dipakai Amazon Q Developer sebagai layer awal untuk review code antar branch. Setelah proses ini, baru masuk ke manual review. Kombinasi keduanya bikin proses review lebih cepat, rapi, dan efisien. Sehingga jadinya, Amazon Q Developer ini bukan cuma bisa generate code, tapi juga bisa review kodenya sendiri—lumayan multitasking.&lt;/p&gt;

&lt;p&gt;Oh ya, Amazon Q Developer tersedia dalam dua versi: &lt;strong&gt;Free Tier&lt;/strong&gt; dan &lt;strong&gt;Pro Tier&lt;/strong&gt;. Di demo ini saya pakai yang Free. Selain tersedia dalam bentuk IDE Extension, dia juga punya versi &lt;strong&gt;CLI&lt;/strong&gt; yang saya pakai di sini. Dan yang bikin CLI-nya makin powerfull adalah support untuk &lt;strong&gt;MCP&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Beberapa fitur yang bisa ditemukan di CLI-nya antara lain:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Command &amp;amp; auto-completion&lt;/li&gt;
&lt;li&gt;Translate command (berguna kalau lupa command kayak git commit)&lt;/li&gt;
&lt;li&gt;Q Chat yang bisa menyimpan context dan menjalankan MCP langsung dari terminal&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Detail fitur, cara install, dan overview lainnya bisa kamu cek di bagian Supporting Resources di bawah.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/-cNVCqvhJOI"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Untuk komunikasi ke Amazon Q CLI sendiri gk harus bahasa Inggris, pakai bahasa Indonesia juga bisa.&lt;/p&gt;

&lt;p&gt;Selain dari demo di atas, nextnya yg mungkin bisa di explore : &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Apakah ini bisa di automate di CI / CD &lt;/li&gt;
&lt;li&gt;Atau apakah bisa di integrasi dengan Git hooks seperti Husky maupun lainnya.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Supporting Resources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://dev.to/aws/getting-started-with-amazon-q-developer-cli-4dkd"&gt;Getting started with Amazon Q Developer CLI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://aws.amazon.com/id/blogs/devops/extend-the-amazon-q-developer-cli-with-mcp/" rel="noopener noreferrer"&gt;Extend the Amazon Q Developer CLI with Model Context Protocol (MCP) for Richer Context&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/aws/amazon-q-developer-tips-25-tips-to-supercharge-your-development-2ffg"&gt;Amazon Q Developer Tips: 25 tips to supercharge your development&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>codereview</category>
      <category>productivity</category>
      <category>aws</category>
    </item>
    <item>
      <title>Amazon Q CLI for Code Review: Focus on What Changed, Not Everything</title>
      <dc:creator>Ifan Jaya Suswanto Zalukhu</dc:creator>
      <pubDate>Sat, 10 May 2025 15:53:39 +0000</pubDate>
      <link>https://dev.to/aws-builders/amazon-q-cli-for-code-review-focus-on-what-changed-not-everything-152g</link>
      <guid>https://dev.to/aws-builders/amazon-q-cli-for-code-review-focus-on-what-changed-not-everything-152g</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/aws-amazon-q-v2025-04-30"&gt;Amazon Q Developer "Quack The Code" Challenge&lt;/a&gt;: Crushing the Command Line&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Some AI-powered coding assistants already support code reviews, but most of them tend to review an entire workspace or just the currently open file. In real-world scenarios though, code reviews are often based on pull requests—where we only need to review changes between two branches, not the whole project. For example, reviewing just the differences between a hotfix branch and main.&lt;/p&gt;

&lt;p&gt;That got me thinking: wouldn’t it be great if an AI coding assistant could handle that kind of focused review? At least as a first layer—giving us a detailed AI-generated review of the changes before we jump in manually. That way, human reviewers can just focus on refining things further instead of starting from scratch.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;One of Amazon Q Developer’s cool features is its CLI and MCP (Model Context Protocol) support. So I thought: why not use Amazon Q CLI to compare two branches—say, hotfix and main—and then have it go through the changed files one by one, review them, and finally compile the feedback into a single file using MCP as well? That way, whoever’s reviewing the PR can read the AI’s review first before doing their manual checks.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/WmEfv18tDI0"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Code Repository
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/ifanzalukhu97/Final-Project/tree/hotfix/2025-update?tab=readme-ov-file#code-review-with-amazon-q-developer-cli" rel="noopener noreferrer"&gt;Code Review with Amazon Q Developer CLI&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Used Amazon Q Developer
&lt;/h2&gt;

&lt;p&gt;I used Amazon Q Developer as the first layer of code review—comparing one branch to another, like from hotfix to main. This helps make the review process smoother, more effective, and scalable—especially when combined with a follow-up manual review. What makes it even more exciting is that Amazon Q Developer can both generate code and review it too. Pretty handy, right?&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>awschallenge</category>
      <category>ai</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Valuable Lessons from My First AWS Setup Mistakes (and How to Optimize Costs to Avoid Bill Shock!)</title>
      <dc:creator>Ifan Jaya Suswanto Zalukhu</dc:creator>
      <pubDate>Mon, 31 Mar 2025 07:37:27 +0000</pubDate>
      <link>https://dev.to/aws-builders/valuable-lessons-from-my-first-aws-setup-mistakes-and-how-to-optimize-costs-to-avoid-bill-shock-4908</link>
      <guid>https://dev.to/aws-builders/valuable-lessons-from-my-first-aws-setup-mistakes-and-how-to-optimize-costs-to-avoid-bill-shock-4908</guid>
      <description>&lt;p&gt;When I first set up services on AWS, I learned a lot—or more accurately, I made a lot of mistakes that turned into valuable lessons. And I mean &lt;em&gt;really&lt;/em&gt; valuable because the first one to notify me wasn’t the engineering team, nor was it a monitoring alert, but... AWS billing! If that’s not valuable, I don’t know what is—after all, it’s your cost suddenly spiking that tells you something went wrong. 😆&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;You can also listen to this post as a &lt;a href="https://notebooklm.google.com/notebook/f13cf827-5172-4546-9b50-c3dbb6b5d821/audio" rel="noopener noreferrer"&gt;NotebookLM podcast&lt;/a&gt;, if that’s more your style 😊&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2qga23n8lfdbj1kzpqrj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2qga23n8lfdbj1kzpqrj.png" alt="The Beginning of Our AWS Journey&lt;br&gt;
" width="800" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For a bit of context, I currently work as the Head of Engineering at a SaaS startup in Medan, Indonesia.&lt;/p&gt;

&lt;p&gt;But these mistakes happened when I was still a mobile developer at the same company. At first, I got involved in backend tasks because I often had to wait for APIs from the backend team. Once the backend was done, I then had to wait again for the DevOps team to set up and deploy it on AWS. To reduce dependency on other teams, I decided to start learning how to handle AWS and manage the backend APIs myself.&lt;/p&gt;

&lt;p&gt;That’s where my AWS journey began—along with a series of mistakes. The funny thing is, many of these mistakes weren’t immediately obvious in the first month because they were still covered by the free tier. But after a few months, they started showing up on the billing statement.&lt;/p&gt;




&lt;h1&gt;
  
  
  1: Enabling CloudWatch Logs Without Retention and Minimum Log Level
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuux3r49ejl84gr8don6f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuux3r49ejl84gr8don6f.png" alt="CloudWatch Logging Without Retention" width="800" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;One of my first mistakes was enabling logging in CloudWatch without setting data retention and log level filters. Logging is crucial for troubleshooting—without logs, debugging a service issue is like being a fortune teller, trying to guess what went wrong. 😂&lt;/p&gt;

&lt;p&gt;However, I stored &lt;em&gt;everything&lt;/em&gt;—Info, Warning, Debug, and Error logs—without filtering. The result? CloudWatch log storage grew rapidly, and the cost for ingested and scanned log data in CloudWatch Logs Insights became &lt;em&gt;insanely&lt;/em&gt; expensive. This issue only became apparent after a few months when my CloudWatch billing started climbing.&lt;/p&gt;

&lt;h3&gt;
  
  
  How We Fixed It
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxm5xyg5u0ser89ae71hs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxm5xyg5u0ser89ae71hs.png" alt="Solution for CloudWatch Logging Issue&lt;br&gt;
" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Adjusted the minimum log level to Error to reduce stored data.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Set log retention based on actual needs. If logs are only needed for troubleshooting within the past 7 days, set retention to 7 days (default is "never expire").&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Used CloudWatch Logs Insights queries only when necessary to avoid unnecessary costs.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;References:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://aws.amazon.com/blogs/compute/introducing-advanced-logging-controls-for-aws-lambda-functions/" rel="noopener noreferrer"&gt;Introducing advanced logging controls for AWS Lambda functions&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html" rel="noopener noreferrer"&gt;Change log data retention in CloudWatch Logs&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  2: Not Enabling Retention / Lifecycle Policy in ECR
&lt;/h1&gt;

&lt;p&gt;Most of our system runs on Docker containers, and our Docker images are stored in AWS Elastic Container Registry (ECR). The mistake? I didn’t enable retention or lifecycle policies in the ECR repository. As a result, old images were kept indefinitely, and storage costs kept growing.&lt;/p&gt;

&lt;p&gt;This problem wasn’t obvious in the first six months since the cost was just a few cents. But as more images accumulated, our ECR storage bill started rising.&lt;/p&gt;

&lt;h3&gt;
  
  
  How We Fixed It
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Enabled a lifecycle policy in ECR based on image count, keeping only the latest versions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If an old image is needed, we simply rebuild it via CI/CD.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;References:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://docs.aws.amazon.com/AmazonECR/latest/userguide/LifecyclePolicies.html" rel="noopener noreferrer"&gt;Automate image cleanup using lifecycle policies in Amazon ECR&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  3: Running Web Frontend on ECS Instead of Amazon S3 + CloudFront
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frie6qss25v3duuq52fex.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frie6qss25v3duuq52fex.png" alt="Frontend on ECS vs S3 + CloudFront" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Since most of our services run in Docker, our frontend was initially hosted on Amazon ECS. What happened? The data transfer costs were crazy high!&lt;/p&gt;

&lt;p&gt;After some research, we decided to migrate to Amazon S3 + CloudFront. Our CI/CD pipeline now builds and compiles the frontend source code into S3, while CloudFront serves requests from there. The benefits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;CloudFront caching reduces data transfer costs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;1TB free tier per month for outbound data transfer.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Better security with features like AWS WAF (Web Application Firewall).&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fosr165h6cdo8ldguc09w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fosr165h6cdo8ldguc09w.png" alt="Solution Migration to S3 + CloudFront" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;References:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://blogs.halodoc.io/deploy-static-web-application-using-s3-and-cloudfront/" rel="noopener noreferrer"&gt;Deploying Static Web Applications using AWS S3, CloudFront, and its benefits&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/GettingStarted.SimpleDistribution.html" rel="noopener noreferrer"&gt;Get started with a basic CloudFront distribution&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  4: Vertical Scaling ECS Services with Temporary Spikes
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiown87sf18uu9cksz8ai.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiown87sf18uu9cksz8ai.png" alt="Vertical Scaling for Temporary Spikes" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When a service on ECS had traffic spikes, my first solution was to increase CPU and memory (vertical scaling). The problem? The spikes were occasional, like when users exported data. So, most of the time, the extra resources were sitting idle—wasting money.&lt;/p&gt;

&lt;h3&gt;
  
  
  How We Fixed It
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw3wv2ec6uzou0iglp57s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw3wv2ec6uzou0iglp57s.png" alt="Solution Auto-scaling and Lambda Integration" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Analyzed the spike patterns and root causes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Used ECS auto-scaling to dynamically add tasks during spikes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Moved heavy processes to AWS Lambda. For example, when users export data, ECS sends a queue to Amazon SQS, and Lambda processes it, storing the output in S3.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  5: Not Using EC2 Spot Instances to Save Costs
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8xo3kv12d1ymdpjkf2vf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8xo3kv12d1ymdpjkf2vf.png" alt="Missing EC2 Spot Instances Benefits" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Initially, all our ECS instances ran on EC2 On-Demand. But EC2 Spot Instances can reduce costs by up to 90% compared to On-Demand!&lt;/p&gt;

&lt;p&gt;However, Spot Instances aren’t suitable for all workloads since AWS can terminate them anytime if demand rises. To mitigate this, we used Spot Instances for staging and development environments only.&lt;/p&gt;

&lt;p&gt;To ensure availability, we used multiple instance types with the &lt;em&gt;price-capacity-optimized&lt;/em&gt; strategy, which automatically selects the best-priced instance with the lowest termination risk.&lt;/p&gt;

&lt;p&gt;References:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/allocation-strategies.html" rel="noopener noreferrer"&gt;Allocation strategies for multiple instance types&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://aws.amazon.com/blogs/compute/introducing-price-capacity-optimized-allocation-strategy-for-ec2-spot-instances/" rel="noopener noreferrer"&gt;Introducing the price-capacity-optimized allocation strategy for EC2 Spot Instances&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Tips to Avoid Cost Surprises
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frunibs0egfwensbc77ta.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frunibs0egfwensbc77ta.png" alt="Key Takeaways and Best Practices" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To help detect mistakes faster, here are a few things that have helped me recently:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Enable billing alerts&lt;/strong&gt; in AWS Billing &amp;amp; Cost Management. Set thresholds and forecasts to avoid getting surprised at the end of the month. 😃&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Regularly review your AWS costs&lt;/strong&gt;—whether weekly, bi-weekly, or monthly—to spot cost trends and identify services with rising expenses.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Follow AWS updates and recommendations&lt;/strong&gt;. AWS often suggests optimizations in the AWS Portal, such as cost-effective configurations.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Hopefully, these experiences help those of you just starting with AWS avoid these “valuable learning experiences” yourself! 😆&lt;/p&gt;

&lt;p&gt;This article is also available in Indonesian:&lt;br&gt;
&lt;a href="https://medium.com/@ifanzalukhu97/kesalahan-setup-aws-pertama-kali-cara-optimasi-cost-nya-ifanzalukhu97-8798fd4e096c" rel="noopener noreferrer"&gt;Pelajaran Berharga dari Kesalahan Setup AWS Pertama Kali&lt;br&gt;
(dan Cara Optimasi Cost-nya) Biar Tagihan Nggak Bikin Kaget!&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>devops</category>
      <category>aws</category>
      <category>learning</category>
    </item>
    <item>
      <title>Kesalahan Setup AWS Pertama Kali &amp; Cara Optimasi Cost-nya</title>
      <dc:creator>Ifan Jaya Suswanto Zalukhu</dc:creator>
      <pubDate>Mon, 31 Mar 2025 07:05:01 +0000</pubDate>
      <link>https://dev.to/ifanzalukhu97/kesalahan-setup-aws-pertama-kali-cara-optimasi-cost-nya-4f87</link>
      <guid>https://dev.to/ifanzalukhu97/kesalahan-setup-aws-pertama-kali-cara-optimasi-cost-nya-4f87</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Pelajaran Berharga dari Kesalahan Setup AWS Pertama Kali (dan Cara Optimasi Cost-nya) Biar Tagihan Nggak Bikin Kaget!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd2or1jmp9fn78xediq99.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd2or1jmp9fn78xediq99.jpeg" alt="This image was created with the help of partyrock.aws" width="800" height="800"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;This image was created with the help of partyrock.aws&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Saat pertama kali setup layanan di AWS, saya banyak belajar — atau lebih tepatnya, banyak melakukan kesalahan yang akhirnya jadi pembelajaran berharga. Berharga banget, karena yang pertama kali kasih tahu biasanya bukan tim engineering, bukan juga alert monitoring, tapi… billing AWS! Ini gimana nggak berharga, kan yang ngabarin langsung cost-nya yang tiba-tiba naik drastis. 😆&lt;/p&gt;

&lt;p&gt;Sebagai sedikit konteks, saya saat ini bekerja sebagai Head of Engineering di sebuah SaaS startup di Medan, Indonesia.&lt;/p&gt;

&lt;p&gt;Tapi, kesalahan-kesalahan ini saya alami ketika masih menjadi mobile developer di perusahaan yang sama. Awalnya, saya mulai ikut menangani backend karena sering harus menunggu API dari tim backend. Setelah backend selesai, giliran harus menunggu lagi tim DevOps untuk setup dan deploy ke AWS. Supaya tidak terlalu lama bergantung pada tim lain, saya akhirnya mulai belajar mencoba menghandle langsung AWS dan API backendnya.&lt;/p&gt;

&lt;p&gt;Dari sinilah perjalanan saya di AWS dimulai — dan tentunya, kesalahan demi kesalahan juga bermunculan. Lucunya, banyak dari kesalahan ini tidak langsung terlihat di bulan pertama karena masih tertolong oleh free tier. Baru setelah beberapa bulan, mulai terasa dampaknya di billing.&lt;/p&gt;




&lt;h4&gt;
  
  
  &lt;strong&gt;#1 : Mengaktifkan Log di CloudWatch Tanpa Retention dan Log Minimum Level&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Salah satu kesalahan pertama yang saya buat adalah mengaktifkan logging di CloudWatch tanpa memperhatikan retensi data dan level log yang disimpan. Secara konsep, logging itu penting banget buat troubleshooting. Kalau nggak ada log, setiap kali ada masalah di service, kita bakal jadi dukun atau cenayang yang harus menebak-nebak apa yang salah. 😂&lt;/p&gt;

&lt;p&gt;Tapi, yang saya lakukan waktu itu adalah menyimpan semua log tanpa filter levelnya. Jadi, semua log dari level Info, Warning, Debug, sampai Error disimpan. Hasilnya? Storage log di CloudWatch cepat membengkak, dan biaya log data ingested serta log data scanned dari CloudWatch Logs Insights jadi mahal banget. Masalah ini baru ketahuan setelah beberapa bulan, saat billing CloudWatch mulai merangkak naik.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Solusi yang Kami Lakukan:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Menyesuaikan level log minimum ke Error saja supaya tidak terlalu banyak data yang disimpan.&lt;/li&gt;
&lt;li&gt;Menetapkan retensi log sesuai kebutuhan. Kalau log hanya dibutuhkan untuk troubleshooting dalam 7 hari terakhir, set retention ke 7 hari (default-nya adalah “never expire”).&lt;/li&gt;
&lt;li&gt;Menggunakan CloudWatch Logs Insights queries hanya saat diperlukan agar tidak memicu biaya berlebihan.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Referensi&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://aws.amazon.com/blogs/compute/introducing-advanced-logging-controls-for-aws-lambda-functions/" rel="noopener noreferrer"&gt;Introducing advanced logging controls for AWS Lambda functions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html" rel="noopener noreferrer"&gt;Change log data retention in CloudWatch Logs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h4&gt;
  
  
  #2 : Tidak Mengaktifkan Retention / Lifecycle Policy Rules di ECR
&lt;/h4&gt;

&lt;p&gt;Sebagian besar sistem kami menggunakan Docker container, dan Docker image-nya disimpan di AWS Elastic Container Registry (ECR). Kesalahannya? Saya tidak mengaktifkan retention atau lifecycle policy di repository ECR. Akibatnya, image yang lama-lama tetap tersimpan, dan cost penyimpanan makin lama makin besar.&lt;/p&gt;

&lt;p&gt;Masalah ini baru ketahuan setelah lebih dari 6 bulan, karena di awal cost-nya cuma beberapa sen saja. Tapi setelah beberapa bulan, jumlah image bertambah dan storage cost di ECR pun menggulung naik.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Solusi yang Kami Lakukan:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Mengaktifkan lifecycle policy di ECR berdasarkan image count, jadi hanya menyimpan beberapa versi terbaru saja. Kalau butuh image lama, tinggal rebuild ulang dari CI/CD.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Referensi&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.aws.amazon.com/AmazonECR/latest/userguide/LifecyclePolicies.html" rel="noopener noreferrer"&gt;Automate the cleanup of images by using lifecycle policies in Amazon ECR&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h4&gt;
  
  
  #3 : Menjalankan Web Frontend di ECS Alih-alih Amazon S3 + CloudFront
&lt;/h4&gt;

&lt;p&gt;Karena hampir semua layanan kami berbasis Docker, frontend web kami awalnya juga dijalankan di Amazon ECS. Apa yang terjadi? Biaya data transfer-nya cukup tinggi!&lt;/p&gt;

&lt;p&gt;Setelah membaca beberapa referensi, akhirnya kami memutuskan untuk migrasi ke Amazon S3 + CloudFront. Dari CI/CD, source code frontend dibuild dan dikompilasi ke S3, lalu CloudFront akan melayani permintaan dari S3. Keuntungan lainnya:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cache aktif di CloudFront, sehingga mengurangi biaya transfer data.&lt;/li&gt;
&lt;li&gt;Free tier 1TB per bulan untuk data transfer keluar ke internet.&lt;/li&gt;
&lt;li&gt;Keamanan lebih baik dengan fitur seperti AWS WAF (Web Application Firewall).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Referensi&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://blogs.halodoc.io/deploy-static-web-application-using-s3-and-cloudfront/" rel="noopener noreferrer"&gt;Deploying Static Web Applications using AWS S3, CloudFront and its benefits&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/GettingStarted.SimpleDistribution.html" rel="noopener noreferrer"&gt;Get started with a basic CloudFront distribution&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h4&gt;
  
  
  #4 : Vertical Scaling di ECS untuk Service dengan Temporary Spike
&lt;/h4&gt;

&lt;p&gt;Ketika service di ECS sering mengalami spike, solusi awal yang terpikir adalah menaikkan ukuran CPU dan memori (vertical scaling). Masalahnya, spike ini hanya terjadi sesekali, misalnya saat user melakukan export data. Jadi, secara resource tidak efisien karena lebih banyak idle daripada digunakan.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Solusi yang Kami Lakukan:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Menganalisis penyebab spike dan pola penggunaannya.&lt;/li&gt;
&lt;li&gt;Menggunakan auto-scaling di ECS, sehingga task akan bertambah ketika ada spike.&lt;/li&gt;
&lt;li&gt;Memindahkan proses berat ke AWS Lambda. Contohnya, saat user melakukan export data, ECS hanya mengirim queue ke Amazon SQS, lalu Lambda memprosesnya dan menyimpan hasilnya di S3.&lt;/li&gt;
&lt;/ul&gt;




&lt;h4&gt;
  
  
  #5 : Tidak Menggunakan EC2 Spot Instances untuk Penghematan Biaya
&lt;/h4&gt;

&lt;p&gt;Di awal, semua ECS instance kami menggunakan EC2 On-Demand. Padahal, EC2 Spot Instance bisa menghemat biaya hingga 90% dibandingkan On-Demand.&lt;/p&gt;

&lt;p&gt;Tapi, tidak semua workload cocok dengan Spot Instances, karena instance ini bisa kapan saja dihentikan oleh AWS jika harga naik atau kapasitas dibutuhkan oleh pelanggan lain. Oleh karena itu, kami hanya menggunakan Spot Instances untuk environment staging dan development.&lt;/p&gt;

&lt;p&gt;Selain itu, untuk memastikan Spot Instance tetap tersedia, kami menggunakan multiple instance types dengan strategi price-capacity-optimized, yang secara otomatis memilih instance dengan harga terbaik dan risiko penghentian paling rendah.&lt;/p&gt;

&lt;p&gt;Referensi&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/allocation-strategies.html" rel="noopener noreferrer"&gt;Allocation strategies for multiple instance types&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://aws.amazon.com/blogs/compute/introducing-price-capacity-optimized-allocation-strategy-for-ec2-spot-instances/" rel="noopener noreferrer"&gt;Introducing the price-capacity-optimized allocation strategy for EC2 Spot Instances&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Mungkin tips dari saya untuk membantu agar lebih aware dan lebih cepat mengetahui ketika melakukan kesalahan, beberapa yg sering salah lakukan akhir-akhir ini adalah :&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Aktifkan billing alert dari billing &amp;amp; cost managementnya, baik itu dalam bentuk threshold atau forecast, sehingga Anda tidak tiba2 terkejut di akhir bulan ketika sudah dapat tagihan 😀&lt;/li&gt;
&lt;li&gt;Sempatkan waktu baik itu per minggu, 2 minggu atau perbulan untuk review cost / servicenya untuk mengetahui polanya dan service mana saja terus mengalami kenaikkan cost&lt;/li&gt;
&lt;li&gt;Ikuti release / rekomendasi terbaru dari AWS, biasanya di AWS Portalnya kadang ada rekomendasi menggunakan cara tertentu contohnya.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Semoga pengalaman ini bisa membantu kalian yang baru mulai menggunakan AWS supaya nggak mengalami “pembelajaran berharga” yang sama! 😆&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;This article is also available in English:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://dev.to/aws-builders/valuable-lessons-from-my-first-aws-setup-mistakes-and-how-to-optimize-costs-to-avoid-bill-shock-4908"&gt;Valuable Lessons from My First AWS Setup Mistakes (and How to Optimize Costs to Avoid Bill Shock!)&lt;/a&gt;&lt;/p&gt;

</description>
      <category>costoptimization</category>
      <category>aws</category>
      <category>awscostoptimization</category>
    </item>
    <item>
      <title>AI sebagai Partner: Perjalanan Kami Mengadopsi AI dalam Development</title>
      <dc:creator>Ifan Jaya Suswanto Zalukhu</dc:creator>
      <pubDate>Fri, 06 Dec 2024 11:29:45 +0000</pubDate>
      <link>https://dev.to/ifanzalukhu97/ai-sebagai-partner-perjalanan-kami-mengadopsi-ai-dalam-development-3fkl</link>
      <guid>https://dev.to/ifanzalukhu97/ai-sebagai-partner-perjalanan-kami-mengadopsi-ai-dalam-development-3fkl</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftg2nsf4jnnnf42pkcm02.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftg2nsf4jnnnf42pkcm02.jpeg" alt="Gambar Ilustrasi ai-sebagai-partner-perjalanan-kami-mengadopsi-ai-dalam-development" width="800" height="534"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hai semua! 🙌 Di sesi ini, aku mau berbagi cerita tentang bagaimana tim kami di &lt;a href="https://simplidots.com/" rel="noopener noreferrer"&gt;&lt;strong&gt;SimpliDOTS&lt;/strong&gt;&lt;/a&gt; mengimplementasikan AI di tempat kerja.&lt;/p&gt;

&lt;p&gt;Perjalanannya tentu nggak selalu mulus, terutama di tahap awal. Banyak teman-teman developer dan engineer yang merasa khawatir — ada yang takut AI bakal &lt;strong&gt;menggantikan peran mereka&lt;/strong&gt; , dan ada juga yang ragu karena pengalaman sebelumnya dengan ChatGPT yang hasilnya kurang akurat untuk coding. 😅&lt;/p&gt;

&lt;p&gt;Tapi, seiring waktu, AI justru membawa &lt;strong&gt;perubahan positif&lt;/strong&gt; dalam cara kami bekerja, termasuk dalam proses rekrutmen dan evaluasi probation.&lt;/p&gt;

&lt;p&gt;Aku juga bakal cerita gimana kami berhasil meyakinkan teman-teman engineer yang awalnya ragu, sampai akhirnya mereka jadi &lt;strong&gt;pengguna aktif AI&lt;/strong&gt; dalam proses development. 😊&lt;/p&gt;

&lt;p&gt;Harapannya, sharing ini bisa membantu teman-teman developer yang masih ragu terhadap AI atau merasa khawatir bahwa AI akan menggantikan perannya. Semoga juga bisa jadi insight buat teman-teman yang baru mulai karir sebagai developer atau masih kuliah di jurusan IT, biar nggak perlu khawatir apakah dunia IT masih relevan di tengah perkembangan AI yang pesat. 🚀&lt;/p&gt;

&lt;p&gt;Selain itu, semoga pengalaman ini juga bermanfaat buat teman-teman leader atau manajer yang sedang merencanakan implementasi AI di tempat kerja. Aku share cerita kami ini, siapa tahu bisa jadi referensi atau inspirasi dalam perjalanan kalian. 😉&lt;/p&gt;




&lt;h3&gt;
  
  
  🚀 Awal Mula: “Yuk, Coba AI!”
&lt;/h3&gt;

&lt;p&gt;Jadi ceritanya, sekitar awal tahun lalu, manajemen kami mengeluarkan himbauan ke semua divisi: “ &lt;strong&gt;Mulai adopsi AI dalam proses internal kita, yuk!”&lt;/strong&gt; 🎉 Tujuannya? Tentu saja untuk memanfaatkan potensi besar AI yang diproyeksikan bakal memberikan manfaat signifikan di masa depan. 🚀&lt;/p&gt;

&lt;p&gt;Setiap manajer atau lead diminta menyusun &lt;strong&gt;rencana implementasi&lt;/strong&gt; , termasuk &lt;strong&gt;perencanaan anggaran tiap kuartal&lt;/strong&gt; dan &lt;strong&gt;area proses internal&lt;/strong&gt; mana yang bisa ditingkatkan dengan bantuan AI. Fokus awalnya diarahkan ke &lt;strong&gt;internal perusahaan&lt;/strong&gt; dulu sebelum AI diterapkan ke eksternal atau produk kami yang digunakan oleh user, yaitu distributor dan principal.&lt;/p&gt;

&lt;p&gt;Sebagai konteks, aku saat ini bekerja &lt;strong&gt;di SimpliDOTS sebagai Head of Engineering&lt;/strong&gt;. &lt;a href="https://simplidots.com/" rel="noopener noreferrer"&gt;SimpliDOTS&lt;/a&gt; adalah salah satu startup SaaS yang berbasis di Medan, menyediakan aplikasi yang mendukung operasional distributor dan principal. 📦&lt;/p&gt;

&lt;p&gt;Sebagai perusahaan teknologi, kami tentu dituntut untuk kreatif dan &lt;strong&gt;up-to-date dengan teknologi terbaru&lt;/strong&gt;. Selain meningkatkan pengalaman pengguna, kami juga berfokus pada &lt;strong&gt;pengoptimalan proses internal&lt;/strong&gt; agar lebih efisien dan efektif dengan bantuan AI. 🤖&lt;/p&gt;




&lt;h3&gt;
  
  
  🛠️ Tantangan Awal: Skeptis &amp;amp; Takut Kehilangan Pekerjaan
&lt;/h3&gt;

&lt;p&gt;Tantangan mulai muncul ketika saya pertama kali mengajak semua engineer berdiskusi soal &lt;strong&gt;rencana implementasi AI&lt;/strong&gt;. Di SimpliDOTS, setiap Jumat sore pukul 4 hingga 6, kami biasanya mengadakan &lt;strong&gt;diskusi santai/sharing&lt;/strong&gt; dengan tim engineering. Topiknya beragam, mulai dari sharing teknologi, hobi seperti memilih ikan hias 🐠, tips olahraga 🏃, hingga pembahasan serius lainnya. Sesi ini sering menjadi momen brainstorming yang santai tapi produktif. 😊&lt;/p&gt;

&lt;p&gt;Di salah satu sesi tersebut, saya mulai memperkenalkan rencana implementasi AI, khususnya untuk mendukung proses development seperti &lt;strong&gt;coding dan code review&lt;/strong&gt;. Saya mengajak setiap anggota tim — baik dari mobile developer, QA, frontend, maupun backend — untuk mulai mengeksplorasi &lt;strong&gt;tools atau teknologi berbasis AI&lt;/strong&gt; yang dapat membantu mereka bekerja lebih efektif dan efisien. Saya juga membuka diskusi untuk menerima saran atau ide dari mereka, termasuk rekomendasi tools berbayar yang mungkin layak dipertimbangkan. 💡&lt;/p&gt;

&lt;p&gt;Seperti biasa, saya memperhatikan reaksi mereka. Beberapa terlihat optimis 😊, sementara yang lain ragu-ragu 🤔. Salah satu tantangan pertama yang muncul adalah &lt;strong&gt;skeptisisme&lt;/strong&gt;. Ada beberapa engineer yang sebelumnya pernah menggunakan ChatGPT untuk coding, tetapi merasa hasilnya tidak akurat. Mereka menganggap &lt;strong&gt;AI ini sekadar hype marketing saja&lt;/strong&gt;. Saya mencoba menjelaskan bahwa hasil AI seperti ChatGPT sangat bergantung pada &lt;strong&gt;konteks dan teknik prompting&lt;/strong&gt; yang digunakan. Jika &lt;strong&gt;input&lt;/strong&gt; kurang tepat, &lt;strong&gt;output&lt;/strong&gt; -nya juga pasti akan kurang sesuai. Sedangkan kalau pakai &lt;a href="https://github.com/features/copilot" rel="noopener noreferrer"&gt;&lt;strong&gt;GitHub Copilot&lt;/strong&gt;&lt;/a&gt; dia dapat &lt;strong&gt;context code&lt;/strong&gt; -nya.&lt;/p&gt;

&lt;p&gt;Tantangan kedua adalah &lt;strong&gt;kekhawatiran terkait AI yang dianggap bisa menggantikan pekerjaan mereka&lt;/strong&gt;. Pada saat itu, banyak berita tentang AI yang mampu melakukan coding secara mandiri, dan beberapa engineer merasa cemas bahwa AI mungkin akan menggantikan peran mereka. Saya masih ingat bagaimana saya menjelaskan filosofi &lt;strong&gt;Co-pilot&lt;/strong&gt;. AI bukan dirancang untuk menggantikan kita, tetapi menjadi &lt;strong&gt;asisten atau partner&lt;/strong&gt; dalam proses coding — mirip dengan &lt;strong&gt;pairing&lt;/strong&gt; atau &lt;strong&gt;code review&lt;/strong&gt;. &lt;strong&gt;Keputusan akhir tetap ada di tangan kita sebagai developer.&lt;/strong&gt; 👨‍💻&lt;/p&gt;

&lt;p&gt;Namun, salah satu anggota tim memberikan komentar yang cukup menggelitik :&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“Iya sih, Bang. Sekarang namanya Co-pilot, tapi siapa yang tahu, mungkin beberapa bulan atau tahun lagi dia jadi pilot, dan kita ditendang dari pesawat.” 😂&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Komentar itu awalnya membuat suasana menjadi lucu, tapi sekaligus menantang. Saya merasa perlu terus meyakinkan mereka bahwa &lt;strong&gt;AI bukan ancaman&lt;/strong&gt; , melainkan alat yang bisa &lt;strong&gt;memperkuat kemampuan kita&lt;/strong&gt; jika digunakan dengan tepat. 💪&lt;/p&gt;

&lt;p&gt;Pada saat itu, kalau saya lihat, hanya sekitar &lt;strong&gt;20% dari tim yang optimis dan tertarik&lt;/strong&gt; untuk mengeksplorasi AI. Bahkan, mungkin lebih sedikit — sekitar &lt;strong&gt;15–20% saja&lt;/strong&gt; , dan itu pun beberapa masih terlihat ragu-ragu. Saya masih ingat bagaimana respon tersebut cukup membuat saya &lt;strong&gt;syok&lt;/strong&gt; 😲. Awalnya, saya begitu bersemangat untuk mengimplementasikan AI, tetapi setelah melihat reaksi mereka, semangat saya sempat menurun. Saya mulai bertanya dalam hati, “ &lt;strong&gt;Lho kok tim saya seperti ini? Kok mereka nggak mau maju? Apakah mereka benar-benar begitu khawatirnya terhadap AI?&lt;/strong&gt; ”&lt;/p&gt;




&lt;h3&gt;
  
  
  🎯Langkah Awal Implementasi AI: Mulai dari yang Mau Dulu
&lt;/h3&gt;

&lt;p&gt;Nah, di tahap awal, saya fokus pada &lt;strong&gt;kelompok kecil&lt;/strong&gt; yang sudah menunjukkan ketertarikan terhadap AI — sekitar &lt;strong&gt;20% dari tim&lt;/strong&gt; tadi. 🤓 Untuk mereka, saya langsung memberikan akses ke &lt;strong&gt;GitHub Copilot&lt;/strong&gt; dengan berlangganan agar mereka bisa mulai menggunakan AI dalam coding. 🚀&lt;/p&gt;

&lt;p&gt;Sementara itu, bagi teman-teman yang masih ragu, saya &lt;strong&gt;tidak memaksa&lt;/strong&gt;. Saya memberikan mereka &lt;strong&gt;waktu untuk berpikir dan mengeksplorasi&lt;/strong&gt;. Karena mereka belum yakin, saya tidak langsung memberikan akses ke GitHub Copilot agar &lt;strong&gt;biaya langganan tidak terbuang sia-sia&lt;/strong&gt;. Sebagai alternatif, saya menyarankan mereka mencoba beberapa &lt;strong&gt;tools gratis&lt;/strong&gt; terlebih dahulu, seperti &lt;a href="https://codeium.com/" rel="noopener noreferrer"&gt;&lt;strong&gt;Codeium&lt;/strong&gt;&lt;/a&gt;, &lt;a href="https://developer.android.com/studio/preview/gemini?hl=id" rel="noopener noreferrer"&gt;&lt;strong&gt;Gemini di Android Studio&lt;/strong&gt;&lt;/a&gt;, atau &lt;a href="https://idx.dev/blog/article/build-with-gemini-in-idx" rel="noopener noreferrer"&gt;&lt;strong&gt;Gemini di IDX&lt;/strong&gt;&lt;/a&gt;. 😉&lt;/p&gt;

&lt;h4&gt;
  
  
  Mengubah Mindset Melalui Influencer Internal
&lt;/h4&gt;

&lt;p&gt;Langkah berikutnya adalah kerjasama dengan anggota tim yang sudah menggunakan AI untuk menjadi &lt;strong&gt;influencer internal&lt;/strong&gt;. Saya ingin mereka menjadi penggerak yang bisa &lt;strong&gt;mengubah sudut pandang&lt;/strong&gt; teman-teman lainnya.&lt;/p&gt;

&lt;p&gt;Setiap sesi &lt;strong&gt;Jumat sore&lt;/strong&gt; , kami menyisipkan &lt;strong&gt;sharing session&lt;/strong&gt; tentang &lt;strong&gt;tips dan trik penggunaan AI&lt;/strong&gt;. Mereka berbagi pengalaman tentang bagaimana AI memudahkan pekerjaan mereka, seperti:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Otomatisasi Dokumentasi&lt;/strong&gt; : AI membantu membuat &lt;strong&gt;README&lt;/strong&gt; atau &lt;strong&gt;dokumentasi proyek&lt;/strong&gt; dengan mudah. 📝&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Diagram Otomatis&lt;/strong&gt; : Menggunakan &lt;strong&gt;PlantUML&lt;/strong&gt; atau &lt;strong&gt;Mermaid Diagram&lt;/strong&gt; yang dihasilkan langsung dari user story PM, tanpa perlu menggambar manual. 🎨&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Testing Otomatis&lt;/strong&gt; : QA menunjukkan bagaimana mereka dapat mengonversi user story menjadi skenario &lt;strong&gt;BDD (Behavior-Driven Development)&lt;/strong&gt; dalam format &lt;strong&gt;Gherkin&lt;/strong&gt; secara otomatis. 🧪&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Apakah semuanya langsung berubah? &lt;strong&gt;Tidak&lt;/strong&gt;. Ini bukan sinetron dengan akhir yang bahagia dalam semalam. 😅 Tapi, melalui langkah-langkah kecil ini, saya berusaha terus &lt;strong&gt;mengedukasi&lt;/strong&gt; dan &lt;strong&gt;memperlihatkan manfaat nyata&lt;/strong&gt; dari AI.&lt;/p&gt;

&lt;h4&gt;
  
  
  Code Review dengan AI
&lt;/h4&gt;

&lt;p&gt;Cara lain untuk mempengaruhi tim adalah melalui &lt;strong&gt;code review&lt;/strong&gt;. Dalam sesi review, kami sambil menggunakan &lt;strong&gt;AI&lt;/strong&gt; untuk memberikan rekomendasi, seperti:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Penamaan Variabel dan Fungsi&lt;/strong&gt; : Rekomendasi nama yang lebih deskriptif dan bermakna. 📛&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Peningkatan Readability&lt;/strong&gt; : Tips untuk membuat kode lebih mudah dibaca dan dipahami. 👀&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dokumentasi Otomatis&lt;/strong&gt; : Saran untuk mendokumentasikan kode secara otomatis. 📚&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nah, biasanya hasil feedback ini dari AI, kita sambil &lt;strong&gt;melampirkan screenshot&lt;/strong&gt; juga di pull request, siapa tahu tim member lain &lt;strong&gt;tergerak hatinya&lt;/strong&gt; untuk pakai. 😁 Ini cara sederhana untuk menumbuhkan &lt;strong&gt;penasaran&lt;/strong&gt; mereka.&lt;/p&gt;

&lt;h4&gt;
  
  
  Mengatasi Masalah / Bug Fixing dengan AI
&lt;/h4&gt;

&lt;p&gt;Selain itu, kami juga memanfaatkan AI untuk membantu mereka yang mengalami &lt;strong&gt;kesulitan atau bugs&lt;/strong&gt; , terutama teman-teman yang &lt;strong&gt;belum pakai AI&lt;/strong&gt;. Contohnya:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Mengoptimalkan Query Database&lt;/strong&gt; : Jika ada query yang menyebabkan lonjakan beban (spike) pada database, AI bisa memberikan &lt;strong&gt;solusi cepat&lt;/strong&gt; untuk optimisasi query. ⚡&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Error Debugging&lt;/strong&gt; : Ketika mereka mengalami error yang sulit dipecahkan dalam satu hari, AI seringkali bisa memberikan &lt;strong&gt;solusi hanya dalam beberapa menit&lt;/strong&gt;. ⏱️&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Hasil solusi ini juga kami kirim dalam bentuk &lt;strong&gt;screenshot dari AI&lt;/strong&gt; untuk menunjukkan &lt;strong&gt;kecepatan dan efisiensinya&lt;/strong&gt;. Tujuannya, pelan-pelan membuat mereka &lt;strong&gt;penasaran terhadap AI&lt;/strong&gt;. 😉&lt;/p&gt;

&lt;h4&gt;
  
  
  Otomasi Proses Berulang
&lt;/h4&gt;

&lt;p&gt;Kami juga memperlihatkan bagaimana AI bisa &lt;strong&gt;mempercepat tugas-tugas yang berulang&lt;/strong&gt; , seperti:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Pembuatan Data Dummy&lt;/strong&gt; : Saat pertama kali mengembangkan backend, biasanya mereka membutuhkan waktu lama untuk membuat data mock. Dengan AI, mereka hanya perlu memberikan model, dan AI langsung menyediakan data yang diperlukan. Ini biasanya kita sering nge-spill di Slack, seperti, “Wow, pakai AI gak perlu ribet!” 😃&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Otomasi Testing&lt;/strong&gt; : QA yang sebelumnya membuat skrip manual di Postman kini bisa menggunakan &lt;a href="https://www.postman.com/product/postbot/" rel="noopener noreferrer"&gt;&lt;strong&gt;Postbot&lt;/strong&gt;&lt;/a&gt; untuk secara otomatis menghasilkan &lt;strong&gt;automation testing&lt;/strong&gt; berdasarkan respons API. 🤖&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Hal-hal kecil ini kita ulang terus menerus untuk &lt;strong&gt;menginfluence teman-teman dev lainnya&lt;/strong&gt; agar tertarik explore dan pakai AI.&lt;/p&gt;

&lt;h4&gt;
  
  
  Perlahan Tapi Pasti
&lt;/h4&gt;

&lt;p&gt;Melalui langkah-langkah ini, &lt;strong&gt;perlahan tapi pasti&lt;/strong&gt; , tim kami mulai melihat AI sebagai alat yang bukan hanya membantu, tetapi juga &lt;strong&gt;meningkatkan produktivitas&lt;/strong&gt; mereka secara signifikan. 💯&lt;/p&gt;




&lt;h3&gt;
  
  
  AI as a Partner 🤝
&lt;/h3&gt;

&lt;p&gt;Sekarang &lt;strong&gt;hampir semua engineer di tim kami&lt;/strong&gt; sudah menggunakan AI dalam proses development. Yang menarik, beberapa teman-teman yang dulu ragu malah sekarang &lt;strong&gt;lebih aktif mencoba fitur-fitur baru&lt;/strong&gt; dibandingkan saya sendiri dan mengikuti perkembangannya. Contohnya, &lt;a href="https://github.blog/news-insights/product-news/bringing-developer-choice-to-copilot/" rel="noopener noreferrer"&gt;waktu &lt;strong&gt;GitHub Copilot&lt;/strong&gt; merilis fitur yang mendukung model-model seperti &lt;strong&gt;Claude&lt;/strong&gt; atau &lt;strong&gt;OpenAI o1&lt;/strong&gt;&lt;/a&gt;. Fitur ini masih dalam tahap preview, tapi mereka langsung &lt;strong&gt;antusias&lt;/strong&gt; minta diaktifkan fiturnya, karena mereka &lt;strong&gt;nggak sabar&lt;/strong&gt; ingin explore model Claude. 😄&lt;/p&gt;

&lt;h4&gt;
  
  
  AI Jadi Teman Diskusi yang Nggak Pernah Capek dan Bosan 💬
&lt;/h4&gt;

&lt;p&gt;AI juga jadi semacam &lt;strong&gt;teman diskusi&lt;/strong&gt; untuk mereka yang sering bekerja sendiri di tim. Saya ingat salah satu mobile developer kami yang sempat curhat,&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“&lt;em&gt;Bang, di mobile karena saya sendiri saja,&lt;/em&gt; &lt;strong&gt;&lt;em&gt;nggak ada teman untuk brainstorming&lt;/em&gt;&lt;/strong&gt;.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Setelah pakai AI, dia bilang jadi lumayan terbantu. Memang AI nggak bisa menggantikan diskusi langsung dengan manusia, tapi bisa kasih &lt;strong&gt;sudut pandang baru&lt;/strong&gt; , &lt;strong&gt;ide alternatif&lt;/strong&gt; atau sekadar jadi &lt;strong&gt;tempat bertanya tanpa perlu sungkan&lt;/strong&gt;. Dan yang paling penting, &lt;strong&gt;AI nggak pernah capek atau bosan ditanya&lt;/strong&gt;. 😁 Jadi nggak perlu harus ngomong, “&lt;em&gt;Permisi bang, kita bisa discuss sebentar nggak?&lt;/em&gt;” Atau dia nggak marah ketika kita bilang, “&lt;em&gt;Gimana-gimana tadi, saya nggak fokus, bisa ulangi lagi nggak penjelasannya?&lt;/em&gt;”&lt;/p&gt;

&lt;p&gt;Selain itu, AI bisa kita atur lagi. Contohnya, &lt;em&gt;“&lt;/em&gt; &lt;strong&gt;&lt;em&gt;Tolong jelaskan simpel dan pendek saja, jangan terlalu panjang dan bertele-tele.&lt;/em&gt;&lt;/strong&gt; &lt;em&gt;”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Nah, kalau ke teman kita, kita buat seperti ini, pasti dalam hatinya, &lt;strong&gt;“&lt;em&gt;Ini orang sudah minta bantu, ngatur-ngatur lagi.&lt;/em&gt;”&lt;/strong&gt;  😅&lt;/p&gt;

&lt;h4&gt;
  
  
  Knowledge Base dengan RAG 📚
&lt;/h4&gt;

&lt;p&gt;Selain membantu dalam coding, AI juga kami manfaatkan untuk hal-hal yang lebih administratif, seperti &lt;a href="https://partyrock.aws/u/ifansimplidots/Tp04du0L4/SimpliDOTS-ISO-27001-and-SMKI" rel="noopener noreferrer"&gt;&lt;strong&gt;tanya jawab prosedur ISO 27001&lt;/strong&gt;&lt;/a&gt;. Biasanya, ada pertanyaan seperti, “ &lt;strong&gt;&lt;em&gt;Apakah langkah ini melanggar standar ISO?&lt;/em&gt;&lt;/strong&gt; ” atau “ &lt;strong&gt;&lt;em&gt;Bagaimana caranya meminimalkan risiko ini?&lt;/em&gt;&lt;/strong&gt; ” Dengan AI, kami bisa mendapatkan &lt;strong&gt;jawaban awal&lt;/strong&gt; untuk bahan diskusi. &lt;strong&gt;AI nggak selalu akurat 100%&lt;/strong&gt; , tapi cukup membantu memberikan &lt;strong&gt;gambaran awal&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Selain itu, ketika tim &lt;strong&gt;rilis fitur baru&lt;/strong&gt; , biasanya harus membuat &lt;strong&gt;release notes&lt;/strong&gt; yang digunakan tim Customer Success Associate atau Marketing. Dengan &lt;a href="https://partyrock.aws/u/ifansimplidots/88cXwUvUb/Knowledge-Based-SimpliDOTS" rel="noopener noreferrer"&gt;&lt;strong&gt;RAG (Retrieval-Augmented Generation)&lt;/strong&gt;&lt;/a&gt;, mereka tinggal unggah release notes-nya, dan AI bisa langsung menjawab pertanyaan seperti, &lt;strong&gt;&lt;em&gt;“Fitur baru ini apa keunggulannya untuk user?”&lt;/em&gt;&lt;/strong&gt; atau &lt;strong&gt;&lt;em&gt;“Apakah ada hal penting yang perlu disampaikan ke customer?”&lt;/em&gt;&lt;/strong&gt; Ini cukup &lt;strong&gt;menghemat waktu&lt;/strong&gt; dibanding mereka harus membaca dokumen secara manual dan harus meeting lagi ke tim produk dan engineer. ⏱️&lt;/p&gt;

&lt;h4&gt;
  
  
  Eksplorasi NotebookLM untuk Manajemen Informasi 📝
&lt;/h4&gt;

&lt;p&gt;Kami juga mencoba &lt;a href="https://notebooklm.google/" rel="noopener noreferrer"&gt;&lt;strong&gt;NotebookLM&lt;/strong&gt;&lt;/a&gt; dari Google. Konsepnya mirip RAG, tapi lebih fleksibel karena bisa &lt;strong&gt;menggabungkan berbagai sumber data&lt;/strong&gt; seperti PDF, link website, sampai catatan rapat. Misalnya, untuk satu fitur, semua dokumen seperti PRD, test case UAT, hingga catatan mingguan tim bisa disimpan di satu tempat. Jadi, kalau ada yang butuh informasi, &lt;strong&gt;tinggal tanya ke AI&lt;/strong&gt; tanpa harus bolak-balik membuka banyak file. 📂&lt;/p&gt;

&lt;h4&gt;
  
  
  AI untuk Komunikasi &amp;amp; Bahasa Gen Z 🗣️
&lt;/h4&gt;

&lt;p&gt;Dalam hal komunikasi, AI juga lumayan membantu, terutama dalam &lt;strong&gt;menyusun email atau dokumen formal dalam bahasa Inggris&lt;/strong&gt;. Saya contohnya &lt;strong&gt;nggak begitu fasih berbahasa Inggris&lt;/strong&gt; , jadi AI cukup sering jadi teman discuss dalam hal ini. 😅&lt;/p&gt;

&lt;p&gt;Dan satu hal lucu, saya juga pakai AI untuk &lt;strong&gt;memahami bahasa Gen Z&lt;/strong&gt;. Tim kami mayoritas Gen Z, dan mereka punya banyak istilah yang kadang bikin saya bingung. Saya sering meminta bantuan AI buat &lt;strong&gt;nge-translate&lt;/strong&gt; maksud mereka. Jadi, selain membantu soal teknis, AI juga jadi teman buat saya &lt;strong&gt;beradaptasi dengan cara komunikasi mereka&lt;/strong&gt; , terutama dalam komunikasi dengan Gen Z plus pakai bahasa Inggris. Ini &lt;strong&gt;double punchline&lt;/strong&gt;! Kenapa double punchline? Karena kedua hal tersebut saya nggak begitu fasih. 🤣&lt;/p&gt;

&lt;h4&gt;
  
  
  Mengurangi Distraksi 🚫📱
&lt;/h4&gt;

&lt;p&gt;Terakhir, AI membantu &lt;strong&gt;mengurangi distraksi&lt;/strong&gt; dalam pekerjaan. Sebelum ada AI, kalau ada masalah atau bug, kami sering harus &lt;strong&gt;bolak-balik antara browser dan code editor&lt;/strong&gt; untuk mencari solusi di StackOverflow. Sekarang, banyak masalah bisa &lt;strong&gt;diselesaikan langsung di editor&lt;/strong&gt; dengan bantuan AI. Misalnya, AI bisa membantu merekomendasikan cara membuat kode &lt;strong&gt;lebih rapi&lt;/strong&gt; , &lt;strong&gt;lebih readable&lt;/strong&gt; , atau bahkan &lt;strong&gt;lebih sesuai standar&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Buat kami, &lt;strong&gt;AI bukan hanya alat&lt;/strong&gt; , tapi &lt;strong&gt;partner&lt;/strong&gt; yang membantu &lt;strong&gt;mempercepat pekerjaan&lt;/strong&gt; , &lt;strong&gt;memberikan ide baru&lt;/strong&gt; , dan — tanpa kami sadari —  &lt;strong&gt;membuat proses kerja jadi lebih menyenangkan&lt;/strong&gt;. 🎉&lt;/p&gt;




&lt;h3&gt;
  
  
  💡Hiring &amp;amp; Onboarding: Fokus ke Attitude, Bukan Cuma Skill
&lt;/h3&gt;

&lt;p&gt;Selain di coding dan manajerial, kehadiran AI juga mengubah cara saya memandang proses &lt;strong&gt;hiring&lt;/strong&gt; dan &lt;strong&gt;onboarding&lt;/strong&gt; new member. Di &lt;strong&gt;SimpliDOTS&lt;/strong&gt; , kami sangat menjunjung tinggi &lt;a href="https://www.simplidots.com/tentang-kami/" rel="noopener noreferrer"&gt;&lt;strong&gt;culture fit&lt;/strong&gt;&lt;/a&gt;. Jadi, saat mencari kandidat baru, selain kemampuan teknis, kami juga memastikan mereka bisa beradaptasi dengan budaya &lt;strong&gt;kolaborasi&lt;/strong&gt; dan &lt;strong&gt;kerja&lt;/strong&gt; kami. 🤝&lt;/p&gt;

&lt;h4&gt;
  
  
  Dulu: Prioritaskan Skill, Sekarang: Seimbang dengan Attitude
&lt;/h4&gt;

&lt;p&gt;Dulu, saya sering memberi prioritas tinggi pada &lt;strong&gt;skill&lt;/strong&gt;. Kalau ada kandidat yang skill-nya luar biasa, tapi attitude-nya kurang, kadang tetap saya loloskan. Alasannya, saya berpikir &lt;strong&gt;kemampuan teknis bisa langsung memberikan hasil&lt;/strong&gt; yang terlihat. Tapi &lt;strong&gt;pengalaman mengajarkan hal lain&lt;/strong&gt;. Kandidat dengan skill tinggi tapi attitude yang kurang baik bisa menjadi &lt;strong&gt;tantangan di tim&lt;/strong&gt;  — bukan hanya sulit diajak kolaborasi, tapi juga bisa menciptakan &lt;strong&gt;lingkungan kerja yang tidak nyaman&lt;/strong&gt;. 😕&lt;/p&gt;

&lt;p&gt;Sekarang, saya lebih &lt;strong&gt;menyeimbangkan antara skill dan attitude&lt;/strong&gt;. Kenapa? Karena dengan adanya AI, &lt;strong&gt;kemampuan teknis bukan lagi satu-satunya penentu&lt;/strong&gt;. Banyak pekerjaan teknis yang bisa terbantu, bahkan dipermudah oleh AI. Tapi &lt;strong&gt;sikap&lt;/strong&gt; dan &lt;strong&gt;bagaimana seseorang berinteraksi dengan tim&lt;/strong&gt;  — itu yang sulit digantikan. 😊&lt;/p&gt;

&lt;h4&gt;
  
  
  Pandangan Kandidat Terhadap AI
&lt;/h4&gt;

&lt;p&gt;Dalam wawancara, salah satu pertanyaan yang sering saya ajukan adalah: “ &lt;strong&gt;&lt;em&gt;Bagaimana pandangan kamu tentang AI?&lt;/em&gt;&lt;/strong&gt; ” Saya ingin tahu apakah mereka melihat AI sebagai &lt;strong&gt;peluang&lt;/strong&gt; atau &lt;strong&gt;ancaman&lt;/strong&gt;. Kenapa ini penting? Karena di tim kami, &lt;strong&gt;AI bukan sekadar alat, tetapi bagian dari proses kerja&lt;/strong&gt;. 🤖&lt;/p&gt;

&lt;p&gt;Salah satu &lt;strong&gt;checkpoint&lt;/strong&gt; selama masa probation adalah memastikan mereka &lt;strong&gt;nyaman menggunakan AI&lt;/strong&gt; dalam proses development atau pekerjaan lainnya. Kalau sejak awal mereka sudah ragu atau melihat AI sebagai ancaman, kemungkinan besar mereka akan &lt;strong&gt;kesulitan beradaptasi di tim&lt;/strong&gt;.&lt;/p&gt;

&lt;h4&gt;
  
  
  AI Membantu Proses Interview &amp;amp; Onboarding
&lt;/h4&gt;

&lt;p&gt;AI juga membantu kami dalam proses seleksi. Misalnya: &lt;strong&gt;Generate Pertanyaan Wawancara&lt;/strong&gt; : AI bisa merekomendasikan pertanyaan berbasis pengalaman atau hasil tes teknis kandidat. Tapi tentu saja, kami tidak langsung menerima begitu saja. Kami tetap &lt;strong&gt;menyesuaikan&lt;/strong&gt; dan &lt;strong&gt;berdiskusi dengan tim&lt;/strong&gt; terkait relevansi dan fokus pertanyaan tersebut. Kadang-kadang bahkan terjadi &lt;strong&gt;perdebatan menarik&lt;/strong&gt; di antara kami dengan AI tentang mengapa dia merekomendasikan pertanyaan tersebut. 😄&lt;/p&gt;




&lt;h3&gt;
  
  
  Closing: AI Bukan Ancaman
&lt;/h3&gt;

&lt;p&gt;Jadi, itulah perjalanan kami dalam mengintegrasikan AI ke dalam berbagai aspek di tempat kerja, termasuk dalam proses hiring dan onboarding. &lt;strong&gt;AI memang membawa perubahan, tapi tidak semuanya seseram yang dibayangkan&lt;/strong&gt;. Malah, dengan memanfaatkan teknologi ini, kami jadi &lt;strong&gt;lebih kreatif&lt;/strong&gt; , &lt;strong&gt;lebih efisien&lt;/strong&gt; , dan lebih fokus pada hal-hal yang benar-benar penting — seperti &lt;strong&gt;membangun tim yang solid dengan budaya kerja yang positif&lt;/strong&gt;. 🎯&lt;/p&gt;

&lt;p&gt;Semoga cerita ini bisa memberikan &lt;strong&gt;gambaran dan motivasi&lt;/strong&gt; bagi teman-teman yang masih ragu, takut tergantikan, atau justru sedang mencari cara untuk mulai memanfaatkan AI di lingkungan kerja mereka. 😊&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;PS&lt;/strong&gt; : Saat ini kami baru sampai pengalaman AI sebagai partner coding. &lt;strong&gt;&lt;em&gt;Jadi, tolong jangan ada yang tanya, AI bisa jadi partner hidup nggak?&lt;/em&gt;&lt;/strong&gt;  😄&lt;/p&gt;

</description>
      <category>aiatwork</category>
      <category>leadership</category>
      <category>copilotprogramming</category>
      <category>engineering</category>
    </item>
  </channel>
</rss>
