<?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: Muhammadqodir</title>
    <description>The latest articles on DEV Community by Muhammadqodir (@mkhasanov).</description>
    <link>https://dev.to/mkhasanov</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%2F1109818%2Fed511a2c-b885-45ef-949c-56bfe2ef8e9c.png</url>
      <title>DEV Community: Muhammadqodir</title>
      <link>https://dev.to/mkhasanov</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mkhasanov"/>
    <language>en</language>
    <item>
      <title>Rol asosida huquqlarni (RBAC) to'g'ri loyihalash</title>
      <dc:creator>Muhammadqodir</dc:creator>
      <pubDate>Mon, 20 Jul 2026 05:40:29 +0000</pubDate>
      <link>https://dev.to/mkhasanov/rol-asosida-huquqlarni-rbac-togri-loyihalash-1ljf</link>
      <guid>https://dev.to/mkhasanov/rol-asosida-huquqlarni-rbac-togri-loyihalash-1ljf</guid>
      <description>&lt;p&gt;&lt;strong&gt;Rol va huquqni ajrating&lt;/strong&gt; — rol nom, huquq esa aniq harakat (salary.view, employees.delete). Rolga bir nechta huquq biriktiriladi. Shunda yangi rol qo'shish kod yozmasdan, faqat bazada amalga oshadi.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Markazlashgan tekshiruv&lt;/strong&gt; — har controller'da if (role === 'admin') yozish o'rniga, bitta middleware orqali tekshiring:&lt;br&gt;
router.delete('/employees/:id', checkPermission('employees.delete'), handler);&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Haqiqiy himoya backendda bo'ladi&lt;/strong&gt; — frontendda tugma yashirish faqat qulaylik uchun, xavfsizlik emas.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Faqat kerakli huquq bering&lt;/strong&gt; — ehtiyot sharti deb ortiqcha huquq qo'shmang.&lt;br&gt;
Boshida murakkab tuyulsa ham, loyiha o'sganda aynan shu tuzilma vaqt tejaydi.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;❓Sizda huquqlar qanday boshqariladi — oddiy role check bilanmi yoki alohida permission tizimi bilan?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://t.me/WebBrogrammist" rel="noopener noreferrer"&gt;Telegram kanal&lt;/a&gt; — obuna bo'ling&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%2Fvepbhxxjtrnzolaaiick.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvepbhxxjtrnzolaaiick.jpg" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>productivity</category>
      <category>software</category>
    </item>
    <item>
      <title>Backend bilan bitta so'z tufayli yo'qotgan vaqtim</title>
      <dc:creator>Muhammadqodir</dc:creator>
      <pubDate>Sun, 19 Jul 2026 05:11:51 +0000</pubDate>
      <link>https://dev.to/mkhasanov/backend-bilan-bitta-soz-tufayli-yoqotgan-vaqtim-2hb2</link>
      <guid>https://dev.to/mkhasanov/backend-bilan-bitta-soz-tufayli-yoqotgan-vaqtim-2hb2</guid>
      <description>&lt;p&gt;Kofe do'konlari uchun tizimni frontend qismini qilayotgan edim. Ma'lumot kelganda ba'zi joylar bo'sh chiqardi — uzoq vaqt o'z kodimdan xato qidirdim.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Muammo boshqa joyda edi:&lt;/strong&gt; men price deb kutgan bo'lsam, backend cost deb yuborayotgan edi.&lt;/p&gt;

&lt;p&gt;Kichik nom farqi ko'zga tashlanmaydi, xato ham chiqmaydi — faqat ma'lumot yo'q ko'rinadi. Juda kichik xato, lekin shu va shunga o'xshash narsalar ko'p vaqt oladi.&lt;/p&gt;

&lt;p&gt;Jamoada ko'pincha eng katta xato texnik emas — kelishuv yo'qligi. &lt;br&gt;
&lt;strong&gt;Har loyihada birinchi qadam:&lt;/strong&gt; ma'lumot nomlarini va umuman loyihani oldindan yozma tarzda kelishib olish kerak.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;✍️ Izohga yozing:&lt;br&gt;
❓Siz qaysi kichik narsa ustida ko'p qolib ketgansiz?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://t.me/WebBrogrammist" rel="noopener noreferrer"&gt;Telegram kanal&lt;/a&gt; — obuna bo'ling&lt;/p&gt;

