<?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: Uros Mitic</title>
    <description>The latest articles on DEV Community by Uros Mitic (@umitic).</description>
    <link>https://dev.to/umitic</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%2F48094%2F3bf1df4c-a3ac-4605-8693-9c04a9b215e5.jpg</url>
      <title>DEV Community: Uros Mitic</title>
      <link>https://dev.to/umitic</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/umitic"/>
    <language>en</language>
    <item>
      <title>The Danger of Assumptions in Client Communication</title>
      <dc:creator>Uros Mitic</dc:creator>
      <pubDate>Mon, 31 Mar 2025 15:11:50 +0000</pubDate>
      <link>https://dev.to/umitic/avoiding-assumption-pitfalls-in-direct-client-communication-3glk</link>
      <guid>https://dev.to/umitic/avoiding-assumption-pitfalls-in-direct-client-communication-3glk</guid>
      <description>&lt;p&gt;At one point, my team was juggling three critical projects simultaneously, and dropping the ball on any of them was not an option. We successfully released the first project while also addressing additional Roku certification requirements for the other two. After the initial release, we shifted our focus to the remaining projects. However, as luck would have it, the newly released app began experiencing user authentication issues.&lt;/p&gt;

&lt;h2&gt;
  
  
  Initial Issue and Speculation
&lt;/h2&gt;

&lt;p&gt;One evening, I received a call to join the war room. Our CTO informed me that the client was encountering problems, with most reports coming from Roku, FireTV, and tvOS platforms. He briefly explained how to reproduce the issue on FireTV, and the technical managers immediately began speculating about the cause, especially since these platforms did not share a common codebase. However, they did share the same UI/UX and backend.&lt;/p&gt;

&lt;h2&gt;
  
  
  Struggling to Replicate the Issue
&lt;/h2&gt;

&lt;p&gt;The next day, I began troubleshooting but quickly realized that I couldn’t replicate the issue, no matter what I tried. I tested on various devices, OS versions, and even during the client’s peak usage times, but nothing worked. After a long day of debugging, I was invited to join a call with the client.&lt;/p&gt;

&lt;p&gt;The client’s project manager was visibly frustrated, insisting that the issues be resolved on all platforms, starting with Roku since it was their largest platform. Our team’s initial response was to reassure the client that we were doing our best, but it quickly became clear that this approach was not enough.&lt;/p&gt;

&lt;h2&gt;
  
  
  Changing the Approach
&lt;/h2&gt;

&lt;p&gt;Exhausted from the earlier debugging session, I wanted to get straight to the information that could help resolve the problem. Once given the opportunity, I started asking specific and targeted questions: the exact reproduction steps on Roku, the specific device models and OS versions affected, the time frame when the issues occurred, the percentage of affected Roku users compared to other platforms, and at least ten user accounts experiencing the problem.&lt;/p&gt;

&lt;p&gt;As I asked these questions, something unexpected happened—the tension in the conversation noticeably decreased. The client began answering the questions and soon admitted they didn’t yet have the necessary information. We agreed to reconvene after their customer support gathered the data.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Data Tells a Different Story
&lt;/h2&gt;

&lt;p&gt;During the follow-up meeting, customer support provided the requested details. Surprisingly, Roku turned out to be the least affected platform despite accounting for more than half of their user base. The number of incidents was so low that they struggled to provide enough user accounts affected by the problem. The data clearly indicated that FireTV was the most problematic platform.&lt;/p&gt;

&lt;p&gt;From that moment on, the narrative shifted from: &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Roku is the main issue&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;to: &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Roku is actually our most stable platform. What did you do differently compared to other platforms?&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  The Danger of Flawed Assumptions
&lt;/h2&gt;

&lt;p&gt;Reflecting on the situation, it’s interesting how a flawed assumption almost led us to allocate additional resources to fix the problem immediately, which could have jeopardized the progress of other projects. The client’s faulty reasoning was as follows: &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;The majority of our users have Roku devices. The issue is present on all platforms, so Roku, being the largest platform, must be the most affected. Therefore, our priority should be fixing Roku first&lt;/em&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;As soon as they heard from customer support that Roku was affected, ideas began spiraling, quickly diverging from the actual situation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Important Takeaways
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Easing Tension by Focusing on the Right Questions
&lt;/h3&gt;

&lt;p&gt;The escalation started to subside, and client trust began to grow as soon as we focused on asking the right questions. To handle similar situations more effectively in the future, I decided to adopt the following framework:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Try to stop being defensive.&lt;/li&gt;
&lt;li&gt;Demonstrate genuine concern for the problem.&lt;/li&gt;
&lt;li&gt;Start asking targeted questions.&lt;/li&gt;
&lt;li&gt;Actively listen to responses.&lt;/li&gt;
&lt;li&gt;Involve the right people.&lt;/li&gt;
&lt;li&gt;Keep information loops as short as possible.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Get the Right Info First to Avoid Miscommunication
&lt;/h3&gt;

&lt;p&gt;Always have in mind that what might resemble a game of &lt;a href="https://en.wikipedia.org/wiki/Telephone_game" rel="noopener noreferrer"&gt;"Telephone" or "Chinese Whispers"&lt;/a&gt; from childhood is actually a common communication challenge in many established processes and organizations. To navigate any situation effectively, it's essential to base decisions on accurate information - making it a top priority to gather reliable data first.&lt;/p&gt;

