<?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>Forem: Asaf Lecht | אסף לכט</title>
    <description>The latest articles on Forem by Asaf Lecht | אסף לכט (@seithx).</description>
    <link>https://forem.com/seithx</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%2F3846056%2F45f4a420-060d-4bd3-b553-95d112ae1697.png</url>
      <title>Forem: Asaf Lecht | אסף לכט</title>
      <link>https://forem.com/seithx</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/seithx"/>
    <language>en</language>
    <item>
      <title>From Meeting Mayhem to Prompt Precision</title>
      <dc:creator>Asaf Lecht | אסף לכט</dc:creator>
      <pubDate>Thu, 27 Nov 2025 00:00:00 +0000</pubDate>
      <link>https://forem.com/seithx/from-meeting-mayhem-to-prompt-precision-1mei</link>
      <guid>https://forem.com/seithx/from-meeting-mayhem-to-prompt-precision-1mei</guid>
      <description>&lt;p&gt;Today was one of those days—a firehose of information from back-to-back meetings that left my head spinning. I felt like the only one in the room struggling to connect the million theoretical ideas being thrown around to a practical reality. Honestly, if I hadn’t recorded the calls, I’d have no idea how to even write a summary. It’s a reminder that sometimes the most important tool is the one that helps you process the chaos.&lt;/p&gt;

&lt;p&gt;After untangling the meeting notes (with a lot of help from AI), I dove back into my video analysis project. The goal is to process a full hour of video without the model hallucinating, and I’m getting close.&lt;/p&gt;

&lt;p&gt;Here’s a bit of the journey today:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Tackling Information Overload:&lt;/strong&gt; Long, rambling meetings are a huge challenge for me. Recording them and using an AI to distill key points has become a non-negotiable part of my workflow. It helps me cut through the noise and focus on actionable tasks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Slicing the Video Salami:&lt;/strong&gt; My main strategy for analyzing long videos is to break them into 10-minute chunks and process each one separately. The real trick is stitching the results back together into a coherent whole without introducing errors or weird artifacts.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A Two-Prompt System:&lt;/strong&gt; I’m using a main prompt for the overall task and a secondary, dynamic prompt for each video segment. Code injects relevant context into the secondary prompt for each chunk, which helps keep the model on track.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Prompt Structure is Everything:&lt;/strong&gt; I noticed some small hallucinations still creeping in. It hit me that the &lt;em&gt;structure&lt;/em&gt; of the prompt might be as important as the instructions themselves. Just throwing more instructions into a single block isn’t effective. I need to explore how different formats impact the output.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It’s a strange feeling to be building trust with a new manager while also feeling like you’re trying to build a plane in mid-air. But I love the process of taking a messy problem, breaking it down, and methodically testing solutions. The new era of development feels less about knowing how to write every line of code by heart and more about being a good architect and problem-solver. It’s a good fit for how my brain works.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Next:&lt;/strong&gt; Systematically test different prompt structures on the same video to see what minimizes hallucinations the most.&lt;/p&gt;

&lt;p&gt;Tags: AI, Prompt Engineering, Video Analysis, LLMs, Developer Life, Productivity&lt;/p&gt;

</description>
      <category>ai</category>
      <category>devjournal</category>
      <category>llm</category>
      <category>productivity</category>
    </item>
    <item>
      <title>From Outlook Hacks to AI-Powered Forms: A Week of Juggling</title>
      <dc:creator>Asaf Lecht | אסף לכט</dc:creator>
      <pubDate>Tue, 25 Nov 2025 00:00:00 +0000</pubDate>
      <link>https://forem.com/seithx/from-outlook-hacks-to-ai-powered-forms-a-week-of-juggling-3822</link>
      <guid>https://forem.com/seithx/from-outlook-hacks-to-ai-powered-forms-a-week-of-juggling-3822</guid>
      <description>&lt;p&gt;It’s been a whirlwind of a week, jumping between projects. I finally wrapped up the 5S form automation, but there was no time to rest—a couple of new, interesting challenges immediately landed on my plate. It feels like I’m living and breathing in the Google ecosystem lately, with AI as my constant co-pilot for everything from coding to brainstorming architectural solutions.&lt;/p&gt;

