<?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: Artak Matiniani</title>
    <description>The latest articles on DEV Community by Artak Matiniani (@arttheache98).</description>
    <link>https://dev.to/arttheache98</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3302052%2F1d29d5c0-ffcd-4494-89d2-dbb41cad26c7.jpeg</url>
      <title>DEV Community: Artak Matiniani</title>
      <link>https://dev.to/arttheache98</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/arttheache98"/>
    <language>en</language>
    <item>
      <title>Scaling Async Tasks in Django with Celery &amp; Redis: The Human Side of a Technical Challenge</title>
      <dc:creator>Artak Matiniani</dc:creator>
      <pubDate>Fri, 11 Jul 2025 10:29:15 +0000</pubDate>
      <link>https://dev.to/arttheache98/scaling-async-tasks-in-django-with-celery-redis-the-human-side-of-a-technical-challenge-38n2</link>
      <guid>https://dev.to/arttheache98/scaling-async-tasks-in-django-with-celery-redis-the-human-side-of-a-technical-challenge-38n2</guid>
      <description>&lt;p&gt;I still remember the moment my Django app hit a brick wall.&lt;/p&gt;

&lt;p&gt;A user would click Submit, and then… silence. Nothing happened. The entire interface froze, like an awkward conversation that goes nowhere, while the server chugged along trying to process file uploads and data imports synchronously.&lt;/p&gt;

&lt;p&gt;It was painful. And it was absolutely unsustainable.&lt;/p&gt;

&lt;p&gt;Every heavy operation was blocking the entire user experience. There was no way I could scale, no way I could keep growing, if every new user had to wait for the server to finish before getting their feedback.&lt;/p&gt;

&lt;p&gt;That was my breaking point — the moment I realized I needed to offload these heavyweight tasks to the background. I had heard of Celery and Redis, and I decided to take the plunge.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Fear Factor
&lt;/h2&gt;

&lt;p&gt;Let’s be honest: adding Celery and Redis to your stack for the first time is terrifying.&lt;/p&gt;

&lt;p&gt;I was worried I’d break everything. I’d built core features that kind of worked, and here I was about to introduce two new moving parts, layering on a message broker, a worker, background queues. It felt like balancing on a tightrope while holding flaming swords.&lt;/p&gt;

&lt;p&gt;What if my logic failed?&lt;br&gt;
What if I had to rebuild the entire architecture from scratch?&lt;br&gt;
What if I &lt;em&gt;broke&lt;/em&gt; the one thing that was at least working?&lt;/p&gt;

&lt;p&gt;That fear is real — and if you’re reading this in the same spot, please know you’re not alone.&lt;/p&gt;

&lt;p&gt;My Hardest Lesson: The Memory Leak Weekend&lt;/p&gt;

&lt;p&gt;If there’s one moment burned into my brain, it’s the memory leak weekend.&lt;/p&gt;

&lt;p&gt;I was processing large datasets inside Celery tasks but forgot to clean up my database connections properly. At first, everything ran beautifully. But a few hours later, Redis started hitting its memory limits, and the entire system crashed like a house of cards.&lt;/p&gt;

&lt;p&gt;I felt overwhelmed, exhausted, and honestly a bit defeated.&lt;/p&gt;

&lt;p&gt;It took a full weekend of relentless debugging, staring at task logs, restarting containers, until I finally tracked down the missing cleanup. The lesson was harsh but unforgettable:&lt;/p&gt;

&lt;p&gt;Async is not just about moving code to the background.&lt;br&gt;
It’s about thinking differently — especially around resource management and observability.&lt;/p&gt;

&lt;h2&gt;
  
  
  A Moment of Pride
&lt;/h2&gt;

&lt;p&gt;I’d be lying if I said it was all horror stories, though.&lt;/p&gt;

&lt;p&gt;There was this amazing moment when I finally got my async file processing pipeline humming. Users could upload large files, get immediate feedback, and see a progress bar updating in real-time while continuing to use other parts of the app.&lt;/p&gt;