</description>
      <category>backend</category>
      <category>fullstack</category>
      <category>frontend</category>
      <category>productivity</category>
    </item>
    <item>
      <title>🏢 2 yil ichida 3 ta kompaniyada nima o'rgandim?</title>
      <dc:creator>Muhammadqodir</dc:creator>
      <pubDate>Sat, 18 Jul 2026 07:14:38 +0000</pubDate>
      <link>https://dev.to/mkhasanov/resd-cl</link>
      <guid>https://dev.to/mkhasanov/resd-cl</guid>
      <description>&lt;p&gt;2 yil ichida 3 xil joy, 3 xil atmosfera, har biri boshqa dars.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Birinchisi — banklar uchun boshqaruv tizimi (xodimlar, oyliklar, hujjat aylanishi) + support. Bu yerda tushundim: tizim yozish oson, uni ishlab turish qiyinroq.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ikkinchisi — talabalar uchun ish topish startap platforma va Davlat Aktivlari Agentligi uchun moliyaviy tizim. Startapdan davlat miqyosigacha — talab darajasi butunlay boshqacha ekan.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Uchinchisi — kofe do'konlari uchun startap loyiha. Boshqa birov boshlagan kodni davom ettirdim. Bu yerda o'rgandim: birovning kodi ustiga qurish — noldan yozishdan ko'ra ko'proq sabr talab qiladi.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Xulosa qilganda, kod yozish — ishning bir qismi. Asosiysi, muammoni tushunish va tizimni real hayotda ishlata olish.&lt;/p&gt;

&lt;p&gt;❓Sizga qaysi ko'proq o'rgatgan — noldan yozishmi yoki boshqa kod ustiga qurishmi?&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://t.me/WebBrogrammist" rel="noopener noreferrer"&gt;Telegram kanal&lt;/a&gt; — obuna bo'ling&lt;/p&gt;

</description>
      <category>programming</category>
      <category>productivity</category>
      <category>startup</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Sotuvda yurib ham, dasturlashni tashlab qo'ymadim...</title>
      <dc:creator>Muhammadqodir</dc:creator>
      <pubDate>Fri, 17 Jul 2026 16:51:30 +0000</pubDate>
      <link>https://dev.to/mkhasanov/sotuvda-yurib-ham-dasturlashni-tashlab-qoymadim-3a94</link>
      <guid>https://dev.to/mkhasanov/sotuvda-yurib-ham-dasturlashni-tashlab-qoymadim-3a94</guid>
      <description>&lt;p&gt;Ish jarayonida ham loyihalar ustida ishlashda davom etib, yangi texnik bilimlar o'rgandim. &lt;/p&gt;

&lt;p&gt;Shu davrda bir firma uchun tizim qurib berdim — xodimlarning ish jarayonini, bajargan ishlarini va oyliklarini hisoblaydigan platforma.&lt;/p&gt;

&lt;p&gt;Tizimda har bir xodim roli alohida ruxsat va interfeys bor edi — har kim faqat o'ziga kerakli qismni ko'radi, admin esa umumiy nazoratni.&lt;/p&gt;

&lt;p&gt;Bu loyiha menga shuni ko'rsatdi: sotuvda o'rgangan narsa — mijoz muammosini tinglash, uni aniq talabga aylantirish — dasturlashda ham aynan shu tarzda ishlaydi.&lt;/p&gt;

&lt;p&gt;Yaxshi kod yozishdan oldin, mijozning muammosini yaxshi tushunish kerak.&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://t.me/WebBrogrammist" rel="noopener noreferrer"&gt;Telegram kanal&lt;/a&gt; — obuna bo'ling&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>programming</category>
      <category>career</category>
      <category>discuss</category>
    </item>
    <item>
      <title>6 oyga yo'q bolib ketdim</title>
      <dc:creator>Muhammadqodir</dc:creator>
      <pubDate>Fri, 17 Jul 2026 04:05:26 +0000</pubDate>
      <link>https://dev.to/mkhasanov/6-oyga-yoq-bolib-ketdim-1p74</link>
      <guid>https://dev.to/mkhasanov/6-oyga-yoq-bolib-ketdim-1p74</guid>
      <description>&lt;p&gt;Sezgan bo'lsangiz 5-6 oy davomida yo'q bo'lib ketdim. Sababi, dasturlashdan charchagandim. Doim kod, doim ekran — nimadir o'zgarish qilish kerak edi. &lt;/p&gt;

&lt;p&gt;Juda introvert bo'lib ketgandim, lekin menga insonlar bilan muloqot yoqardi.&lt;/p&gt;

&lt;p&gt;Shu payt qidirib-qidirib sotuv degan kasbni topdim. Buni yana bir foyda jihati, kelajakda mahsulotimni, xizmatimni sota olishim va o'z shaxsiy brendimni qurishda ham, har qanday sohada asosiy narsa bu muomala.&lt;/p&gt;