&lt;p&gt;It’s been a mix of satisfying wins and head-scratching problems. Here are a few highlights from the trenches:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Wrestling with legacy tech.&lt;/strong&gt; Finished the 5S form automation, but a last-minute request to change a graph type sent me down a rabbit hole. The main culprit? Old Outlook, which uses Word’s ancient rendering engine. It was a pain, but I insisted on a solution that worked everywhere. It’s a good reminder: if you’re going to build something, build it right. The result is a solid, reusable script.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI-generated UIs are a game-changer.&lt;/strong&gt; A friend suggested I try building a new multi-language “improvement suggestion” form entirely with Google Apps Script. I was skeptical, but with some help from AI, I generated the whole thing—complex branching logic and all—in a fraction of the time it would’ve taken manually. It felt like a superpower.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Thinking in streams, not files.&lt;/strong&gt; On my video analysis project, I hit a wall with handling large uploads. Instead of getting bogged down with splitting files using FFMPEG, I realized I could just use an API to point to specific timestamps. This lets me process massive videos in chunks without ever actually modifying the source file. A simple idea that solves a huge headache.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The “is it production-ready?” reality check.&lt;/strong&gt; My new manager is a software engineer, and he’s pushing me to think more about scale and robustness. It’s a little intimidating, and the imposter syndrome is real. But he’s right. It’s a good push to level up my thinking from “make it work” to “make it last,” especially on a project I’ve led from scratch.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This period has been a mix of deep technical dives and high-level strategy. Leaning on AI is really accelerating things, but the real growth comes from these tough challenges—whether it’s a stubborn piece of legacy software or a manager pushing me to be better. It’s a lot to juggle, but I’m learning a ton and making connections with smart people that make it all worthwhile.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Next:&lt;/strong&gt; Building out the automated dashboard for the new improvement-suggestion form.&lt;/p&gt;

&lt;p&gt;Tags: Google Apps Script, AI, Automation, Imposter Syndrome, Video Processing, Legacy Code&lt;/p&gt;

</description>
      <category>ai</category>
      <category>automation</category>
      <category>devjournal</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Sometimes the Simplest Tool is the Right One</title>
      <dc:creator>Asaf Lecht | אסף לכט</dc:creator>
      <pubDate>Thu, 13 Nov 2025 00:00:00 +0000</pubDate>
      <link>https://forem.com/seithx/sometimes-the-simplest-tool-is-the-right-one-13bm</link>
      <guid>https://forem.com/seithx/sometimes-the-simplest-tool-is-the-right-one-13bm</guid>
      <description>&lt;p&gt;It’s been a whirlwind couple of days, jumping between a bunch of different tasks. I’ve been trying to standardize some internal processes, providing quick fixes for manual work, and pushing my main video analysis project forward. It’s a real mix of high-level strategy and getting stuck into the technical details.&lt;/p&gt;

&lt;p&gt;Here’s a snapshot of what’s been on my plate:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The best solution isn’t always AI.&lt;/strong&gt; I was asked to help with a process where an employee spends 3-10 hours manually comparing printed invoices against our inventory in Excel. My first thought was some complex OCR solution, but after a quick look, I realized the answer was much simpler. We just need to get the invoice as an Excel file from the supplier and use &lt;code&gt;XLOOKUP&lt;/code&gt;. A five-minute fix that saves hours of work, no AI required.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Progress on the video analysis project.&lt;/strong&gt; We had a good meeting with senior management and got the green light to move forward. We’ve purchased three GoPros to start documenting our assembly lines. The goal is to automatically calculate standard times for tasks, which is a huge need right now.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hitting some technical roadblocks.&lt;/strong&gt; Now for the hard part. I need to figure out the pipeline for the video project. How do I handle super long video files? Should the processing happen locally or in the cloud? Where do we store all this data? And I’m worried that if a browser tab crashes mid-analysis, the results will be lost. Lots to solve here.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trying to add value with process flows.&lt;/strong&gt; I’ve been using Claude to create standardized, visual process flows for our assembly steps. The feedback has been positive, but I’m still trying to figure out how to measure the real-world value this brings.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It’s a good reminder that this job isn’t always about building complex AI systems. Sometimes the biggest impact comes from identifying a simple, non-technical solution that saves people from tedious work. These small, practical wins feel just as important as cracking the big technical challenges.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Next:&lt;/strong&gt; Start mapping out the video analysis pipeline, focusing on how to handle long files and where to store the data.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Tags: process automation, AI, Excel, video analysis, problem solving, lean manufacturing&lt;/em&gt;&lt;/p&gt;