&lt;p&gt;No freezing. No endless spinning wheel of doom.&lt;/p&gt;

&lt;p&gt;It was a huge personal victory. It proved to me that I could design, build, and ship a scalable architecture, even if it was way outside my comfort zone at first.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;One Bit of Advice&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;If you’re a junior dev about to add Celery to your Django project, please:&lt;/p&gt;

&lt;p&gt;👉 Start small. Don’t try to async-ify everything at once.&lt;br&gt;
👉 Pick one simple, slow operation (email sending is perfect) and move just that to Celery.&lt;br&gt;
👉 Set up monitoring tools like Flower on day one.&lt;br&gt;
👉 And absolutely design for graceful failures — tasks will fail, and you need to communicate that clearly to users.&lt;/p&gt;

&lt;p&gt;The async architecture is only as strong as its failure handling.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Human Takeaway
&lt;/h2&gt;

&lt;p&gt;In the end, this challenge taught me something about, not just about technology.&lt;/p&gt;

&lt;p&gt;I discovered that I’m incredibly patient and persistent when I believe in something. Even after hours of frustration, I kept showing up because I genuinely cared about making this work for my users.&lt;/p&gt;

&lt;p&gt;That’s probably the best lesson of all:&lt;br&gt;
When you care deeply about what you’re building, you’ll find a way to keep pushing forward, no matter how many memory leaks or broken queues stand in your way.&lt;/p&gt;

&lt;p&gt;If you’re on the fence about async, or you’re terrified of adding Celery, know this: it is scary. But it’s also empowering. It will make you a better, more resilient developer, and it will unlock performance and user experience wins you never thought possible.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stay curious. Stay humble. And keep moving forward — even if you break things a few times along the way.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>redis</category>
      <category>python</category>
    </item>
    <item>
      <title>🩺 How I Built MedicOS to Reduce Drug Errors</title>
      <dc:creator>Artak Matiniani</dc:creator>
      <pubDate>Sat, 05 Jul 2025 11:26:47 +0000</pubDate>
      <link>https://dev.to/arttheache98/how-i-built-medicos-to-reduce-drug-errors-442m</link>
      <guid>https://dev.to/arttheache98/how-i-built-medicos-to-reduce-drug-errors-442m</guid>
      <description>&lt;p&gt;Ever since I left medicine to become a developer, I dreamed of building something that could help doctors and patients at the same time. MedicOS is that dream taking shape.&lt;/p&gt;

&lt;p&gt;In Georgia, many patients see doctors too late — with advanced conditions that require multiple medications. This means doctors must juggle polypharmacy, and even the best doctors can struggle to catch every drug interaction.&lt;/p&gt;

&lt;p&gt;That’s where MedicOS comes in.&lt;/p&gt;

&lt;p&gt;What is MedicOS?&lt;br&gt;
It’s a Django-based medication safety assistant that checks for drug interactions using OpenFDA, suggests alternatives, and reminds patients to take their medications through text or voice messages. I wanted patients to stay on track, and doctors to prescribe more confidently.&lt;/p&gt;

&lt;p&gt;API integrations&lt;br&gt;
One of the biggest wins was integrating with OpenFDA. They offer a huge amount of structured data, which made building the drug safety checks much faster. Storing patient medication lists securely was also crucial — PostgreSQL gave me a solid, reliable backend for this.&lt;/p&gt;

&lt;p&gt;Voice reminders with Polly&lt;br&gt;
I learned that many elderly patients struggle with text reminders. So I used AWS Polly to generate voice messages. That was my first time working with async Python — sending messages and transcribing them without blocking the system. It was a mind-expanding moment, even if a bit scary at first.&lt;/p&gt;

&lt;p&gt;What I learned about data structure and flow&lt;br&gt;
MedicOS taught me how critical it is to keep the data simple and predictable. From normalizing drug entries, to mapping side effects, to handling multilingual voice instructions — every layer had to flow seamlessly. PostgreSQL schemas, Django models, and message queues all had to align.&lt;/p&gt;