&lt;p&gt;Nutqni ravon qilish, odamlarni tushunish, muomala — hayotda hamma narsa aslida shunga bog'liq.&lt;/p&gt;

&lt;p&gt;Bir necha oy shu soha bo'yicha tajribaga to'pladim. Muzokara, mijoz bilan ishlash — bularni ichidan o'rgandim, faqat nazariyani eman.&lt;/p&gt;

&lt;p&gt;Endi bu ikkisini birlashtirib olib borishga qaror qildim: dasturlash + sotuv.&lt;br&gt;
Kod yozish bilan bir qatorda, uni qanday taqdim etish, sotishni ham bilish.&lt;/p&gt;

&lt;p&gt;Xullas, Come Back to IT!&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://t.me/WebBrogrammist" rel="noopener noreferrer"&gt;Telegram kanal&lt;/a&gt; — obuna bo'ling&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%2F9q7ea69u50ucc3oasl6n.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9q7ea69u50ucc3oasl6n.jpg" alt=" " width="450" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>productivity</category>
      <category>career</category>
    </item>
    <item>
      <title>Apache Airflow Explained for Beginners</title>
      <dc:creator>Muhammadqodir</dc:creator>
      <pubDate>Fri, 05 Jun 2026 00:07:30 +0000</pubDate>
      <link>https://dev.to/mkhasanov/apache-airflow-explained-for-beginners-jom</link>
      <guid>https://dev.to/mkhasanov/apache-airflow-explained-for-beginners-jom</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%2Fswd20xwo9sg5us1ezyzc.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%2Fswd20xwo9sg5us1ezyzc.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You have a data task. It runs every day. You run it manually.&lt;br&gt;
That works. Until it doesn't.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is Apache Airflow?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Airflow is an open-source platform to programmatically author, schedule, and monitor workflows.&lt;/p&gt;

&lt;p&gt;In simple terms: you write your tasks in Python, tell Airflow when and how to run them — and it handles the rest.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key concepts:&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;&lt;strong&gt;DAG&lt;/strong&gt;&lt;/em&gt; — Directed Acyclic Graph. Just a fancy word for "a list of tasks with an order."&lt;br&gt;
&lt;strong&gt;&lt;em&gt;Task&lt;/em&gt;&lt;/strong&gt; — one unit of work (run a script, move a file, query a database)&lt;br&gt;
&lt;strong&gt;&lt;em&gt;Scheduler&lt;/em&gt;&lt;/strong&gt; — runs your DAG on time, every time&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A simple DAG looks like this:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;airflow&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;DAG&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;airflow.operators.python&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;PythonOperator&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;extract&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Extracting data...&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="nc"&gt;DAG&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;my_first_dag&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;start_date&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nf"&gt;datetime&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2024&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;schedule&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;@daily&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;task&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;PythonOperator&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;task_id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;extract&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;python_callable&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;extract&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's it. Airflow will run this every day automatically.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why should you care?&lt;/strong&gt;&lt;br&gt;
→ No more manual runs&lt;br&gt;
→ Visual dashboard to monitor everything&lt;br&gt;
→ Retry failed tasks automatically&lt;/p&gt;

&lt;p&gt;If you're starting with data engineering — Airflow is one of the first tools to learn&lt;/p&gt;

</description>
      <category>airflow</category>
      <category>dataengineering</category>
      <category>python</category>
      <category>programming</category>
    </item>
    <item>
      <title>Transitioning to Data Engineering: My Top 4 Essential Tools So Far</title>
      <dc:creator>Muhammadqodir</dc:creator>
      <pubDate>Tue, 02 Jun 2026 06:35:58 +0000</pubDate>
      <link>https://dev.to/mkhasanov/transitioning-to-data-engineering-my-top-4-essential-tools-so-far-19l8</link>
      <guid>https://dev.to/mkhasanov/transitioning-to-data-engineering-my-top-4-essential-tools-so-far-19l8</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%2F0y3ga5dmu01cm2pa322c.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%2F0y3ga5dmu01cm2pa322c.jpg" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Switching focus from Frontend development to Data Engineering means shifting from building user interfaces to architecting robust data pipelines. It’s a completely different mindset, and the learning curve is exciting!&lt;/p&gt;

&lt;p&gt;As I dive deeper into the world of Data, these are the 4 essential tools and concepts that have become the absolute backbone of my daily learning roadmap:&lt;/p&gt;

&lt;p&gt;1️⃣ &lt;strong&gt;Python (The Swiss Army Knife):&lt;/strong&gt; Coming from JavaScript/TypeScript, picking up Python has been a breath of fresh air. From writing custom ETL scripts to data manipulation with Pandas, it's the ultimate language for data manipulation.&lt;/p&gt;