</description>
      <category>automation</category>
      <category>devjournal</category>
      <category>productivity</category>
      <category>tooling</category>
    </item>
    <item>
      <title>Refactoring, Rabbit Holes, and a Reverse-Engineering Breakthrough</title>
      <dc:creator>Asaf Lecht | אסף לכט</dc:creator>
      <pubDate>Thu, 30 Oct 2025 00:00:00 +0000</pubDate>
      <link>https://forem.com/seithx/refactoring-rabbit-holes-and-a-reverse-engineering-breakthrough-5cf8</link>
      <guid>https://forem.com/seithx/refactoring-rabbit-holes-and-a-reverse-engineering-breakthrough-5cf8</guid>
      <description>&lt;p&gt;Today was one of those days that went in three directions at once. The main plan was to continue a major refactoring of our video routing project, but a couple of interesting side quests popped up and demanded attention. It was a classic juggling act between disciplined engineering, a tempting distraction, and a personal project that finally clicked.&lt;/p&gt;

&lt;p&gt;I spent a good chunk of the day making sure our refactoring was solid. After migrating most of the code with AI assistance, I found it had missed a few old functions for exporting to Excel. Getting those back in was easy, but it tanked our &lt;code&gt;radon&lt;/code&gt; code quality score. It took some focused work with &lt;code&gt;black&lt;/code&gt; and &lt;code&gt;mypy&lt;/code&gt; to clean things up and get back to an ‘A’ rating. If you’re going to refactor, you have to do it right.&lt;/p&gt;

&lt;p&gt;Here’s a snapshot of the day’s ups and downs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The Automation Rabbit Hole:&lt;/strong&gt; An interesting request came in for an automation involving &lt;code&gt;xlswings&lt;/code&gt; and Outlook. While it was a fun chance to play with a new library, I sank too much time into it before realizing Google Sheets was probably a better tool for the job. I pushed the code to Git and decided to move on—a good lesson in choosing the right tool before diving in.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A Surprise API Win:&lt;/strong&gt; I got an early start and decided to tackle a personal project I’ve picked up and dropped several times: reverse-engineering a notebook service’s private API. The goal is to build a chat interface that uses it as a backend.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It Actually Worked!&lt;/strong&gt; After a lot of trial and error, I finally got a coherent, Hebrew response from the service through my custom interface. Seeing it work was an incredible feeling.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Next Hurdle:&lt;/strong&gt; The connection isn’t persistent and relies on manually refreshing cookies. The next step is figuring out how to maintain a stable session, which will probably mean setting up a VPS.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It’s easy to feel like I was all over the place, but the thrill of the API project breakthrough made the whole day feel like a win. Moving between grinding on code quality, exploring a new idea, and achieving a personal goal is what makes this work so engaging.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Next:&lt;/strong&gt; Finish the simple 5S automation I’ve been putting off—it’s quick, valuable, and needs to get done.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Tags: Python, Refactoring, API, Code Quality, Automation, Side Projects&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>codequality</category>
      <category>devjournal</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>An Unexpected Day of APIs and Data Scraping</title>
      <dc:creator>Asaf Lecht | אסף לכט</dc:creator>
      <pubDate>Thu, 30 Oct 2025 00:00:00 +0000</pubDate>
      <link>https://forem.com/seithx/an-unexpected-day-of-apis-and-data-scraping-hp4</link>
      <guid>https://forem.com/seithx/an-unexpected-day-of-apis-and-data-scraping-hp4</guid>
      <description>&lt;p&gt;I wasn’t planning on coding today, but a quick request turned my day off into a surprisingly productive session. It started with a simple problem—finding neighborhoods for thousands of addresses in Jerusalem—and ended with me diving deep into a web scraping challenge for a new RAG project. It was a perfect example of two very different kinds of development work.&lt;/p&gt;