</description>
      <category>engineeringmanagment</category>
      <category>beginners</category>
      <category>projectmanagment</category>
      <category>engineeringleadership</category>
    </item>
    <item>
      <title>AI and the Decline of Long-Term Code Health</title>
      <dc:creator>Uros Mitic</dc:creator>
      <pubDate>Wed, 19 Mar 2025 13:56:28 +0000</pubDate>
      <link>https://dev.to/umitic/ai-and-the-decline-of-long-term-code-health-1d8c</link>
      <guid>https://dev.to/umitic/ai-and-the-decline-of-long-term-code-health-1d8c</guid>
      <description>&lt;p&gt;It was a late afternoon, and six of us were sitting in the office, unwinding over a few beers. It had been a great day, one of my colleagues had just deployed a major feature, while my team had finally squashed a stubborn bug that had been haunting us for days.&lt;/p&gt;

&lt;p&gt;As we chatted about the day’s wins, someone threw out an interesting question: What do we prefer in our daily work: building new features, refactoring, or fixing bugs?&lt;/p&gt;

&lt;p&gt;For some reason, refactoring didn’t spark much debate. But when it came to feature development versus bug fixing, the room was split right down the middle. That conversation left me with a mental image of a spectrum when it comes to software engineering preferences: bug fixing on one end, feature development on the other, with refactoring sitting somewhere in between.&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%2Flz0qxzw3w3zl63fivdhc.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%2Flz0qxzw3w3zl63fivdhc.jpeg" alt="Image description" width="800" height="262"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  When AI Meets DRY
&lt;/h2&gt;

&lt;p&gt;Personally, I lean toward the bug-fixing side of that spectrum, so when I came across &lt;a href="https://www.gitclear.com/ai_assistant_code_quality_2025_research" rel="noopener noreferrer"&gt;GitClear’s analysis&lt;/a&gt; on AI Copilot Code Quality, it immediately caught my attention.&lt;/p&gt;

&lt;p&gt;The key takeaway? AI-powered coding assistants boost developer productivity but at a cost. The analysis pointed out that these tools often suggest code that already exists somewhere in the codebase. Engineers accept these suggestions without checking if the same logic has already been implemented elsewhere. In other words, AI is subtly encouraging code duplication, which flies in the face of the DRY (Don’t Repeat Yourself) principle.&lt;/p&gt;

&lt;p&gt;This is mainly driven by the fact that engineering productivity is still largely measured by lines of code written, number of commits or features delivered, completely overlooking the long-term maintenance costs that are introduced.&lt;/p&gt;

&lt;p&gt;We already know that duplicated code leads to more bugs, and more bugs mean more time spent fixing issues instead of innovating. So while AI might make us feel more productive in the short term, it could be setting us up for a future where maintenance and defect remediation become our primary job.&lt;/p&gt;

&lt;p&gt;The analysis even makes this prediction:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;...in the coming years, we may find "defect remediation" as the leading day-to-day developer responsibility.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;As someone who enjoys bug fixing and refactoring, that doesn’t sound too bad but from a software quality perspective, it’s a worrying trend.&lt;/p&gt;

&lt;h2&gt;
  
  
  Measuring What Matters
&lt;/h2&gt;

&lt;p&gt;The analysis references a well-known quote from Peter Drucker:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What gets measured gets done.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;and continues with: &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;There is a great hunger for more developer productivity. If "developer productivity" continues being measured by "commit count" or by "lines added," AI-driven maintainability decay will continue to expand.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;As an Engineering Manager, I see our core software engineering principles - DRY, KISS, YAGNI, as fundamentally designed to keep long-term maintenance costs low.&lt;/p&gt;

&lt;p&gt;To break this downward spiral, we need to rethink how we measure developer impact. Instead of focusing purely on velocity, we should define metrics that reflect an engineer’s contribution to long-term maintainability.&lt;/p&gt;

&lt;p&gt;Ironically, our senior engineers have been telling us this for years. It turns out we needed a productivity multiplier like AI to fully understand the consequences of ignoring their advice.  &lt;/p&gt;

</description>
      <category>ai</category>
      <category>engineeringmanagement</category>
      <category>gitclear</category>
      <category>codequality</category>
    </item>
    <item>
      <title>Balancing Doubt and Responsibility: The Challenge of Being a First-Time Interviewer</title>
      <dc:creator>Uros Mitic</dc:creator>
      <pubDate>Tue, 18 Mar 2025 08:41:20 +0000</pubDate>
      <link>https://dev.to/umitic/balancing-doubt-and-responsibility-the-challenge-of-being-a-first-time-interviewer-fpj</link>
      <guid>https://dev.to/umitic/balancing-doubt-and-responsibility-the-challenge-of-being-a-first-time-interviewer-fpj</guid>
      <description>&lt;p&gt;Let’s be honest, as an engineer, whether you like it or not, you’ll have to take part in the hiring process at some point in your career.&lt;/p&gt;

&lt;p&gt;Some engineers start interviewing earlier than others, and those who are new to it often feel anxious before stepping into the role of interviewer. I certainly did.&lt;/p&gt;