&lt;p&gt;2️⃣ &lt;strong&gt;Advanced SQL (The Core):&lt;/strong&gt; It's not just about simple SELECT statements anymore. Mastering Window Functions, CTEs (Common Table Expressions), and query optimization is where the real magic happens when interacting with Data Warehouses.&lt;/p&gt;

&lt;p&gt;3️⃣ &lt;strong&gt;ETL/ELT Pipelines:&lt;/strong&gt; Understanding how to efficiently Extract, Transform, and Load data without breaking downstream analytics. Moving from UI state management to Data state management is a game-changer.&lt;/p&gt;

&lt;p&gt;4️⃣ &lt;strong&gt;Cloud Ecosystems &amp;amp; Modern Stack:&lt;/strong&gt; Exploring how data flows through modern cloud environments and learning how big data tools manage scale.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The transition requires patience, but applying my previous engineering background to these new tools makes the journey incredibly rewarding.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;💡 To the Data Engineers in my network: What is the one tool or concept you believe is a "must-have" for someone transitioning into the field today? Drop your advice below!&lt;/p&gt;

</description>
      <category>dataengineering</category>
      <category>python</category>
      <category>sql</category>
      <category>cloud</category>
    </item>
    <item>
      <title>From Frontend to Data Engineering: Why I Made the Switch?</title>
      <dc:creator>Muhammadqodir</dc:creator>
      <pubDate>Mon, 01 Jun 2026 05:55:11 +0000</pubDate>
      <link>https://dev.to/mkhasanov/from-frontend-to-data-engineering-why-i-made-the-switch-1hh8</link>
      <guid>https://dev.to/mkhasanov/from-frontend-to-data-engineering-why-i-made-the-switch-1hh8</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%2Fdv6jjijf610tj5bixqey.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%2Fdv6jjijf610tj5bixqey.jpg" alt=" " width="780" height="496"&gt;&lt;/a&gt;&lt;br&gt;
I started my tech journey in the visual world of Frontend development. Creating interfaces and crafting user experiences was amazing, but over time, I found myself drawn to a different force behind the scenes — Data.&lt;/p&gt;

&lt;p&gt;Behind every beautiful UI lies terabytes of data. Managing and structuring that flow is where I saw my next challenge, leading me to transition into Data Engineering.&lt;/p&gt;

&lt;p&gt;Here is why this field excites me:&lt;br&gt;
Engineering at Scale: Building reliable Data Pipelines to route and process millions of data points efficiently.&lt;/p&gt;

&lt;p&gt;The Foundation of AI: Without a solid Data Engineer, no Advanced AI or Data Science model can succeed. "Bad data in, bad data out" — we build the solid foundation.&lt;/p&gt;

&lt;p&gt;New Technical Horizons: Diving deep into the Python ecosystem, complex SQL, and Big Data technologies.&lt;/p&gt;

&lt;p&gt;My Frontend background in code architecture and logical thinking has been a huge plus during this transition. Shifting gears isn't easy, but pushing past comfort zones is where the real growth happens!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Have you ever made a career transition in tech? What motivated your switch?&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Let's connect and share stories in the comments!&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>dataengineering</category>
      <category>python</category>
      <category>sql</category>
      <category>data</category>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>Muhammadqodir</dc:creator>
      <pubDate>Fri, 10 Oct 2025 04:41:28 +0000</pubDate>
      <link>https://dev.to/mkhasanov/-5cli</link>
      <guid>https://dev.to/mkhasanov/-5cli</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mkhasanov/typescript-utility-types-1c71" class="crayons-story__hidden-navigation-link"&gt;TypeScript Utility Types&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mkhasanov" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F1109818%2F3af64e78-0a7b-4b30-8aec-b9063a12da59.jpg" alt="mkhasanov profile" class="crayons-avatar__image" width="800" height="896"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mkhasanov" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Muhammadqodir
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Muhammadqodir
                
              
              &lt;div id="story-author-preview-content-2910412" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mkhasanov" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F1109818%2F3af64e78-0a7b-4b30-8aec-b9063a12da59.jpg" class="crayons-avatar__image" alt="" width="800" height="896"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Muhammadqodir&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mkhasanov/typescript-utility-types-1c71" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Oct 10 '25&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mkhasanov/typescript-utility-types-1c71" id="article-link-2910412"&gt;
          TypeScript Utility Types
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/typescript"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;typescript&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/development"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;development&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mkhasanov/typescript-utility-types-1c71" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;5&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mkhasanov/typescript-utility-types-1c71#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            1 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>typescript</category>
      <category>webdev</category>
      <category>programming</category>
      <category>development</category>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>Muhammadqodir</dc:creator>
      <pubDate>Mon, 21 Jul 2025 05:36:30 +0000</pubDate>
      <link>https://dev.to/mkhasanov/-1o65</link>
      <guid>https://dev.to/mkhasanov/-1o65</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mkhasanov/challenge-office-edition-holistic-webdev-2f40" class="crayons-story__hidden-navigation-link"&gt;Challenge: Office Edition – Holistic Webdev&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
      &lt;a href="https://dev.to/mkhasanov/challenge-office-edition-holistic-webdev-2f40" class="crayons-article__context-note crayons-article__context-note__feed"&gt;&lt;p&gt;Frontend Challenge Holistic Webdev Submission&lt;/p&gt;