&lt;p&gt;Here’s a bit of what I ran into:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;APIs beat agents for bulk data.&lt;/strong&gt; The request was to get the neighborhood for ~4,000 addresses. My gut told me an AI agent would be incredibly slow and unreliable for that scale. A quick search with Claude confirmed my suspicion: the OpenStreetMap API was the right tool for the job.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI is a killer co-pilot.&lt;/strong&gt; I used Claude for the whole mini-project: finding the right API, parsing the ugly JSON response (it pointed out the &lt;code&gt;suburb&lt;/code&gt; field was what I needed), and then writing the entire Python script in a Google Colab notebook. It ran with minimal debugging, which was a pleasant surprise.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data quality is always the catch.&lt;/strong&gt; The script worked great, but the output wasn’t 100% perfect because the input address list wasn’t clean. Still, for a quick-and-dirty solution, it was a solid win.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scraping is the real grind.&lt;/strong&gt; After that quick win, I started a new project: building a RAG system for a Rabbi’s website, which is packed with text. Getting access was easy, but extracting the content is proving to be the real beast.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend data structure can be a nightmare.&lt;/strong&gt; My current headache is that on the site, questions and their answers are stored as separate files. I need to figure out how to reliably merge them. It’s a messy, foundational step that will determine the success of the whole project.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Today was a tale of two tasks. The first was a clean, satisfying win that went from problem to solution in no time, thanks to a clear API. The second is a reminder that most of the work in data projects is just getting your hands on clean, structured data. It’s a messy process, but I’m excited to see where it goes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Next:&lt;/strong&gt; Keep wrestling with this web scraping and figure out how to properly link all the questions and answers for the RAG dataset.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Tags: API, Python, Web Scraping, RAG, Claude, OpenStreetMap&lt;/em&gt;&lt;/p&gt;

</description>
      <category>api</category>
      <category>data</category>
      <category>rag</category>
      <category>webscraping</category>
    </item>
    <item>
      <title>The Spider Chart and the Slippery Slope of a “Quick” Project</title>
      <dc:creator>Asaf Lecht | אסף לכט</dc:creator>
      <pubDate>Tue, 28 Oct 2025 00:00:00 +0000</pubDate>
      <link>https://forem.com/seithx/the-spider-chart-and-the-slippery-slope-of-a-quick-project-cfe</link>
      <guid>https://forem.com/seithx/the-spider-chart-and-the-slippery-slope-of-a-quick-project-cfe</guid>
      <description>&lt;p&gt;A new request landed on my plate last week: automate the 5S audit process. Right now, it’s painfully manual. An employee walks to 10-12 different locations with a paper form, fills it out, then trudges back to a computer to type everything into Excel. After that, they have to manually calculate the results and email them to the right people. It’s a 15-30 minute time sink per person, which is especially ironic since this is for our Operational Excellence (OPEX) team.&lt;/p&gt;

&lt;p&gt;Naturally, I thought, “Easy fix! I can automate that.” I jumped right in, figuring it would take an hour, tops. Famous last words. That one hour quickly spiraled into many, reminding me (again) that I need to slow down and scope things out properly.&lt;/p&gt;

&lt;p&gt;Here’s where I’m at:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The Problem:&lt;/strong&gt; The current 5S audit is a manual, paper-based process that wastes a significant amount of time on data entry and reporting.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Quick Win:&lt;/strong&gt; I successfully replaced the paper forms with a Google Form. Now, employees can complete the audits on their phones, and the data flows directly into a Google Sheet. That part is a definite success.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Roadblock:&lt;/strong&gt; The automation is stuck. My biggest headache is trying to reliably generate a “spider chart” (a radar chart) using Google Apps Script. It’s just not working consistently.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Unfinished Business:&lt;/strong&gt; Because of the chart issue, the final reports and emails still have to be sent out manually, which defeats half the purpose of the project.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Honestly, this little project has drained a lot more energy than I expected. I see the value in finishing it, and I hate leaving things incomplete, but it’s become a real time-vampire. It’s another classic example of how development projects, no matter how small they seem, always have a few surprises waiting for you down the road.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Next:&lt;/strong&gt; Finish this automation… just maybe not this month.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Tags: automation, Google Apps Script, scope creep, process improvement, 5S, Google Forms&lt;/em&gt;&lt;/p&gt;

