<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Bhavik Agrawal on Medium]]></title>
        <description><![CDATA[Stories by Bhavik Agrawal on Medium]]></description>
        <link>https://medium.com/@bhavikagrawal?source=rss-7a76c7fe4f77------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/0*2LBQV9va5KTJPZ0k.</url>
            <title>Stories by Bhavik Agrawal on Medium</title>
            <link>https://medium.com/@bhavikagrawal?source=rss-7a76c7fe4f77------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sun, 15 Nov 2026 17:33:31 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@bhavikagrawal/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[BUILD — STEALTH 1.0.0]]></title>
            <link>https://medium.com/@bhavikagrawal/build-stealth-1-0-0-8069f90df38b?source=rss-7a76c7fe4f77------2</link>
            <guid isPermaLink="false">https://medium.com/p/8069f90df38b</guid>
            <dc:creator><![CDATA[Bhavik Agrawal]]></dc:creator>
            <pubDate>Wed, 17 Jul 2024 07:10:11 GMT</pubDate>
            <atom:updated>2024-10-14T08:33:36.728Z</atom:updated>
            <content:encoded><![CDATA[<h3>BUILD - STEALTH 1.0.0</h3><p>After graduating from college in 2015, <a href="https://www.linkedin.com/in/bhavikagrawal/">I</a> came across an idea from a friend, <a href="https://www.linkedin.com/in/vibhorsharma-cloud/">Vibhor</a>, to build a business that can help humanity and generate revenue. The idea was to bring the entire healthcare system to a fingertip and build an independent virtual personal doctor. We named it <strong>The Machine, </strong>inspired by The Machine from the TV series <a href="https://www.imdb.com/title/tt1839578/"><em>Person Of Interest</em></a>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*WprCZ885lDROMRMPyD3rVA.jpeg" /></figure><h3>The Idea and Validation</h3><p>Originally, the idea was Vibhor’s and his two friends(<a href="https://www.linkedin.com/in/uday-singh-43433167">Uday</a> &amp; <a href="https://www.linkedin.com/in/gauravsuman99">Gaurav</a>), who created a proof of concept (POC) in college and won a prize for <strong>Best Innovative Product</strong>. When they demonstrated it to me, I was convinced this was a revolutionary idea.</p><p>Here is the original abstract from their project:</p><blockquote>“<strong>SPARK</strong>(Simple Prescription for Anatomical Remedies Key) is an Artificial Intelligent based Expert System which provides household tips and remedies for the problems to sufferers at his home in emergency when there is no medical help is available.</blockquote><blockquote>It features “fine tuning” and the acquisition of updated advices agreeing the opinions of its consultants. This project is to assist with the decisions involved in the selection of appropriate therapy for patients with infections and recommendation for Allopathic Medicines.</blockquote><blockquote>It also facilitates doctors with clinical decision-making. This increase in objective reasoning should lead to the reduction of human errors and improvements in the quality of care.</blockquote><blockquote>Causal explanation of what is happening to the patient is the basis of complete diagnosis.</blockquote><blockquote>Predictions about the disease processing are the base for therapy and suggesting medical relief. The process of decision making is based on identifying the criteria (Signs / Symptoms) before a feasible goal (Diagnosis) is identified. Then as a consequence of the earlier decision (Diagnosis) evaluation of the intervention procedures adopted (Treatment plan). Finally an appraisal of the possible final goal (outcome i.e. recovery).”</blockquote><p>When I first read this, it felt ahead of its time. Reflecting on the advancements by Google and OpenAI now, I believe we could have been contenders in this space.</p><h3>The Team and Initial Success</h3><p>Initially, Vibhor and I spent countless hours discussing our vision for the project. We planned to develop <a href="https://docs.google.com/document/d/1CSPF1YAAFF3k10sGOP0MPnNZOqG9SzfC0pBjyItvyt0/edit?usp=sharing">30 modules</a>, starting with a Health Tracking System. We amassed over 200 GB of data on medical science, machine learning, and more. We identified the tools we needed: Bitbucket for our codebase, Java and Angular for programming, MySQL for our database, and Asana for project management(<a href="https://drive.google.com/drive/folders/102u7YiuhUlE8YtcrJIdy6NnOjWVJOoTU?usp=sharing">photos</a>).</p><p>Realizing we needed a larger team, we convinced 30 developers to join us part-time. We offered profit-sharing or equity once we started generating revenue. Our daily meetings, detailed planning, and task tracking on Asana helped us achieve our first significant milestone.</p><p><strong>It was a big success for us, our first one.</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*du2LuSIFQ7LNe1r-AKAdNA.jpeg" /><figcaption>Designed by <a href="http://www.freepik.com/">Freepik</a></figcaption></figure><h3>Initial Obstacle</h3><p>Everyone on the team was a fresher, having worked in the industry for no more than six months.</p><p>While everyone was eager to start their entrepreneurial journey, productivity decreased by the end of the first week. Motivation dropped, and Vibhor and I struggled to keep the team focused on our common goal. We wanted everyone to visualize our product&#39;s future possibilities, but we failed to keep the boat afloat. Slowly, team members stopped joining calls and working, and we lost them all within a month.</p><p>And the <strong>Project SHUT DOWN</strong>… Partially…</p><h3>Crawling Baby</h3><p>Despite the setbacks, Vibhor and I were determined to keep the project alive. We continued developing the product with our limited technical knowledge over the next three years, spending a couple of hours daily, which gradually decreased to weekly and then monthly. We lost hope in fast-tracking our vision.</p><p>We connected with more people to help build the product and even tried hiring interns with minimal pay. However, no one worked with us for more than two months. We needed more motivation and dedicated time to build the project or guide interns. We also sought fundraising and participated in competitions like the <a href="https://svcasia.submittable.com/submit">DBS-NUS Social Venture Challenge Asia</a>, but we never heard back from any of them.</p><p>Realizing this approach wasn’t working, we continued the project as long as we could, but it was a slow crawl.</p><h3>Farewell</h3><p>Vibhor and I became increasingly busy with our jobs, leaving little time for the project. We stopped discussing it, and although it was a buried dream, it remained alive in our hearts.</p><p>In 2018, I considered going full-time on the project and discussed it with Vibhor. We re-evaluated our idea and found it was no longer unique. Without funds or a team, we couldn’t build it to the level we envisioned. We made the difficult decision to shut down the project for good and never looked back.</p><h3>My Success Story</h3><p>Being part of the project was one of my biggest successes. As a college graduate with no prior entrepreneurial experience, the challenges it introduced were daunting. However, it pushed me to grow at every step. This journey taught me a lot about business, product development, team management, and the importance of good technical skills. I became a better person, and that was indeed a worthwhile result of my investment.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=8069f90df38b" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Going Mouse-less for a week]]></title>
            <link>https://medium.com/@bhavikagrawal/going-mouse-less-for-a-week-279af23140f0?source=rss-7a76c7fe4f77------2</link>
            <guid isPermaLink="false">https://medium.com/p/279af23140f0</guid>
            <category><![CDATA[productivity]]></category>
            <category><![CDATA[learning]]></category>
            <category><![CDATA[habit-building]]></category>
            <category><![CDATA[developer]]></category>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Bhavik Agrawal]]></dc:creator>
            <pubDate>Sat, 22 Jul 2023 11:40:59 GMT</pubDate>
            <atom:updated>2023-07-23T10:36:38.723Z</atom:updated>
            <content:encoded><![CDATA[<p>In our digital realm, we often overlook the immense power at our fingertips. As a developer, I was guilty of neglecting this power until I embarked on a journey toward mastery and delved into the book <em>“The Pragmatic Programmer” by David Thomas and Andrew Hunt.</em></p><p>Within its pages, I discovered the concept of Power Editing, which highlighted the potential of editor fluency and efficient tool usage to boost productivity. The idea that a mere 4% improvement in efficiency could translate to an extra week of productivity captivated me.</p><p>It was then that I decided to challenge myself: I would go mouse-less for the next five days, embracing the full potential of my keyboard. Join me on this transformative journey as I recount my experiences and the valuable lessons I learned along the way.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*kmE1Owf8_O9Z_AXEDmJQGg.jpeg" /><figcaption>Going Mouse-less for a week</figcaption></figure><h4>How do I use the keyboard today?</h4><p>I have been using basic keyboard shortcuts for a few applications:</p><ul><li><strong><em>VSCode</em></strong>: Saving, closing a tab, closing windows, renaming files/variables, switching b/w terminal and workspace, closing the Terminal, deleting lines, moving lines up and down, expanding and collapsing sidebar, switching b/w open tabs.</li><li><strong><em>Git</em></strong>: Use commands for pull, rebase, remote add/update/delete, checkout, push, and fetch.</li><li><strong><em>IOS</em></strong>: Opening new applications, calculator, switching b/w opened applications.</li><li><strong><em>Notes</em></strong>: Create a new note</li><li><strong><em>Outlook</em></strong>: Send a new email</li></ul><p>For anything else, I use the trackpad.</p><p><strong><em>I am </em>apprehensive</strong> <strong><em>that this challenge might hinder my productivity and result in fewer deliverables at the office. But I need to push myself to improve.</em></strong></p><p>To ensure the success of this challenge, I rely on my trusty <strong><em>Track Pad Cover</em></strong>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*ssRvW9AbYT4UTwyeNtDK2w.png" /></figure><p><strong>Day 1</strong></p><blockquote><em>I have a lot of work to finish. <br>I have opened many applications(both desktop and web). <br>I do not know many shortcuts for most of the website/applications. <br>I need to finish work on time. <br>How do I navigate through the Jira board? <br>How do I pick a call in Slack?<br>How do I open multiple instances of VSCode?<br>How to switch b/w multiple Chrome instances?<br>ohho…I am already struggling…</em></blockquote><p><em>I took a deep breath….</em>, and opened all possible shortcuts available for different tools: <a href="https://help.medium.com/hc/en-us/articles/214672207-Editor-keyboard-shortcuts">Medium</a>, <a href="https://support.google.com/chrome/answer/157179?hl=en&amp;co=GENIE.Platform%3DDesktop#hcfe-content&amp;zippy=%2Ctab-window-shortcuts%2Cgoogle-chrome-feature-shortcuts%2Caddress-bar-shortcuts%2Cwebpage-shortcuts">Google Chrome</a>, <a href="https://jira.atlassian.com/secure/ViewKeyboardShortcuts!default.jspa">Jira</a>, Slack(<a href="https://slack.com/intl/en-in/help/articles/115003340723-Navigate-Slack-with-your-keyboard">this</a> &amp; <a href="https://slack.com/intl/en-in/help/articles/201374536-Slack-keyboard-shortcuts#take-actions-on-messages">this</a>), <a href="https://support.microsoft.com/en-us/office/keyboard-shortcuts-for-outlook-3cdeb221-7ae5-4c1d-8c1d-9e63216c1efd#PickTab=macOS">Outlook</a>, <a href="https://support.apple.com/en-in/HT201236">Mac OS</a>, <a href="https://support.microsoft.com/en-gb/office/keyboard-shortcuts-for-microsoft-teams-2e8e2a70-e8d8-4a19-949b-4c36dd5292d2#PickTab=macOS">MS Teams</a>, and VSCode(key bindings).</p><p>Things started working better. I could navigate b/w multiple instances of the same application, fold/unfold blocks of code and pick up/make calls over Teams and Slack. But navigation through an application was still taking time as I navigated using the Tab key to navigate to a specific option.</p><p><strong>Attitude: I <em>can work without a trackpad for the next five days. </em></strong>😎</p><p><strong>Reality: <em>That’s not what happened. </em>😭 <em>I had to rely on the trackpad for few times.</em></strong></p><blockquote>Not all software and websites are built keeping <a href="https://en.wikipedia.org/wiki/Accessibility">Accessibility</a> in mind.</blockquote><p>— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —</p><p><strong>I used the trackpad for</strong>:</p><ol><li>To copy VSCode zest runner keyboard shortcuts from a <a href="https://marketplace.visualstudio.com/items?itemName=firsttris.vscode-jest-runner#start-of-content">webpage</a>.</li><li>Maximize the current window shortcut available on Mac.</li><li>Switch to/maximize the pop-in window in Teams on Mac.</li><li>For unlocking pdf, the <a href="https://www.ilovepdf.com/">website</a> does not have a navigation shortcut.</li></ol><p>— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —</p><p><strong>One good thing happened: </strong>I use the Grammarly extension in Chrome which highlights potential grammatical errors. And to fix the error/check suggestion, I had to click on the highlighted text.<br>So, instead of using its suggestion, I make fewer grammatical errors and depend less on the extension.</p><p><strong>Day 2</strong></p><p>As I embarked on my second day without a mouse, I anticipated a smoother experience armed with newfound knowledge of additional shortcuts. However, the reality proved more challenging.</p><p>My first task was to review a Gihub PR. And I realized navigating to a specific line in a file is not working for me. And I could not <a href="https://docs.github.com/en/get-started/using-github/keyboard-shortcuts">find</a> a way, to put an inline comment (though a solution existed).</p><p>Later in the day, I struggled to look for shortcuts to do X in application A or Y in application B.</p><p>— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —</p><p><strong>I used the trackpad for</strong>:</p><ol><li>Navigating GitHub PR files, line by line. But later in the day, tab navigation started working and the cursor moved to the line the comment was required on.</li><li>Selecting the attached image in the Jira comment</li><li>Select and copy from PDF.</li><li>One application did not have accessibility control. And I had to zoom in/out a PDF inside that application.</li><li>For VSCode, opening and closing a new instance.</li><li>Outlook was not responding to my navigation button.</li><li>On Mac, when I close Excel, a confirmation pop-up asks to save, close without saving, or cancel. But it does not allow us to change the selection using keyboard navigation. I miss MS Windows accessibility here.</li></ol><p>— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —</p><p>Shortcuts: <a href="https://support.microsoft.com/en-gb/office/keyboard-shortcuts-in-excel-1798d9d5-842a-42b8-9c99-9b7213f0040f">MS Excel</a>, <a href="https://docs.github.com/en/get-started/using-github/keyboard-shortcuts">GitHub</a></p><p>As I embark on my second day of this new endeavor, I find myself confronted by the challenges of keyboarding. To my surprise, I’ve come to realize just how much I depend on my trusty trackpad to complete tasks efficiently. Unfortunately, the learning process is proving to be more time-consuming than I had anticipated.</p><p><strong>Day 3</strong></p><p>The need for speed drove me on the third day, pushing me to work faster.</p><p>Though the day started smoothly, I stumbled when it came to answering incoming calls outside of the Teams application and navigating the calendar within Teams.</p><blockquote>While the challenge had its benefits, it also highlighted the time-consuming nature of certain tasks without the assistance of a mouse or trackpad.</blockquote><p>— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —</p><p><strong>I used the trackpad for</strong>:</p><ol><li>To expand the screenshot area on MacOS.</li><li>Selecting Bluetooth device to connect.</li><li>To apply breakpoint in Chrome source in the dev tool for debugging my code.</li><li>To expand the file explorer section in VSCode. In JIRA, we can expand it using just a keyboard.</li><li>Close stupid calendar reminder</li></ol><p>— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —</p><p><strong>Day 4</strong></p><p>With a heavy workload and a day filled with lengthy calls, I am optimistic about completing my outstanding tasks within the designated timeframe.</p><p>After using Jira with just a keyboard, it stood out as a remarkably accessible tool.</p><p>— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —</p><p><strong>I used the trackpad for</strong>:</p><ol><li>Open the link in the WhatsApp web chat</li><li>Selecting Bluetooth device to connect.</li><li>Copy from PDF</li><li>Move a pop-up/dialog box windows</li></ol><p>— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —</p><p>The day felt exceptionally long, and regrettably, I was unable to finish my tasks, leading to a considerable backlog. Now, with only one day remaining in the sprint, I must find a solution to complete my work by tomorrow, no matter what.</p><p><strong>Day 5</strong></p><p><em>Today marks the final day of the challenge, I faced a mounting workload and an overwhelming desire to complete my tasks.</em></p><p>The day kicked off on a smooth note, with the first few hours passing without any issues. However, things took a frustrating turn when I needed to request a reimbursement using one of our internal tools. As soon as I opened the portal, it became apparent that it lacked any accessibility features, leaving me with no choice but to fall back on the trackpad once again.</p><p><em>Frustration…<br>I had to click so many times to apply for reimbursement.<br>Disappointment…</em></p><p>The workload was substantial, and the past five days have been quite demanding. I found myself relying on the trackpad extensively, particularly on a single site, as I tried to get through all the tasks that needed to be completed.</p><p>Now, it’s time to wrap up the tasks and put an end to this challenging ordeal (with a tinge of deep regret 😞).</p><h4><strong>Productivity after 2 weeks:</strong></h4><p>I have integrated more shortcuts into my daily routine, leveraging their benefits for tasks such as making calls, switching between multiple instances of the application, navigating through Jira, and more.</p><p>As I continue to discover and incorporate shortcuts, I strive for a harmonious balance between the keyboard and mouse, using each to complement and enhance my productivity.</p><p>By embracing the power of the keyboard, we can unlock new levels of efficiency and productivity, empowering ourselves to accomplish more in our digital endeavors.</p><p><strong>Key Takeaway</strong>: During a recent project aimed at enhancing the Accessibility of one of our products, I made an intriguing discovery — each country has its own <a href="https://www.w3.org/WAI/policies/">laws concerning product accessibility</a>. This challenge has served as a motivating force, inspiring me to take our website to the next level by making it more intuitive and accessible through keyboard navigation.</p><h4>Conclusion</h4><p>The week-long mouse-less challenge offered me a fresh perspective on productivity through keyboard shortcuts and reduced reliance on the mouse or trackpad. While it’s nearly impossible to go entirely mouse-less due to the lack of accessibility features in certain applications and websites, the experience has motivated me to explore more shortcuts and incorporate them into my daily workflow. By constantly seeking opportunities to enhance productivity and accessibility, we can harness the true power of our digital tools.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=279af23140f0" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Code Review: Frontend]]></title>
            <link>https://medium.com/@bhavikagrawal/code-review-frontend-49e86243b5fe?source=rss-7a76c7fe4f77------2</link>
            <guid isPermaLink="false">https://medium.com/p/49e86243b5fe</guid>
            <category><![CDATA[code-review-process]]></category>
            <category><![CDATA[front-end-development]]></category>
            <category><![CDATA[code-review]]></category>
            <category><![CDATA[code-quality-standards]]></category>
            <category><![CDATA[code-quality]]></category>
            <dc:creator><![CDATA[Bhavik Agrawal]]></dc:creator>
            <pubDate>Fri, 28 Apr 2023 12:26:03 GMT</pubDate>
            <atom:updated>2023-05-02T06:29:21.288Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*FfMsUJ0XepQvuQZpvv_IvA.jpeg" /></figure><p>Code review is an integral part of any software development lifecycle. A thoroughly reviewed code is more likely to perform well in production. However, good code review is an art. It is a journey. One becomes a better reviewer with experience. A good code review, while focussing on the functional requirements and the implementation logic, also takes into account the coding best practices, code aesthetics, and impact of the modified code on other modules of the application.</p><p>Let me give you a brief, on how I approach this activity.</p><ol><li><strong>Understanding Requirements: </strong>Go through the requirement ticket and understand the ask. Reach out to the developer for any clarifications.</li><li><strong>Checkout code locally</strong>: Helps me traverse b/w different files and understand the flow/design used for implementation. Also, I can locate any code which fails <strong>Linting</strong>(esLint, sonarQube) checks.</li><li><strong>Design patterns</strong>: Frontend is not known a lot for its design patterns and developers implement the logic based on their best understanding of a particular language/framework. However, it is still a good idea to use a pattern that could simplify code, and make it maintainable and extendable. There is a list of design patterns mentioned on <a href="https://www.patterns.dev/posts/#design-patterns"><strong>pattern.dev</strong></a><strong> </strong>that could be used.</li><li><strong>Performance: </strong>Customers love fast and high performant websites and generally abandon/exit slower ones. Fast-loading pages result in higher conversions and revenues. <em>Walmart saw a 1% increase in revenue for every 100ms improvement in load time</em>. Similar results were reported by <a href="http://wpostats.com/"><strong>many</strong></a><strong> </strong>other companies.<br>So, I make sure, any looping operations are <strong>syntactically optimized</strong>, <strong>lazy loading</strong> is done wherever necessary, <strong>dynamic importing </strong>for selective rendering<strong>, and code splitting</strong> is done properly. Use the <strong>Lighthouse</strong> tab in <em>Google Chrome Developer Tools</em> to test the page performance.<br>There are different frameworks, with <a href="https://www.patterns.dev/posts/#rendering-patterns">multiple rendering patterns</a> like NextJs. So, using the best rendering pattern is critical. Ex. Users must not use incremental static generation for a chat box.<br>There are more <a href="https://www.patterns.dev/posts/#performance-patterns">performance-based patterns</a> to choose from.</li><li><strong>Cache: </strong>The application must avoid calling APIs unnecessarily and use an appropriate cache policy. Network calls should be only made for changing resources.</li><li><strong>State Management: </strong>Avoid saving unnecessary data in stage management tools like redux. Ex. saving tax calculation for different products of e-commerce website, when it will be dependent on different locations.</li><li><strong>Run changes locally: </strong>When a change is complex, it’s good to run and interact with the application to find any missing edge cases or incorrect behavior. I usually test it on multiple devices.</li><li><strong>Test Cases: <br>- </strong>Check the test description and implementation for any mismatch<br>- warnings/errors in the console by running test cases<br>- a missing scenario that is not covered in test cases.<br>- Test case must be meaningful, and must not be written to satisfy the coverage threshold.<br>- must be syntactically correct.</li><li><strong>LightHouse report:</strong> For Accessibility, SEO (and PWA (Progressive Web App) — if applicable)</li><li><strong>Analytics</strong>: Analytics Tag Manager events must be correctly implemented.</li><li><strong>Generic Feedback</strong>: <br>- function name <br>- variable name<br>- File name<br>- Code Segregation into different files.<br>- <strong>CSS/HTML structure:</strong> only optimized structure is passed<br>- scope change of a function/variable<br>- Is a new/better syntax available in ES?<br>- Duplicate code<br>- Reusable code<br>- Unused code<br>- Inline styles not allowed<br>- Following <a href="https://github.com/webpro/programming-principles">programming principles</a>? especially the <strong>Single Responsibility Principle<br>- </strong>Documentation <br>- Comments <br>- Complexity <br>- Functionality<br>- Type checking: proper type defined across changes(potentially using Typescript).<br>- Impacting other non-dependent features.</li><li><strong>PR validation</strong>:<br>- Is the commit message and body descriptive?<br>- Is the PR description descriptive?<br>- Does pass the CI/CD pipeline?<br>- Is PR broken into multiple meaningful commits?</li><li><strong>Audits/Security checks</strong>: audit and security issues must be addressed on priority. The application build should fail if any major security vulnerability is reported.</li><li>Most important — read as much as you can about multiple technologies, advancements, other frameworks, tools, <a href="https://docs.google.com/document/d/1EtKZWn76KAge9v4lFo3vZ2zcGwEEn3LpbRb4cbAkdpM/edit?usp=sharing">top companies engineering blogs/articles</a>, Tech YT channels, etc.</li></ol><p>There are a few articles/YT channels that could be a good source of knowledge and will help better understand front-end programming.<br>- <a href="https://web.dev/">Web Dev</a> <br>- <a href="http://css-tricks.com/">CSS Tricks</a><br>- <a href="https://javascript.info/">Javascript</a><br>- <a href="https://www.youtube.com/@Fireship">YT Fireship</a> and <a href="https://www.youtube.com/@beyondfireship">YT Fireship Beyond</a><br>- <a href="https://www.youtube.com/@DesignCourse">Design Course</a>, <a href="https://www.youtube.com/@KevinPowell">All about CSS </a><br>- <a href="https://web.dev/speed-html5/">Page Speed improvement</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=49e86243b5fe" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>