&lt;/a&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mkhasanov" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F1109818%2Fed511a2c-b885-45ef-949c-56bfe2ef8e9c.png" alt="mkhasanov profile" class="crayons-avatar__image" width="800" height="800"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mkhasanov" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Muhammadqodir
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Muhammadqodir
                
              
              &lt;div id="story-author-preview-content-2689252" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mkhasanov" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F1109818%2Fed511a2c-b885-45ef-949c-56bfe2ef8e9c.png" class="crayons-avatar__image" alt="" width="800" height="800"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Muhammadqodir&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mkhasanov/challenge-office-edition-holistic-webdev-2f40" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jul 15 '25&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mkhasanov/challenge-office-edition-holistic-webdev-2f40" id="article-link-2689252"&gt;
          Challenge: Office Edition – Holistic Webdev
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/devchallenge"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;devchallenge&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/frontendchallenge"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;frontendchallenge&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/css"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;css&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/javascript"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;javascript&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mkhasanov/challenge-office-edition-holistic-webdev-2f40" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;17&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mkhasanov/challenge-office-edition-holistic-webdev-2f40#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              3&lt;span class="hidden s:inline"&gt;&amp;nbsp;comments&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            1 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>devchallenge</category>
      <category>frontendchallenge</category>
      <category>css</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Challenge: Office Edition – Holistic Webdev</title>
      <dc:creator>Muhammadqodir</dc:creator>
      <pubDate>Tue, 15 Jul 2025 06:34:59 +0000</pubDate>
      <link>https://dev.to/mkhasanov/challenge-office-edition-holistic-webdev-2f40</link>
      <guid>https://dev.to/mkhasanov/challenge-office-edition-holistic-webdev-2f40</guid>
      <description>&lt;h3&gt;
  
  
  🎯 What I built
&lt;/h3&gt;

&lt;p&gt;An intranet-style homepage with a clean dark theme, background video hero, form validation with modal confirmation, and smooth responsive animations.&lt;/p&gt;

&lt;h3&gt;
  
  
  🔍 Highlights
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;🔹 Video background + overlay&lt;/li&gt;
&lt;li&gt;🔹 TailwindCSS dark theme&lt;/li&gt;
&lt;li&gt;🔹 AOS-powered animations&lt;/li&gt;
&lt;li&gt;🔹 Responsive design&lt;/li&gt;
&lt;li&gt;🔹 JavaScript form validation + modal&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🔧 Tech Stack
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;HTML&lt;/li&gt;
&lt;li&gt;TailwindCSS&lt;/li&gt;
&lt;li&gt;Vanilla JavaScript&lt;/li&gt;
&lt;li&gt;AOS (Animate On Scroll)&lt;/li&gt;
&lt;li&gt;Netlify (for deployment)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  📦 Live Demo &amp;amp; Source Code
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;🔗 &lt;a href="https://mahmudiysoft.netlify.app" rel="noopener noreferrer"&gt;Live Demo&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;💾 &lt;a href="https://github.com/mahmudiyuz/mahmudiysoft.uz" rel="noopener noreferrer"&gt;Source Code on GitHub&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🧠 What I learned
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Fine-tuning performance with animations&lt;/li&gt;
&lt;li&gt;DOM-based form validation and error messages&lt;/li&gt;
&lt;li&gt;Custom modal handling and accessibility concerns&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;📝 Submitted for the &lt;a href="https://dev.to/devteam/join-our-newest-frontend-challenge-office-edition-sponsored-by-axero-with-3000-in-prizes-21ap"&gt;Axero Office Edition Frontend Challenge&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>frontendchallenge</category>
      <category>css</category>
      <category>javascript</category>
    </item>
  </channel>
</rss>