&lt;p&gt;I remember my first experience: we were hiring for a Senior Roku Developer position, and I was asked to support my team lead in the process and provide a second opinion.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why it Was a Challenge
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;At the time, I was still &lt;a href="https://dev.to/umitic/the-day-my-imposter-syndrome-was-no-longer-just-in-my-head-16h8"&gt;struggling with imposter syndrome&lt;/a&gt;, so questioning a senior developer who probably knew more than I did felt intimidating.&lt;/li&gt;
&lt;li&gt;I also worried about misrepresenting my team and company by not presenting myself well.&lt;/li&gt;
&lt;li&gt;And, of course, I feared making a poor judgment that could lead to a bad hire.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Interviewing More Experienced Engineer
&lt;/h2&gt;

&lt;p&gt;To prepare, I wrote down all technical questions I wanted to ask, and then tried to note down the answers as well.&lt;/p&gt;

&lt;p&gt;During this exercise, I had a realization: even though I knew the answers, I struggled to explain them clearly and concisely.&lt;/p&gt;

&lt;p&gt;Following Richard Feynman’s famous saying, "If you can't explain it simply, you don't understand it well enough," I marked these questions as personal improvement topics for myself.&lt;/p&gt;

&lt;p&gt;This process became my first step. It helped me establish a solid framework for the discussion and gave me a clearer sense of the direction that the conversation can go.&lt;/p&gt;

&lt;h2&gt;
  
  
  Maintaining a Professional Image
&lt;/h2&gt;

&lt;p&gt;At its core, the real challenge was how I should conduct myself when challenged.&lt;/p&gt;

&lt;p&gt;I decided to approach the interview with an open mindset, allowing myself to learn from the experience.&lt;/p&gt;

&lt;p&gt;To make this work, the conversation needed to feel like two engineers discussing topics they're passionate about and not like one person asserting their opinions while judging the other.&lt;/p&gt;

&lt;p&gt;Fortunately, the company really promoted this kind of culture, so I felt confident it wouldn’t be an issue.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Pressure of Making the Right Hiring Decision
&lt;/h2&gt;

&lt;p&gt;After reflecting on this pressure, I realized there was one thing I truly disliked: the possibility of being fooled by someone's misrepresentation of himself. To put it in the right context, I was more worried about being tricked than about making the wrong hiring decision.&lt;/p&gt;

&lt;p&gt;It was a clear clash between my ego and my responsibility.&lt;/p&gt;

&lt;p&gt;However, once I set my ego aside, I recognized that anyone could be misled by how someone presents themselves.&lt;/p&gt;

&lt;p&gt;This realization helped me let go of my ego and allowed me to approach the interview with a more honest perspective.&lt;/p&gt;

&lt;p&gt;In the end, it will be simple: if I genuinely enjoy the conversation and the candidate feels authentic, it will be a good fit. And if I notice any red flags, I will bring them up to my team lead.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Lesson Learned
&lt;/h2&gt;

&lt;p&gt;A few days before the interview, my team lead sat down with me, explained the process, and set clear expectations. This should have helped me focus on what really mattered - covering my team lead's blind spots and being there after to challenge him during the candidates briefing to ensure we hired the best possible fit for our team.&lt;/p&gt;

&lt;p&gt;Looking back, it's clear how much I overthought and stressed about something that was much simpler than I made it out to be!&lt;/p&gt;

&lt;p&gt;Preparing in detail for the interview definitely helped me significantly, but looking back, I would have enjoyed the process much more if I hadn’t gone into it with the wrong expectations. I built up a lot of unnecessary pressure, thinking I had to act like a seasoned interviewer right away. In reality, it was about learning, adapting, and growing alongside the candidate. If I had simply accepted the process for what it was - a chance to grow - I would have found it much more enjoyable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Could This Have Been Avoided?
&lt;/h2&gt;

&lt;p&gt;Absolutely. I never voiced my concerns to my team lead. By keeping my worries to myself, I never gave anyone the chance to reassure me that I was overcomplicating things.&lt;/p&gt;

&lt;p&gt;It’s completely understandable to feel challenged during a technical interview, even when you’re the one doing the hiring. Yes, I know how strange that sounds! But, as always, communicate your concerns about the task at hand. That way, you can be sure there’s actually something to worry about!&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>interview</category>
    </item>
    <item>
      <title>The Day My Imposter Syndrome Was No Longer Just in My Head</title>
      <dc:creator>Uros Mitic</dc:creator>
      <pubDate>Sun, 09 Mar 2025 17:47:52 +0000</pubDate>
      <link>https://dev.to/umitic/the-day-my-imposter-syndrome-was-no-longer-just-in-my-head-16h8</link>
      <guid>https://dev.to/umitic/the-day-my-imposter-syndrome-was-no-longer-just-in-my-head-16h8</guid>
      <description>&lt;p&gt;I recently came across an article suggesting that &lt;em&gt;&lt;a href="https://hbr.org/2022/05/impostor-syndrome-has-its-advantages" rel="noopener noreferrer"&gt;Imposter Syndrome Has Its Advantages&lt;/a&gt;&lt;/em&gt;. It made me reflect on my own experiences, especially the fear of inadequacy I felt at the beginning of my software engineering career.&lt;/p&gt;

&lt;p&gt;The article, featuring insights from Basima A. Tewfik, an assistant professor at MIT Sloan, argued that imposter syndrome can actually improve interpersonal skills. By making individuals more people-oriented and sensitive to others' perceptions, it enhances likability and positively impacts career growth. Interestingly, the study also found that imposter syndrome does not negatively affect performance.&lt;/p&gt;