&lt;p&gt;Was it hard?&lt;br&gt;
Of course — I’m human, and the bugs were relentless. But every bug taught me something.&lt;/p&gt;

&lt;p&gt;How I feel&lt;br&gt;
Pride. Pure pride. Watching MedicOS come alive and do exactly what I imagined feels incredible. It wasn’t stressful — it was a pleasure. I got to blend my medical knowledge with my engineering skills and create something that might, one day, actually save lives.&lt;/p&gt;

&lt;p&gt;👉 If you could automate one thing in healthcare, what would it be? I’d love to hear your ideas — maybe they’ll spark my next project.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>python</category>
      <category>django</category>
    </item>
    <item>
      <title>How I Built ScrapeFlow AI: End-to-End AI Automation for Content Creators</title>
      <dc:creator>Artak Matiniani</dc:creator>
      <pubDate>Mon, 30 Jun 2025 10:58:39 +0000</pubDate>
      <link>https://dev.to/arttheache98/how-i-built-scrapeflow-ai-end-to-end-ai-automation-for-content-creators-km1</link>
      <guid>https://dev.to/arttheache98/how-i-built-scrapeflow-ai-end-to-end-ai-automation-for-content-creators-km1</guid>
      <description>&lt;p&gt;“The measure of intelligence is the ability to adapt.” - Einstein&lt;/p&gt;

&lt;p&gt;When I started working on ScrapeFlow AI, I wasn’t personally tired of posting content every day - but I realized a lot of people are. Content creators, founders, and marketers spend hours scheduling and publishing the same types of posts again and again. That’s a perfect candidate for automation.&lt;/p&gt;

&lt;p&gt;Inspired by Einstein’s quote above, I wanted to build something that would help people adapt - and free up their time for more meaningful work. ScrapeFlow AI became a proof-of-concept that showed me how powerful software can be: you can have an idea today, and make it real with some reading, experimenting, and a bit of courage.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;Tech Stack: Django, Celery, Redis, DeepSeek&lt;/p&gt;

&lt;p&gt;I chose Django because I feel comfortable with MVC frameworks, and Django lets you seamlessly work on every aspect of your application.&lt;/p&gt;

&lt;p&gt;This was actually my first time using Celery and Redis - but I’m happy with how quickly I learned. Celery handled the asynchronous background tasks, while Redis acted as the broker.&lt;/p&gt;

&lt;p&gt;For AI-driven content generation, I experimented with DeepSeek. Initially I tried to run a local version to keep the costs at $0, but even when calling the API, it was extremely affordable - only about $0.08 for nearly two months of use!&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;Challenges and Lessons&lt;/p&gt;

&lt;p&gt;One of the hardest parts was fine-tuning the AI prompts. Every time I changed something in the post-creation logic (like tweaking the tone), I had to restart and rebuild the entire Docker container. Sure there were painful moments - but breaking down the work into small steps and celebrating each new feature kept me motivated.&lt;/p&gt;

&lt;p&gt;If I had more time, or a team, I’d love to add things like image generation and more advanced post design. But I’m happy with v1. There weren’t really any “obvious in hindsight” mistakes, which feels good.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;What I’d Do Next&lt;/p&gt;

&lt;p&gt;ScrapeFlow AI showed me that the possibilities in the dev world are endless. I’d absolutely expand it with more features if I worked on it again, especially richer post-creation with visuals.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;See It in Action&lt;/p&gt;