</description>
      <category>automation</category>
      <category>devjournal</category>
      <category>productivity</category>
      <category>softwaredevelopment</category>
    </item>
    <item>
      <title>From Scoping Down to Building Up</title>
      <dc:creator>Asaf Lecht | אסף לכט</dc:creator>
      <pubDate>Fri, 24 Oct 2025 00:00:00 +0000</pubDate>
      <link>https://forem.com/seithx/from-scoping-down-to-building-up-1dd1</link>
      <guid>https://forem.com/seithx/from-scoping-down-to-building-up-1dd1</guid>
      <description>&lt;p&gt;The last couple of days have been a mix of professional pragmatism and a fun side-quest helping a friend. It’s a good reminder that sometimes the best move is to &lt;em&gt;not&lt;/em&gt; build something, while other times, it’s about rolling up your sleeves to build from the ground up.&lt;/p&gt;

&lt;p&gt;At work, a proactive new colleague in OpEx is improving our 5S process. We were about to build a system to automatically generate a complex progress graph from a massive Excel file. It felt like a lot of effort, so I pushed back with a simple question: does anyone actually need this? After talking to a few managers, the answer was a clear no. We saved ourselves a ton of development time by deciding to just copy-paste the graph quarterly. It’s a huge win for keeping things simple.&lt;/p&gt;

&lt;p&gt;Here are a few highlights from the last couple of days:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Challenging requirements is key.&lt;/strong&gt; We avoided building a complex, time-consuming feature by validating its necessity with the actual users first. A simple conversation saved us days of work.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Paying technical debt is a grind.&lt;/strong&gt; I’m continuing to write tests for our video analysis project to enable safe refactoring. It’s slow, painstaking work that highlights the cost of starting a project without a solid testing foundation. A lesson learned the hard way.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mentoring is incredibly rewarding.&lt;/strong&gt; I was supposed to be on a sick day but ended up helping a friend set up his business domain, connect his professional email, and brainstorm his tech and business strategy. He offered to pay, but just helping him get started was payment enough.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Building from a clean slate feels great.&lt;/strong&gt; After wrestling with the messy codebase at work, helping my friend build his website and story from scratch was a breath of fresh air. We got a nice site up, clarified his offerings, and talked about how he can showcase his skills to clients.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Reflection
&lt;/h3&gt;

&lt;p&gt;It’s been a lesson in contrasts. At work, we made the right call to avoid a complex feature, but I’m simultaneously feeling the pain of not having a solid foundation on another project. Then, helping my friend was a powerful reminder of how satisfying it is to build things the right way from day one. It’s all part of the learning process.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Next:&lt;/strong&gt; More refactoring and test writing for the video analysis project.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Tags: testing, refactoring, project management, mentorship, developer life&lt;/em&gt;&lt;/p&gt;

</description>
      <category>career</category>
      <category>devjournal</category>
      <category>productivity</category>
      <category>workplace</category>
    </item>
    <item>
      <title>A Day of Consulting, Coding, and Scope Creep</title>
      <dc:creator>Asaf Lecht | אסף לכט</dc:creator>
      <pubDate>Sun, 19 Oct 2025 00:00:00 +0000</pubDate>
      <link>https://forem.com/seithx/a-day-of-consulting-coding-and-scope-creep-403h</link>
      <guid>https://forem.com/seithx/a-day-of-consulting-coding-and-scope-creep-403h</guid>
      <description>&lt;p&gt;Today was a wild ride, jumping between completely different worlds. One minute I was getting a reality check on a startup idea, the next I was architecting an LLM solution for a client, and I finished the day by finally fixing a buggy personal project. It’s days like these that really stretch your brain in the best ways.&lt;/p&gt;

&lt;p&gt;I started the day with a call with a startup consultant. I wanted to get some feedback on a bigger idea I’ve been kicking around, and it was a great, free way to get an experienced perspective. Then, I had a surprise call where I was the one giving advice on AI. I wrapped up by diving back into my own code.&lt;/p&gt;