&lt;h2&gt;
  
  
  Surprise! You’re a Roku Developer Now
&lt;/h2&gt;

&lt;p&gt;After several years of leading and managing a network operations centar, I decided to switch careers and venture into software engineering.&lt;br&gt;
During my learning period, I was lucky enough to get hired as a junior Android developer. I was really excited about the opportunity but I was also aware of the amount of knowledge I was lacking.&lt;br&gt;
Two weeks before starting my first day in the new position, I received unexpected news: I would be working on Roku development instead of Android. At the time, I didn’t think much of it, mostly because I had no idea what Roku was. I even assumed it was Android based. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Small and obvious tip: &lt;strong&gt;never assume anything without doing your research&lt;/strong&gt;!&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Unlike Android, Roku devices run on Roku OS, which has its own proprietary language, BrightScript, and uses SceneGraph as a framework for building channels (applications). This was a steep learning curve I hadn’t anticipated.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Day!
&lt;/h2&gt;

&lt;p&gt;Three months into the job, I was preparing for my performance review, the one that would determine whether I’d be offered a permanent position. While I loved working with my team and was eager to learn, imposter syndrome had plagued me for months. I constantly questioned whether I was meeting expectations. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Uros, the team enjoys working with you. However, you’re really not a good software engineer, and I don’t know if we’ll be offering you a permanent contract at this time.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;...the world came crashing down. I felt my "fight or flight" response kicking in, but I managed to stay composed, accept the news, and walk out of the office. &lt;/p&gt;

&lt;p&gt;A few days later, my manager approached me again with an update:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;We’ve decided to offer you a permanent contract, but without the salary increase we had initially discussed. I’ll also send you some materials and books to help you out.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Fair, I thought to myself, and jumped into whatever he had planned for me.&lt;/p&gt;




&lt;h2&gt;
  
  
  Internal Struggle
&lt;/h2&gt;

&lt;p&gt;Weeks passed, but the feedback continued to bother me. The idea of being a “bad software engineer” lingered in my mind. Before long, I realized that I strongly disagreed with the assessment. But to be sure, I needed to determine whether the original performance review was truly accurate.&lt;/p&gt;

&lt;p&gt;After some thinking, I devised a plan to get an "unbiased" evaluation of my skills. In short, the main idea was to seek the feedback from people who:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Had no personal relationship with me&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Had no incentive to underestimate my abilities&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  The Plan
&lt;/h2&gt;

&lt;p&gt;The best way to achieve the above, or at least the best way I could think of - was to participate in as many hackathons as possible and apply to as many jobs as I could! A real world scenarios where my skills would be tested with as little bias as possible. &lt;br&gt;
This would help me move beyond handling the problem purely on an internal level!&lt;/p&gt;

&lt;p&gt;Of course, this plan carried a risk: If my manager’s assessment was confirmed, I’d have to confront the possibility that a career in software engineering wasn’t for me. It may sound a bit dramatic from this perspective, but this is exactly how imposter syndrome works.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Result
&lt;/h2&gt;

&lt;p&gt;I’ll keep this brief: things turned out better than I could have imagined. Here are some key highlights:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;I participated in the MIT Health Tech Hackathon in Belgrade, where our team was one of the top three winners.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;With the same idea, we competed in Belgrade and Berlin Startup Connect, winning first place.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Most importantly, I received a job offer for a Medior Roku Developer position shortly after I started applying for interviews.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;After several months at the new company, I made significant contributions to multiple projects, which led to an offer for a team lead position.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;…and with that, finally, the feeling of being an imposter started to fade away!&lt;/p&gt;




&lt;h2&gt;
  
  
  The Conclusion
&lt;/h2&gt;

&lt;p&gt;This experience reshaped my understanding of both positive and negative feedback. I realized the importance of creating an environment where employees feel encouraged to challenge feedback.&lt;/p&gt;

&lt;p&gt;It also gave me the confidence to not just “trust my gut,” but to take action when I felt I had the necessary context despite the self-doubt lingering in the back of my mind.&lt;/p&gt;

&lt;p&gt;While imposter syndrome can sometimes push individuals toward growth, it can also take a significant toll on mental health. As managers, we have a responsibility to minimize feelings of inadequacy by providing clear, honest, and frequent feedback, the kind that empowers rather than discourages.&lt;br&gt;
I know, it’s not a groundbreaking revelation, but it’s one that’s always worth repeating! &lt;/p&gt;

</description>
      <category>career</category>
      <category>impostersyndrome</category>
      <category>engineeringmanagement</category>
      <category>roku</category>
    </item>
    <item>
      <title>The Unseen Influence of Past Job Experiences on Your Interview</title>
      <dc:creator>Uros Mitic</dc:creator>
      <pubDate>Fri, 21 Feb 2025 18:57:44 +0000</pubDate>
      <link>https://dev.to/umitic/the-unseen-influence-of-past-job-experiences-on-your-interview-1578</link>
      <guid>https://dev.to/umitic/the-unseen-influence-of-past-job-experiences-on-your-interview-1578</guid>
      <description>&lt;h2&gt;
  
  
  The Trap Many Engineers Fall Into
&lt;/h2&gt;