&lt;p&gt;🎥 YouTube Demo: &lt;a href="https://youtu.be/Pf5N3wnn1hA?si=OF4txfscTfuKm7v9" rel="noopener noreferrer"&gt;https://youtu.be/Pf5N3wnn1hA?si=OF4txfscTfuKm7v9&lt;/a&gt;&lt;br&gt;
💻 GitHub Repository: &lt;a href="https://github.com/ArtTheAche98/ScrapeFlowAI" rel="noopener noreferrer"&gt;https://github.com/ArtTheAche98/ScrapeFlowAI&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;If you’re a content creator spending hours manually scheduling posts — take a look at ScrapeFlow AI. Automate, adapt, and focus on the work that matters most.&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%2F6kjevwuhplpjq5731txc.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%2F6kjevwuhplpjq5731txc.png" alt="Image description" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>django</category>
      <category>ai</category>
    </item>
    <item>
      <title>Why I Left Medicine for Software Engineering</title>
      <dc:creator>Artak Matiniani</dc:creator>
      <pubDate>Sat, 28 Jun 2025 16:22:37 +0000</pubDate>
      <link>https://dev.to/arttheache98/why-i-left-medicine-for-software-engineering-272</link>
      <guid>https://dev.to/arttheache98/why-i-left-medicine-for-software-engineering-272</guid>
      <description>&lt;p&gt;Ever since grade five, I knew I wanted to become a doctor. I even wrote an essay about it - and I still keep it to this day. By the time I graduated, my classmates had signed my farewell shirt with “House MD” printed across the back. That should tell you how fully I’d embraced the dream.&lt;/p&gt;

&lt;p&gt;For years, I chased that goal with everything I had. I put in the hours, the effort, the late nights, determined to help people and make an impact.&lt;/p&gt;

&lt;p&gt;But somewhere along the way, something shifted.&lt;/p&gt;

&lt;p&gt;It wasn’t that I stopped caring. In fact, maybe I cared too much. The system I was in made it hard to care without burning out. Good work often went unnoticed. There was little room to breathe, to grow, or to experiment with new ideas.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;A Quiet Pull Toward Tech&lt;/p&gt;

&lt;p&gt;Even while immersed in medicine, I felt a quiet pull toward technology. Looking back, people around me saw it too. Friends would say, “You’d be great in tech.”&lt;/p&gt;

&lt;p&gt;The first time I truly explored that possibility was when I built a website for a brokerage project. The freedom of creating something from scratch, of seeing an idea come to life - it left a mark on me.&lt;/p&gt;

&lt;p&gt;And then, later on, watching someone close to me thrive after their own career switch gave me the final push I needed. I realized I didn’t have to stay stuck. I could make a change too.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;Why I Really Left&lt;/p&gt;

&lt;p&gt;I didn’t leave medicine because I gave up on it. I left because I realized there are many ways to help people, and sometimes the timing matters more than the title.&lt;/p&gt;

&lt;p&gt;Software engineering opened up a space for me to keep solving problems, just in a different language. It brought back a sense of structure and forward momentum. And it offered something medicine could not at that moment: a fair shot to build, to test, to learn - without being defined by where I was from, my degree, or my connections.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;What I Gained&lt;/p&gt;

&lt;p&gt;Coding showed me I’m still capable of taking on hard challenges. It showed me that I can adapt, learn, and grow - even after years spent mastering something completely different.&lt;/p&gt;

&lt;p&gt;Maybe the biggest surprise? How many of the skills I built in medicine still help me today:&lt;br&gt;
    • Problem-solving under pressure&lt;br&gt;
    • Empathy for real-world users&lt;br&gt;
    • Attention to detail&lt;br&gt;
    • Commitment to quality&lt;/p&gt;

&lt;p&gt;The transition wasn’t easy. It was scary, even. But it taught me that reinvention is possible, no matter how far along you are in one path.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;Over to You&lt;/p&gt;

&lt;p&gt;Have you ever made a leap like this — from one world to another?&lt;br&gt;
I’d love to hear your story, and maybe share more of mine, too. Feel free to connect or drop me a note anytime.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;👉 Let’s connect on LinkedIn (&lt;a href="https://www.linkedin.com/in/arttheache/" rel="noopener noreferrer"&gt;https://www.linkedin.com/in/arttheache/&lt;/a&gt;) or check out my projects on GitHub (&lt;a href="https://github.com/ArtTheAche98" rel="noopener noreferrer"&gt;https://github.com/ArtTheAche98&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%2F4q4j4ddpj4ms8s3tfco9.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%2F4q4j4ddpj4ms8s3tfco9.jpeg" alt="Image description" width="800" height="1066"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>python</category>
      <category>django</category>
    </item>
  </channel>
</rss>