&lt;p&gt;Here are a few takeaways from the day:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Startup Reality Check:&lt;/strong&gt; Building a startup, especially a B2G (Business-to-Government) one, is no joke. The consultant immediately asked about the business model, market size, sales cycle, and competitor landscape. It’s a good reminder that an idea is just the first 0.1% of the work.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;From Imposter to Consultant:&lt;/strong&gt; I found myself advising a team on building a custom chatbot. They were stuffing huge amounts of text into a single prompt and getting bad results. It was a perfect use case for RAG (Retrieval-Augmented Generation) to pull accurate info from their documents. I also suggested fine-tuning a model to capture a specific person’s writing style. It’s wild to realize my deep dive into this stuff has made me knowledgeable enough to help others.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Scraper Saga is Over:&lt;/strong&gt; My synagogue YouTube scraper project has been running and freezing for ages. Today, I started fresh. With a little back-and-forth between GPT and Claude, I finally got it working! It’s now successfully pulling all the videos from the target playlists. Feels so good to get that unblocked.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;…And Hello, Scope Creep:&lt;/strong&gt; Of course, the moment the scraper worked, my brain immediately jumped to the next thing. Now I want to build a simple local UI to make the scraped videos searchable and add an option to download compressed versions. Every small project just wants to become a big one.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It’s funny how these different activities connect. The high-level startup talk grounds my technical work in business reality, while the hands-on coding keeps my skills sharp. It was also a good confidence boost to be able to provide real value with my LLM knowledge. The day was a reminder that progress isn’t always linear, but it’s happening on multiple fronts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Next:&lt;/strong&gt; Time to start building out that local UI for the video scraper.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Tags: llm, startup, python, rag, side-projects, learning-in-public&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devjournal</category>
      <category>llm</category>
      <category>sideprojects</category>
      <category>startup</category>
    </item>
    <item>
      <title>Wrestling with Broken Paths and a Looming POC</title>
      <dc:creator>Asaf Lecht | אסף לכט</dc:creator>
      <pubDate>Fri, 17 Oct 2025 00:00:00 +0000</pubDate>
      <link>https://forem.com/seithx/wrestling-with-broken-paths-and-a-looming-poc-2di2</link>
      <guid>https://forem.com/seithx/wrestling-with-broken-paths-and-a-looming-poc-2di2</guid>
      <description>&lt;p&gt;Well, today was one of &lt;em&gt;those&lt;/em&gt; days. I had a clear plan to make progress on my video analysis and work-instruction projects, but things just kept breaking. It felt like every step forward came with a new, unexpected problem, and I spent most of my time putting out fires instead of building. A classic day of groundwork where you end the day feeling like you’ve barely moved.&lt;/p&gt;

&lt;p&gt;Here’s a rundown of the struggles and takeaways:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Broken paths, again.&lt;/strong&gt; In the work-instructions project, which uses an LLM to generate procedures, all the image and video paths broke on me. Again. I suspect it has something to do with a recent interaction with the ChatGPT API, but I’m not sure why. It’s frustrating because I thought I’d finally stabilized that part.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The surprise GPT-4 limit.&lt;/strong&gt; I was trying to debug the issue and suddenly hit a 5-hour usage limit on GPT-4. I had no idea that was a thing, and it completely caught me off guard. Another lesson learned the hard way.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The pressure of a POC.&lt;/strong&gt; We have a conference coming up and need a Proof of Concept for the video analysis tool. The goal is to show a simple station that can analyze a video of an assembly process, measure task times, and export a report. This deadline is forcing me to refactor the monolithic code, but I’m also starting to wonder if this refactoring effort is the best use of time right now.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hardware gremlins.&lt;/strong&gt; To top it all off, my computer wouldn’t start this morning—just a black screen with a cursor. I spent half an hour convinced my hard drive had died before it magically fixed itself. I’m still worried it’s a sign of a bigger problem to come.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It’s frustrating when you feel like you’re doing a lot of work without getting that positive feedback loop of seeing things come together. Some days are just a slog, and you have to accept that you’re laying foundations you can’t see yet. Today was definitely one of those.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Next:&lt;/strong&gt; Focus on getting a barebones version of the video analysis POC working for the upcoming demo.&lt;/p&gt;