&lt;p&gt;Imagine walking into an interview, carrying the weight of your current or last job.&lt;br&gt;
A job where your decisions were constantly questioned, your confidence eroded, and your efforts undervalued.&lt;br&gt;
You disliked working in that environment, and now, you're determined to avoid ending up in a similar one.&lt;/p&gt;

&lt;p&gt;Then, the interviewer asks:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;In what type of work environment are you most productive and happy?&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is the moment you’ve been preparing for!&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;I'm most productive and happy in an environment where my decisions aren’t constantly questioned!&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You answer with confidence, feeling a wave of relief — almost like you're addressing the issue with your current tech lead in that very moment.&lt;/p&gt;

&lt;p&gt;But here’s the problem…&lt;/p&gt;

&lt;p&gt;Despite your best intentions to find a more suitable workplace, you may have just lost your chance.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why This Answer Can Backfire
&lt;/h2&gt;

&lt;p&gt;A hiring manager might interpret your response as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A potential red flag for collaboration&lt;/strong&gt; – Does this person struggle with feedback?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Overconfidence&lt;/strong&gt; – Are they unwilling to justify their decisions?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A strong desire for autonomy&lt;/strong&gt; – Will they reject structured teamwork?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;From my experience, candidates rarely intend to send this message, but the way they phrase their answer can unintentionally convey the wrong impression, creating a hidden impact.&lt;/p&gt;

&lt;p&gt;I’ve seen many candidates fall into this trap. Instead of highlighting what they want in a positive way, they frame their answer as a reaction to past frustrations. This emotional response can make interviewers hesitant, even if the candidate would actually be a great fit.&lt;/p&gt;

&lt;p&gt;I always strive to understand the emotions behind their words by asking further clarifications, but the initial response sometimes puts me in a position where I must convince other stakeholders not to see it as a red flag. Since misunderstandings can happen, addressing potential concerns from the start helps create a smoother conversation for both sides. With this being said, we also need to acknowledge the fact that hiring managers should also work on their interpretive skills and questions in order to avoid the misinterpretations. However, my primary goal here is empowering candidates to control their own narrative so let's keep our focus on that.&lt;/p&gt;

&lt;h2&gt;
  
  
  How To Find A Better Way to Get Your Point Across When Emotionally Charged
&lt;/h2&gt;

&lt;p&gt;When answering emotionally charged questions, be mindful of how you express your preferences. Before answering, always think what's the question really about and how to get your point across while simultaneously covering all concerns that your point might provoke.  &lt;/p&gt;

&lt;p&gt;Let’s rephrase the initial response to emphasize key aspects that better convey your intent:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Instead of this:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;I'm most productive and happy in an environment where my decisions aren’t constantly questioned.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Try this:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;I thrive in an environment where there is mutual trust and open collaboration. I appreciate having the autonomy to make decisions while also engaging in discussions that focus on improving the solutions I suggested.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Or this&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;I'm most productive and engaged in an environment with mutual trust, where my decisions are met with constructive discussions while allowing a degree of autonomy based on my experience and expertise.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This approach communicates a desire for autonomy while leaving no room for misinterpretation.&lt;/p&gt;

&lt;p&gt;Finally, with rephrasing the answer, the hiring manager is more likely to conclude that you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Value trust and collaboration&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Appreciate constructive discussions&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Seek autonomy without rejecting teamwork&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Are experienced and confident&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;Important:&lt;/strong&gt; Before proceeding, it's essential to clarify that rephrasing your answer isn't about &lt;strong&gt;deceiving&lt;/strong&gt; the hiring manager by telling them what they want to hear. On the contrary, it's about ensuring that your response provides full context, preventing unintended misinterpretations that could work against you.&lt;br&gt;
While writing this post, I came across an interesting study on &lt;strong&gt;&lt;em&gt;&lt;a href="https://www.tandfonline.com/doi/full/10.1080/08959285.2017.1407320" rel="noopener noreferrer"&gt;How Emotional Intelligence Might Get You the Job&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;, that dives deeper into the subject of faking on personality tests/job interviews.&lt;br&gt;
However, although it closely relates to the topic at hand, it deserves a separate in-depth discussion. &lt;/p&gt;




&lt;h2&gt;
  
  
  Final Takeaway
&lt;/h2&gt;

&lt;p&gt;When a question triggers an emotional response during your interview, take a moment to pause and refocus. Instead of letting frustration shape your answer, think about how you can communicate your values and experience while providing a full context and addressing potential concerns in a positive way. In short - it's about ensuring clarity while maintaining authenticity in your answers. This subtle shift in how you frame your response, from reactionary to constructive, can help ensure your message resonates with the interviewer and positions you as a right candidate.&lt;/p&gt;

&lt;p&gt;By thoughtfully managing your response, you'll be better equipped to present yourself in the best light and increase your chances of landing the role you truly deserve.&lt;/p&gt;

</description>
      <category>hiring</category>
      <category>management</category>
      <category>beginners</category>
    </item>
    <item>
      <title>How to expose a field of a child node to the parent node interface using alias on ROKU</title>
      <dc:creator>Uros Mitic</dc:creator>
      <pubDate>Fri, 24 Jan 2020 01:05:56 +0000</pubDate>
      <link>https://dev.to/umitic/how-to-expose-a-field-of-a-child-node-to-the-parent-node-interface-using-alias-on-roku-2gl2</link>
      <guid>https://dev.to/umitic/how-to-expose-a-field-of-a-child-node-to-the-parent-node-interface-using-alias-on-roku-2gl2</guid>
      <description>&lt;p&gt;At the beginning, I would like to say that using alias on ROKU is kinda cool thing to do. Unfortunately, the same could not be said for the title of this blog post.&lt;/p&gt;

&lt;p&gt;Let's say that you would like to change the field value of your child component outside of his parent node.&lt;br&gt;
You would also like to avoid doing that with &lt;a href="https://dev.to/umitic/how-to-define-a-function-in-component-interface-on-rokubrightscriptscenegraph-dff"&gt;callFunc&lt;/a&gt; or with using observers due to unnecessary boilerplate code.&lt;br&gt;
When you think about it, you actually don't want/need to do any extra stuff besides just changing the value of the field. &lt;br&gt;
Here is where use of alias can come into play. &lt;/p&gt;

&lt;p&gt;Example:&lt;/p&gt;

&lt;p&gt;Here is our child component:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;
&amp;lt;component name="childComponent" extends="Group"&amp;gt;
  &amp;lt;script type="text/brightscript" uri="./childComponent.brs"/&amp;gt;
  &amp;lt;interface&amp;gt;
    &amp;lt;field id="changeMe" type="string" /&amp;gt;
  &amp;lt;/interface&amp;gt;
&amp;lt;/component&amp;gt;`

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We have a basic &lt;code&gt;childComponent&lt;/code&gt; that has a field defined on &lt;code&gt;interface&lt;/code&gt; with the &lt;code&gt;id="changeMe"&lt;/code&gt; and since we did not defined the value, default value for this field is an empty string.&lt;/p&gt;

&lt;p&gt;Now let's add this child component to it's parent.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;
&amp;lt;component name="parentComponent" extends="Group"&amp;gt;
  &amp;lt;script type="text/brightscript" uri="./parentComponent.brs"/&amp;gt;
  &amp;lt;children&amp;gt;
    &amp;lt;childComponent id="childId"/&amp;gt;
  &amp;lt;/children&amp;gt;
  &amp;lt;interface&amp;gt;
    &amp;lt;field id="changeFieldInChildComponent" alias="childId.changeMe" type="string" /&amp;gt;
  &amp;lt;/interface&amp;gt;
&amp;lt;/component&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Noticed something interesting in the &lt;code&gt;parentComponent&lt;/code&gt;?&lt;br&gt;
Take a look at this line:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;
&amp;lt;field id="changeFieldInChildComponent" alias="child.changeMe" type="string"/&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Yeah, that little thing is called &lt;code&gt;alias&lt;/code&gt; and it will allow us to do exactly what we want!&lt;/p&gt;

&lt;p&gt;Let's change the value of the &lt;code&gt;changeMe&lt;/code&gt; field of the child component outside of the parent.&lt;/p&gt;

&lt;p&gt;So in a component/node outside of parent which has access to our &lt;code&gt;parentComponent&lt;/code&gt;, You should be able to to this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;m.parentComponent.changeFieldInChildComponent = "I'm not an empty string anymore"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And that's it! Field &lt;code&gt;changeMe&lt;/code&gt; of a &lt;code&gt;childComponent&lt;/code&gt; now should have the value of &lt;code&gt;"I'm not an empty string anymore"&lt;/code&gt;.&lt;br&gt;
This also works with native ROKU component fields.&lt;/p&gt;

</description>
      <category>roku</category>
      <category>brightscript</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Roku development, where to start?</title>
      <dc:creator>Uros Mitic</dc:creator>
      <pubDate>Sun, 08 Apr 2018 23:59:11 +0000</pubDate>
      <link>https://dev.to/umitic/roku-development-where-to-start-l9n</link>
      <guid>https://dev.to/umitic/roku-development-where-to-start-l9n</guid>
      <description>&lt;p&gt;When I started learning Roku development I had a luck of working with an awesome senior developer who already had a lot of experience with the BrightScript and SceneGraph.&lt;br&gt;
Everything that I wanted to learn I could learn from him(and I still do).&lt;br&gt;
Unfortunately a lot of developers don't have this opportunity so I wanted to share few links that could help them learn Roku Development.&lt;/p&gt;

&lt;p&gt;1.&lt;br&gt;
For learning BrightScript start from &lt;a href="//www.codingalien.com"&gt;codingalien.com&lt;/a&gt; and &lt;a href="https://sdkdocs.roku.com/display/sdkdoc/BrightScript+Language+Reference" rel="noopener noreferrer"&gt;the Roku documentation&lt;/a&gt;. &lt;br&gt;
Some information on the &lt;a href="//www.codingalien.com"&gt;codingalien.com&lt;/a&gt; page is outdated so the good practice would be to compare it to the Roku documentation(You will also learn by doing this).&lt;br&gt;
UPDATE:&lt;br&gt;
After you get some grasp of BrightScript head over to &lt;a href="https://github.com/learnroku/crash-course" rel="noopener noreferrer"&gt;learnroku/crash-course&lt;/a&gt;, this is for now maybe the best source of learning regarding ROKU development for beginners.&lt;/p&gt;

&lt;p&gt;2.&lt;br&gt;
SceneGraph, in short, is data structure that Roku uses to manage rendering of the application screens. After learning BrightScript this is where you should go &lt;a href="https://sdkdocs.roku.com/display/sdkdoc/SceneGraph+Core+Concepts" rel="noopener noreferrer"&gt;next&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;3.&lt;br&gt;
When you get familiar enough with BrightScript and SceneGraph, play a little with the Roku examples from &lt;a href="https://sdkdocs.roku.com/display/sdkdoc/SceneGraph+Samples" rel="noopener noreferrer"&gt;here&lt;/a&gt;. You can also check my &lt;a href="https://github.com/umitic" rel="noopener noreferrer"&gt;github&lt;/a&gt; for some ROKU examples.&lt;/p&gt;

&lt;p&gt;IMPORTANT UPDATE:&lt;br&gt;
ROKU has created a Youtube channel and a ROKU channel with tutorials on for the new ROKU developers. This is really good starting point:&lt;br&gt;
&lt;a href="https://www.youtube.com/playlist?list=PLXLCv18IEHsgMiHqiIR4olakj49OHnL0A" rel="noopener noreferrer"&gt;ROKU Youtube Tutorial channel&lt;/a&gt;&lt;br&gt;
&lt;a href="https://developer.roku.com/en-gb/videos/courses/rsg/overview.md" rel="noopener noreferrer"&gt;ROKU Course&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;VARIOUS TOPICS:&lt;br&gt;
1.&lt;a href="https://rokulikeahurricane.io" rel="noopener noreferrer"&gt;Roku Like A Hurricane&lt;/a&gt; - Short tips and tricks and nicely explained "how to" blog posts.  &lt;/p&gt;

&lt;p&gt;ADVANCED TOPICS:&lt;br&gt;
1.&lt;br&gt;
After you learned how to develop ROKU channels, You would need to learn how can you do unit testing on ROKU.&lt;br&gt;
Thanks to &lt;a href="https://dev.to/georgejecook"&gt;George Cook&lt;/a&gt; and his great work on unit testing framework called &lt;a href="https://github.com/georgejecook/rooibos" rel="noopener noreferrer"&gt;rooibos&lt;/a&gt; that will be a lot easier then before.&lt;br&gt;
You can check his unit testing framework, with great documentations and video tutorials here: &lt;a href="https://github.com/georgejecook/rooibos" rel="noopener noreferrer"&gt;rooibos&lt;/a&gt;.  &lt;/p&gt;

&lt;p&gt;TOOLS:&lt;br&gt;
1.&lt;a href="http://lvcabral.com/brs/" rel="noopener noreferrer"&gt;BrightScript 2D API Emulator&lt;/a&gt; - The ROKU emulator for 2d games is still a "new born" and in Alpha stage but with the great potential thanks to the awesome work of &lt;a href="http://lvcabral.com/brs/" rel="noopener noreferrer"&gt;Marcelo Lv Cabral&lt;/a&gt; . Side Note: It's only for 2D API so it can't be used as a regular emulator for all things ROKU.&lt;br&gt;
2.&lt;a href="https://github.com/willowtreeapps/wist" rel="noopener noreferrer"&gt;Roku Atom and VSCode Linter&lt;/a&gt; developed by &lt;a href="https://willowtreeapps.com/" rel="noopener noreferrer"&gt;WillowTree Aps&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can always ask for help from &lt;a href="//www.stackoverflow.com"&gt;stackoverflow&lt;/a&gt; community and of course from the &lt;a href="https://forums.roku.com/viewforum.php?f=34&amp;amp;sid=4646c6ee0a330e38d9fd6aec62848e54" rel="noopener noreferrer"&gt;Roku Dev Forum&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Notable developers from the StackOverflow Roku Developers Community:&lt;br&gt;
1.&lt;a href="https://stackoverflow.com/users/226086/nas-banov" rel="noopener noreferrer"&gt;Nas Banov&lt;/a&gt;&lt;br&gt;
2.&lt;a href="https://stackoverflow.com/users/4292334/eugene-smoliy" rel="noopener noreferrer"&gt;Eugene Smoliy&lt;/a&gt;&lt;br&gt;
3.&lt;a href="https://stackoverflow.com/users/820085/alphablender" rel="noopener noreferrer"&gt;alphablender&lt;/a&gt;&lt;br&gt;
4.&lt;a href="https://stackoverflow.com/users/4496114/theendless" rel="noopener noreferrer"&gt;TheEndless&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hope I managed to help. &lt;br&gt;
Have a great day.:-)&lt;/p&gt;

</description>
      <category>roku</category>
      <category>brightscript</category>
      <category>beginners</category>
    </item>
    <item>
      <title>How to define a function in component interface on Roku(BrightScript/SceneGraph)</title>
      <dc:creator>Uros Mitic</dc:creator>
      <pubDate>Thu, 29 Mar 2018 21:50:25 +0000</pubDate>
      <link>https://dev.to/umitic/how-to-define-a-function-in-component-interface-on-rokubrightscriptscenegraph-dff</link>
      <guid>https://dev.to/umitic/how-to-define-a-function-in-component-interface-on-rokubrightscriptscenegraph-dff</guid>
      <description>&lt;p&gt;If you have custom component named "doWhateverScreen" and you would like to print a string passed down from a different component named "HomeScene" using function in "doWhateverScreen" component interface, this is how you would do it.&lt;/p&gt;

&lt;p&gt;First in your doWhateverScreen.xml file add:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    &amp;lt;interface&amp;gt;
        &amp;lt;function name="doWhateverMan" /&amp;gt;
    &amp;lt;/interface&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Now in doWhateverScreen.brs file add your "doWhateverMan" function:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    Function doWhateverMan(param as String)
        print param
    End Function
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Great, so far so good!Let us continue.&lt;br&gt;
In your HomeScene.xml add this custom created "doWhateverScreen" screen/component and in HomeScene.brs init() function add:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    m.doWhateverScreen= m.top.findNode("doWhateverScreen")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;We can now call a function named "doWhateverMan" from HomeScene.brs with:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    param = "Do Androids Dream of Electric Sheep?"
    m.doWhateverScreen.callFunc("doWhateverMan",param)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;That's it! Have a great day. :-D&lt;/p&gt;

</description>
      <category>brightscript</category>
      <category>rokusdk</category>
      <category>scenegraph</category>
      <category>roku</category>
    </item>
    <item>
      <title>How to launch a Roku channel from within another Roku channel</title>
      <dc:creator>Uros Mitic</dc:creator>
      <pubDate>Tue, 06 Feb 2018 13:44:23 +0000</pubDate>
      <link>https://dev.to/umitic/how-to-launch-a-roku-channel-from-within-another-roku-channel-b6f</link>
      <guid>https://dev.to/umitic/how-to-launch-a-roku-channel-from-within-another-roku-channel-b6f</guid>
      <description>&lt;p&gt;Launching one application from another on Roku platform sounds pretty cool right?&lt;br&gt;
It also sounds complicated, especially if you are following Roku Documentation.&lt;br&gt;
So I will try to explain it as simple as possible.&lt;br&gt;
In this article I will focus only on part of the code that is responsible for launching another channel, if you want to check the whole project, go here:&lt;br&gt;
&lt;a href="https://github.com/umitic/Roku-Channel-Within" rel="noopener noreferrer"&gt;https://github.com/umitic/Roku-Channel-Within&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let us start:&lt;/p&gt;

&lt;p&gt;What you are actually doing, when You are launching Roku channel from within another channel is basically sending URL request to your Roku device.&lt;br&gt;
Nothing fancy there, right?&lt;br&gt;
To be able to do this we will use Roku External Control API.&lt;/p&gt;

&lt;p&gt;Here is the code for launching another app from the Task:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;deviceInfo = CreateObject("roDeviceInfo")
deviceIP = deviceInfo.GetIPAddrs().eth1

urlString = "http://" + deviceIP + ":8060/launch/12"     

request = CreateObject("roUrlTransfer")
request.SetUrl(urlString)
request.AsyncPostFromString(urlString)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Ok, let me explain this little piece of code:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;deviceInfo = CreateObject("roDeviceInfo")
deviceIP = deviceInfo.GetIPAddrs().eth1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Here we are creating "roDeviceInfo" object so we could get IP address of Your Roku by calling "deviceInfo.GetIPAddrs().eth1" on it.&lt;br&gt;
GetIPAddrs() - Returns roAssociativeArray. Each key in the Associative Array is the name of a network interface and the value is the IP-address of the interface.&lt;br&gt;
Normally there will be only one interface in the Associative Array and that's why we call it directly with "GetIPAddrs().eth1".&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;urlString = "http://" + deviceIP + ":8060/launch/12"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;With this string we are creating URL for the launching request. &lt;br&gt;
What is important here is number "12"!&lt;br&gt;
Number "12" is internal channel ID, in my case it's an ID of the Netflix channel.&lt;br&gt;
You can get internal channel ID from the URL of the channel in the Roku channel Store.&lt;br&gt;
Here is how Netflix one looks like: &lt;br&gt;
    &lt;a href="https://channelstore.roku.com/details/12/netflix" rel="noopener noreferrer"&gt;https://channelstore.roku.com/details/12/netflix&lt;/a&gt;&lt;br&gt;
Notice that "12" just after the "/details/" part.&lt;br&gt;
Lets us move on...&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;request = CreateObject("roUrlTransfer")
request.SetUrl(urlString)
request.AsyncPostFromString(urlString)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;This should be straightforward to understand.&lt;br&gt;
We are creating "roUrlTransfer" object, then we have to set URL for the request by passing urlString as argument.&lt;br&gt;
And after that we are calling AsyncPostFromString with urlString as argument.&lt;/p&gt;

&lt;p&gt;That is it!&lt;br&gt;
You have just launched Netflix from Your channel! :-)&lt;/p&gt;

&lt;p&gt;Just one more thing. Before launching the Netflix channel you will have to have it installed on Your device.&lt;br&gt;
You can do it in "regular/non-developer" way or You can modify urlString variable to instal Netflix from your channel. :-)&lt;br&gt;
You can check Roku Documentation to find more about this: &lt;a href="https://developer.roku.com/en-gb/docs/developer-program/debugging/external-control-api.md" rel="noopener noreferrer"&gt;https://developer.roku.com/en-gb/docs/developer-program/debugging/external-control-api.md&lt;/a&gt;&lt;/p&gt;

</description>
      <category>brightscript</category>
      <category>rokusdk</category>
      <category>scenegraph</category>
      <category>roku</category>
    </item>
  </channel>
</rss>