&lt;p&gt;Tags: LLM, Video Analysis, Refactoring, POC, Debugging, Developer Log&lt;/p&gt;

</description>
      <category>devjournal</category>
      <category>llm</category>
      <category>productivity</category>
      <category>programming</category>
    </item>
    <item>
      <title>My Epic Battle with yt-dlp, Bash, and a Mountain of YouTube JSON</title>
      <dc:creator>Asaf Lecht | אסף לכט</dc:creator>
      <pubDate>Tue, 14 Oct 2025 00:00:00 +0000</pubDate>
      <link>https://forem.com/seithx/my-epic-battle-with-yt-dlp-bash-and-a-mountain-of-youtube-json-53gb</link>
      <guid>https://forem.com/seithx/my-epic-battle-with-yt-dlp-bash-and-a-mountain-of-youtube-json-53gb</guid>
      <description>&lt;p&gt;I set out to build a “simple” script to pull metadata for Hebrew children’s videos from YouTube. The plan was to use &lt;code&gt;yt-dlp&lt;/code&gt;, pipe the JSON output to Python for filtering, and save it all as a clean TSV. Turns out, “simple” was optimistic. The whole thing turned into a multi-day debugging marathon, especially trying to get everything working smoothly inside Git Bash on Windows.&lt;/p&gt;

&lt;p&gt;Here’s a rundown of the biggest hurdles and what I learned.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Environment setup is half the battle.&lt;/strong&gt; My minimal MINGW64 environment was missing everything: &lt;code&gt;wget&lt;/code&gt;, &lt;code&gt;sudo&lt;/code&gt;, &lt;code&gt;jq&lt;/code&gt;, and &lt;code&gt;stdbuf&lt;/code&gt;. I spent hours finding workarounds, like using &lt;code&gt;curl&lt;/code&gt; instead of &lt;code&gt;wget&lt;/code&gt;, creating a Bash wrapper for the &lt;code&gt;jq.exe&lt;/code&gt; binary, and using &lt;code&gt;PYTHONUNBUFFERED=1&lt;/code&gt; to force real-time output when &lt;code&gt;stdbuf&lt;/code&gt; wasn’t available.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;code&gt;yt-dlp&lt;/code&gt; can be a memory hog.&lt;/strong&gt; When pulling from a massive channel playlist, &lt;code&gt;yt-dlp&lt;/code&gt; tried to load the entire list of videos into memory before outputting anything, causing it to hang. The magic flags were &lt;code&gt;--lazy-playlist&lt;/code&gt; and &lt;code&gt;--flat-playlist&lt;/code&gt;, which process the playlist item by item, turning a firehose into a manageable stream.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Pipes are fragile.&lt;/strong&gt; My script kept dying with “Broken pipe” or “Invalid argument” errors. The culprit? My Python script was consuming &lt;code&gt;stdin&lt;/code&gt; for itself, leaving the piped data from &lt;code&gt;yt-dlp&lt;/code&gt; with nowhere to go. The fix was to pass file paths as arguments to the Python script (&lt;code&gt;python -c '...' "$OUT_FILE"&lt;/code&gt;) instead of relying on the standard input stream.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Unicode filtering is your friend.&lt;/strong&gt; My initial searches for Hebrew kids’ content returned a lot of irrelevant videos. The most effective fix was a simple Python function to check if the video title or uploader name contained any characters within the Hebrew Unicode range (&lt;code&gt;\u0590&lt;/code&gt;–&lt;code&gt;\u05FF&lt;/code&gt;). It was a surprisingly precise way to filter out the noise.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This was one of those side projects that spiraled, but it was a fantastic learning experience. Untangling the mess of shell environments, process buffering, and API quirks was a powerful reminder that even with great tools, the real work is getting them to talk to each other without tripping over their own feet.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Next:&lt;/strong&gt; Now that the data extraction is reliable, I might try converting the videos to audio and using an LLM to help me review the content.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Tags: bash, python, yt-dlp, data-engineering, cli, debugging&lt;/em&gt;&lt;/p&gt;

</description>
      <category>cli</category>
      <category>devjournal</category>
      <category>python</category>
      <category>webscraping</category>
    </item>
  </channel>
</rss>
