<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2838270249296465765</id><updated>2026-09-25T11:43:14.761-07:00</updated><category term="Devops"/><category term="aiagents"/><category term="automation"/><category term="administration"/><category term="Documentation"/><category term="Meetups"/><category term="Troubleshooting"/><category term="artificalintelligence"/><category term="AWS"/><category term="Chef"/><category term="Cloud Computing"/><category term="DevSecOps"/><category term="Server"/><category term="abtesting"/><category term="conversionrateoptimization"/><category term="Open Source"/><category term="cro"/><category term="marketing"/><category term="Ansible"/><category term="Configuration Management"/><category term="Information Security"/><category term="Virtualization"/><category term="analytics"/><category term="sales"/><category term="AgentGovernance"/><category term="Deployment"/><category term="Docker"/><category term="JavaScript"/><category term="Linux"/><category term="Monitoring"/><category term="Nagios"/><category term="Provisioning"/><category term="SSH"/><category term="SecOps"/><category term="Storage"/><category term="VMWare vCloud"/><category term="Vagrant"/><category term="VirtualBox"/><category term="career"/><category term="BigData"/><category term="Bugzilla"/><category term="Bulk tagging"/><category term="CPU"/><category term="Data Recovery"/><category term="Hadoop"/><category term="Hbase"/><category term="Hive"/><category term="Infrastructure"/><category term="Kali Linux"/><category term="KnowledgeManagement"/><category term="MCP"/><category term="MySQL"/><category term="OWASP"/><category term="Operations"/><category term="Perl"/><category term="RAM"/><category term="Ruby"/><category term="RubyOnRails"/><category term="S3"/><category term="SLA"/><category term="Serverless"/><category term="Standard"/><category term="Tags"/><category term="Uptime"/><category term="VMWare"/><category term="Webpage"/><category term="Wiki"/><category term="aigents"/><category term="burpsuite"/><category term="conferce"/><category term="cpan"/><category term="envoy"/><category term="git"/><category term="hop"/><category term="java"/><category term="load balancer"/><category term="measurecamp"/><category term="n8n"/><category term="paas"/><category term="proxy"/><category term="rsync"/><category term="s3cmd"/><category term="scp"/><category term="source build"/><category term="ssh tunnel"/><category term="ssh-copy-id"/><category term="ssh-keyscan"/><category term="tech event"/><category term="terraform"/><category term="ubuntu"/><category term="waas"/><title type='text'>Techsperiments</title><subtitle type='html'>This blog relates to and is based on my daily work as a DevOps and Security Engineer</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://roshannagekar.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2838270249296465765/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://roshannagekar.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/2838270249296465765/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Roshan Nagekar</name><uri>http://www.blogger.com/profile/08009772289480467450</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>79</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2838270249296465765.post-1803115465033356704</id><published>2026-09-24T10:27:15.970-07:00</published><updated>2026-09-24T10:27:15.970-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="administration"/><category scheme="http://www.blogger.com/atom/ns#" term="artificalintelligence"/><category scheme="http://www.blogger.com/atom/ns#" term="automation"/><category scheme="http://www.blogger.com/atom/ns#" term="career"/><category scheme="http://www.blogger.com/atom/ns#" term="Devops"/><title type='text'>Getting Your First DevOps Job Is Harder Now — Here&#39;s What I Tell My Students</title><content type='html'>&lt;p&gt;&amp;nbsp;I&#39;ve been working in DevOps for around 14 years, and I&#39;ve also been teaching DevOps and Cloud subjects at universities for the last 4–5 years.&lt;/p&gt;
&lt;p&gt;One thing I&#39;ve noticed recently: &lt;strong&gt;getting your first DevOps job seems much harder than it was even 2–3 years ago.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A few years back, students and juniors would send me their CVs and I&#39;d usually have something useful to suggest. Many of them would at least get interview opportunities.&lt;/p&gt;
&lt;p&gt;Today, the market isn&#39;t great, and on top of that, everyone has access to AI-generated CVs, cover letters, LinkedIn profiles, and so on. When hundreds of applications all look polished, it becomes harder for recruiters to figure out who actually knows their stuff.&lt;/p&gt;
&lt;p&gt;So here are a few things I keep telling my students.&lt;/p&gt;
&lt;h2&gt;1. Don&#39;t Choose DevOps Because You Think You Can Avoid Coding&lt;/h2&gt;
&lt;p&gt;I&#39;ve heard this quite a few times:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&quot;I&#39;m not interested in coding, so I&#39;m thinking of DevOps.&quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That&#39;s the wrong reason to get into DevOps.&lt;/p&gt;
&lt;p&gt;You&#39;ll write scripts, automation, YAML, pipelines, Infrastructure as Code, debugging tools, and sometimes proper application code. More importantly, you need to enjoy investigating systems and figuring out &lt;strong&gt;why something isn&#39;t working&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;If you hate both coding and troubleshooting systems, DevOps probably isn&#39;t the escape route you&#39;re looking for.&lt;/p&gt;
&lt;h2&gt;2. DevOps Comes With Responsibility&lt;/h2&gt;
&lt;p&gt;Remember Spider-Man?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&quot;With great power comes great responsibility.&quot;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;That applies surprisingly well to DevOps.&lt;/p&gt;
&lt;p&gt;The infrastructure you&#39;re managing might be running someone&#39;s entire business. Sometimes you&#39;re having dinner with your family and an alert appears on your phone. Sometimes something breaks at an odd hour. Sometimes everyone else is enjoying a holiday while you&#39;re wondering why a production node suddenly decided it no longer wants to participate in society.&lt;/p&gt;
&lt;p&gt;Not every DevOps job has terrible on-call expectations, of course. But &lt;strong&gt;ownership and accountability are part of the profession&lt;/strong&gt;. Know what you&#39;re signing up for.&lt;/p&gt;
&lt;h2&gt;3. Build a GitHub History, Not Just a GitHub Account&lt;/h2&gt;
&lt;p&gt;When I started 13–14 years ago, having an impressive GitHub profile wasn&#39;t nearly as important for many infrastructure roles.&lt;/p&gt;
&lt;p&gt;Today, if you&#39;re a student with no professional experience, your GitHub can become evidence that you actually build things.&lt;/p&gt;
&lt;p&gt;Don&#39;t obsess over making every project impressive. &lt;strong&gt;First build the habit of creating things regularly.&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Write scripts&lt;/li&gt;&lt;li&gt;Build Docker images&lt;/li&gt;&lt;li&gt;Automate something with Python&lt;/li&gt;&lt;li&gt;Create Terraform modules&lt;/li&gt;&lt;li&gt;Write an Ansible role&lt;/li&gt;&lt;li&gt;Deploy Kubernetes applications&lt;/li&gt;&lt;li&gt;Build CI/CD pipelines&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;And commit your work.&lt;/p&gt;
&lt;p&gt;I actually suggest turning this into a game.&lt;/p&gt;
&lt;p&gt;When I was in school, some friends and I wanted to improve our English. We made a game where we had to speak English all the time — if someone caught you speaking another language, you lost points. We did this for years, and it genuinely helped.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Do something similar with GitHub.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Find a friend. Every day you commit something meaningful, you get a point. First person to 100 wins. Then reset and start again.&lt;/p&gt;
&lt;p&gt;You&#39;ll miss days. You&#39;ll get bored. That&#39;s fine.&lt;/p&gt;
&lt;p&gt;But after a year, compare your GitHub profile with the one you had before.&lt;/p&gt;
&lt;h2&gt;4. Stop Sending the Same Application to 500 Companies&lt;/h2&gt;
&lt;p&gt;AI has made mass-applying ridiculously easy — which also means everyone can do it.&lt;/p&gt;
&lt;p&gt;I&#39;d rather spend proper time on 10 jobs I genuinely want than blindly apply to hundreds with the exact same CV and a generic cover letter.&lt;/p&gt;
&lt;p&gt;Read the job description. Understand what they&#39;re actually asking for. Then explain &lt;strong&gt;why your experience and projects match those specific requirements&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Quality over volume, every time.&lt;/p&gt;
&lt;h2&gt;5. Don&#39;t Just Ask AI to Write the Entire Cover Letter&lt;/h2&gt;
&lt;p&gt;Use AI to proofread it, improve it, or organize your thoughts if you want.&lt;/p&gt;
&lt;p&gt;But &lt;strong&gt;put yourself into it&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Mention something specific from the job description. Explain a relevant project. Explain why you&#39;re interested in this particular role.&lt;/p&gt;
&lt;p&gt;It&#39;s okay if your writing isn&#39;t perfect. I&#39;d personally rather read something that sounds like a real person than another perfectly formatted:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;&quot;I am thrilled to apply for the exciting opportunity to leverage my passion for innovative cloud-native solutions...&quot;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;You know the type.&lt;/p&gt;
&lt;h2&gt;6. Add Something Human to Your Application&lt;/h2&gt;
&lt;p&gt;One thing worth experimenting with: a short Loom or video introduction.&lt;/p&gt;
&lt;p&gt;Not 10 minutes. &lt;strong&gt;60–120 seconds.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Something like: &lt;em&gt;&quot;I know you&#39;re probably reviewing a lot of applications, so instead of making you read another long introduction, here&#39;s a 90-second video about who I am, what I&#39;ve built, and why I&#39;m interested.&quot;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Whether recruiters watch it is another question. But at least you&#39;ve given them another way to evaluate you — something that&#39;s genuinely hard to fake with AI.&lt;/p&gt;
&lt;h2&gt;7. Make It Clear You&#39;re Willing to Prove Your Skills&lt;/h2&gt;
&lt;p&gt;When appropriate, mention that you&#39;re happy to go through a technical evaluation or practical exercise if that&#39;s part of their process.&lt;/p&gt;
&lt;p&gt;For someone without much professional experience, being able to &lt;strong&gt;show what you can do&lt;/strong&gt; can be far more useful than another paragraph claiming you&#39;re &quot;passionate about DevOps.&quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;None of these are magic tricks.&lt;/p&gt;
&lt;p&gt;They won&#39;t guarantee an interview, and they definitely won&#39;t guarantee a job.&lt;/p&gt;
&lt;p&gt;But the way people apply for jobs has changed dramatically with AI. If everyone&#39;s CV looks good, simply having a good-looking CV isn&#39;t much of a differentiator anymore.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Build things. Show your work. Develop consistency. Personalize your applications. Give people evidence that there&#39;s an actual engineer behind the PDF.&lt;/strong&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Curious what others think — especially people involved in DevOps hiring.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Has the way you screen junior DevOps candidates changed over the last 2–3 years?&lt;/strong&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://roshannagekar.blogspot.com/feeds/1803115465033356704/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2838270249296465765/1803115465033356704?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2838270249296465765/posts/default/1803115465033356704'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2838270249296465765/posts/default/1803115465033356704'/><link rel='alternate' type='text/html' href='http://roshannagekar.blogspot.com/2026/09/getting-your-first-devops-job-is-harder.html' title='Getting Your First DevOps Job Is Harder Now — Here&#39;s What I Tell My Students'/><author><name>Roshan Nagekar</name><uri>http://www.blogger.com/profile/08009772289480467450</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2838270249296465765.post-5740445840705326455</id><published>2026-09-24T10:24:55.122-07:00</published><updated>2026-09-24T10:24:55.123-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="abtesting"/><category scheme="http://www.blogger.com/atom/ns#" term="aiagents"/><category scheme="http://www.blogger.com/atom/ns#" term="analytics"/><category scheme="http://www.blogger.com/atom/ns#" term="conferce"/><category scheme="http://www.blogger.com/atom/ns#" term="conversionrateoptimization"/><category scheme="http://www.blogger.com/atom/ns#" term="cro"/><category scheme="http://www.blogger.com/atom/ns#" term="Devops"/><category scheme="http://www.blogger.com/atom/ns#" term="marketing"/><category scheme="http://www.blogger.com/atom/ns#" term="measurecamp"/><category scheme="http://www.blogger.com/atom/ns#" term="Meetups"/><category scheme="http://www.blogger.com/atom/ns#" term="tech event"/><title type='text'> MeasureCamp Delhi: Where I Became a Speaker Without Meaning To </title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;img alt=&quot;200th MeasureCamp Delhi&quot; class=&quot;reader-cover-image__img evi-image lazy-image ember-view&quot; height=&quot;381&quot; id=&quot;ember1381&quot; src=&quot;https://media.licdn.com/dms/image/v2/D4E12AQErQoo6cBYrKg/article-cover_image-shrink_720_1280/B4EaCuHAHMHQAQ-/0/1789627466928?e=1791417600&amp;amp;v=beta&amp;amp;t=cLNv1h7MYQsVZ81vbGsn4PS0FS6m7_nHwrxzCmSOxHI&quot; width=&quot;678&quot; /&gt;&lt;/p&gt;&lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember1402&quot;&gt;
      Last week I went to&lt;span class=&quot;white-space-pre&quot;&gt; &lt;/span&gt;&lt;a class=&quot;oeKsuVZibZVkrJDbiVLhrdCYZvAakDtemxMao &quot; data-test-app-aware-link=&quot;&quot; href=&quot;https://delhi.measurecamp.org/&quot; tabindex=&quot;0&quot; target=&quot;_self&quot;&gt;MeasureCamp Delhi 2026&lt;/a&gt;. This was their 200th event and indeed a special one. Before going, I had a simple picture in my head. Rows of chairs. A stage. Some speakers talking. Us nodding along. Chai/Coffee in between. Maybe a goodie bag at the end. People looking to sell their product every now and then. Group of students clicking selfies all over. The standard conference deal we have all attended at least fifty times in our careers.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember1403&quot;&gt;
      I was wrong indeed.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember1404&quot;&gt;
      MeasureCamp is something called an &quot;unconference.&quot; When I heard the word for the first time, I thought maybe they forgot to plan the conference part. It was on purpose though. There is no fixed agenda. The event starts with a short intro, sponsors get their thank you, and then they show you a big blank board with time slots and room numbers. That board is the real hero of the day. Here is a picture:
    &lt;/p&gt;

  







              
    &lt;div class=&quot;reader-image-block reader-image-block--full-width&quot;&gt;
      &lt;figure class=&quot;reader-image-block__figure&quot;&gt;
          
    &lt;div class=&quot;ivm-image-view-model    reader-image-block__img-container&quot;&gt;
        
    &lt;div class=&quot;ivm-view-attr__img-wrapper
        
        &quot;&gt;

          &lt;img alt=&quot;Article content&quot; class=&quot;ivm-view-attr__img--centered  reader-image-block__img evi-image lazy-image ember-view&quot; height=&quot;793&quot; id=&quot;ember1405&quot; src=&quot;https://media.licdn.com/dms/image/v2/D4E12AQGQ8WeedmR1IA/article-inline_image-shrink_1500_2232/B4EaCuHuk.HAAQ-/0/1789627657048?e=1791417600&amp;amp;v=beta&amp;amp;t=SbAvG2Y5Db-AgQcgqx5t21ykT80flNwctsFPn9g__zU&quot; width=&quot;587&quot; /&gt;
    &lt;/div&gt;
  
          &lt;/div&gt;
  

          &lt;figcaption class=&quot;reader-image-block__figure-image-caption display-block full-width text-body-small-open t-sans text-align-center t-black--light&quot;&gt;
            Speaker/Event Session Board
          &lt;/figcaption&gt;
      &lt;/figure&gt;
    &lt;/div&gt;
  





            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember1406&quot;&gt;
      I remember pre-covid days, I did something similar. As a meetup organizer at DevOps Pune and after getting some inspiration Seattle meetup groups, I started working on&lt;span class=&quot;white-space-pre&quot;&gt; &lt;/span&gt;&lt;a class=&quot;oeKsuVZibZVkrJDbiVLhrdCYZvAakDtemxMao &quot; data-test-app-aware-link=&quot;&quot; href=&quot;https://leancoffee.org/&quot; tabindex=&quot;0&quot; target=&quot;_self&quot;&gt;Leancoffee&lt;/a&gt;&lt;span class=&quot;white-space-pre&quot;&gt; &lt;/span&gt;format of meetups since we were getting lot of marketing pitches back then. Here is what Leancoffee is. Definition copies as it is from their site.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember1407&quot;&gt;
      &lt;em&gt;Lean Coffee is a structured, but agenda-less meeting. Participants gather, build an agenda, and begin talking. Conversations are directed and productive because the agenda for the meeting was democratically generated.&lt;/em&gt;
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember1408&quot;&gt;
      So I now assumed this Unconference was probably the same, with a new name. But again, I was wrong.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember1409&quot;&gt;
      Here is what happens. If you want to speak on something, you write it on a small card, stick it on the board, and boom, you are now a speaker. No approval committee. No forms. No &quot;we will get back to you.&quot; If people like your topic, they walk in. If they don&#39;t, you get a very empty room and a good lesson in humility.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember1410&quot;&gt;
      Only one rule was strict. No pitching your company. Sponsors already pay for that privilege, so the rest of us just talk shop, not sales. Once that rule was set, every conversation in the building felt honest. Nobody was secretly selling you a subscription while pretending to chat.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember1411&quot;&gt;
      Wow! It sounded good and scary at the same time. Good, because&lt;span class=&quot;white-space-pre&quot;&gt; &lt;/span&gt;
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember1412&quot;&gt;
            &lt;/p&gt;&lt;ul&gt;&lt;li&gt;This was different. A different learning experience is always good.&lt;/li&gt;&lt;li&gt;No marketing pitches. As an organizer, I know how bad this can get.&lt;/li&gt;&lt;li&gt;I could choose who and what I want to listen to.&lt;/li&gt;&lt;li&gt;So many good topics being displayed and so much to learn.&lt;/li&gt;&lt;/ul&gt;

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

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember1413&quot;&gt;
      Scary because:
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember1414&quot;&gt;
            &lt;/p&gt;&lt;ul&gt;&lt;li&gt;Embarrassment of not having any audience if you end up becoming a speaker.&lt;/li&gt;&lt;li&gt;Fear of missing out on good speakers if multiple good events go in parallel.&lt;/li&gt;&lt;/ul&gt;

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

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember1415&quot;&gt;
      My colleague&lt;span class=&quot;white-space-pre&quot;&gt; &lt;/span&gt;&lt;a class=&quot;ember-view&quot; href=&quot;https://www.linkedin.com/in/mr-rohandeshpande/&quot; id=&quot;ember1416&quot; tabindex=&quot;0&quot;&gt;Rohan Deshpande&lt;/a&gt;&lt;span class=&quot;white-space-pre&quot;&gt; &lt;/span&gt;and I went there just to attend, representing&lt;span class=&quot;white-space-pre&quot;&gt; &lt;/span&gt;&lt;a class=&quot;oeKsuVZibZVkrJDbiVLhrdCYZvAakDtemxMao &quot; data-test-app-aware-link=&quot;&quot; href=&quot;http://Convert.com&quot; tabindex=&quot;0&quot; target=&quot;_self&quot;&gt;Convert.com&lt;/a&gt;, nothing more. No plan to speak, no slides, nothing prepared. But after the opening session, we looked at the board, looked at each other, and thought, why not? We put up a session on how AI has been sneaking into troubleshooting and internal workflows at CRO and A/B testing companies. Basically the stuff we have been quietly doing for months.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember1417&quot;&gt;
      We kept it in a very informal discussion format. In fact, I sat down with the attendees just facing them. More like a group chat than a lecture. About 15 to 20 people joined. And the questions came fast. Do you actually trust AI&#39;s calls or are you just being brave? Where is this going for testing platforms? Personalization, traffic tracking, integrations with tools people already use daily. People were genuinely curious, not just polite.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember1418&quot;&gt;
      Best part of the whole day, honestly. We did not plan to speak, did not prepare a single slide, and still walked away with speaker mementos. Somehow that felt more earned than if we had rehearsed it for a week.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember1419&quot;&gt;
      This time the turnout was around 120 plus people. I think they expected more, but Delhi was also hosting the BRICS summit that same day, so a lot of people probably got stuck in traffic or security barricades instead of analytics discussions. Still, seven breakout rooms ran side by side the whole day, and people moved between rooms freely, following their curiosity, not any fixed schedule.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember1420&quot;&gt;
      I also sat in on a few sessions myself. One on attribution problems in ads and CRO. One on moving from GA4 to Amplitude. One on data governance and AI. And one with a title that stuck with me, &quot;How Data Lie.&quot; Every session was run by someone actually doing the work, not someone presenting a fancy case study made for likes.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember1421&quot;&gt;
      But if I am honest, no single session was the best part. The people were. I met folks from Amplitude, founders running their own analytics platforms, and CRO experts who have worked with some really big consumer brands. Normally this kind of networking takes weeks of cold emails and LinkedIn requests that nobody replies to. Here it happened in five minutes near the coffee counter.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember1422&quot;&gt;
      This was also the 200th MeasureCamp Delhi event, which is no small number. A big thank you to the organizers and volunteers who pulled this off. Running an unconference sounds easy on paper, &quot;just let people talk,&quot; but making that chaos actually work smoothly takes real effort. They did a solid job. Thank you so much for all the work.&lt;span class=&quot;white-space-pre&quot;&gt; &lt;/span&gt;&lt;a class=&quot;ember-view&quot; href=&quot;https://www.linkedin.com/in/tg7/&quot; id=&quot;ember1423&quot; tabindex=&quot;0&quot;&gt;Tanmay Garg&lt;/a&gt;&lt;span class=&quot;white-space-pre&quot;&gt; &lt;/span&gt;&lt;a class=&quot;ember-view&quot; href=&quot;https://www.linkedin.com/in/priya-dhiman/&quot; id=&quot;ember1424&quot; tabindex=&quot;0&quot;&gt;Priya Dhiman&lt;/a&gt;&lt;span class=&quot;white-space-pre&quot;&gt; &lt;/span&gt;&lt;a class=&quot;ember-view&quot; href=&quot;https://www.linkedin.com/in/anujmv/&quot; id=&quot;ember1425&quot; tabindex=&quot;0&quot;&gt;Anuj B.&lt;/a&gt;&lt;span class=&quot;white-space-pre&quot;&gt; &lt;/span&gt;&lt;a class=&quot;ember-view&quot; href=&quot;https://www.linkedin.com/in/abhishek-deswal/&quot; id=&quot;ember1426&quot; tabindex=&quot;0&quot;&gt;Abhishek Deswal&lt;/a&gt;&lt;span class=&quot;white-space-pre&quot;&gt; &lt;/span&gt;Sorry if I missed anyone here.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember1427&quot;&gt;
      If you work anywhere near analytics, data, or experimentation, and you have never been to a MeasureCamp, go once. Go with zero expectations. That is honestly the whole point.
    &lt;/p&gt;

  







              
    &lt;div class=&quot;reader-image-block reader-image-block--full-width&quot;&gt;
      &lt;figure class=&quot;reader-image-block__figure&quot;&gt;
          
    &lt;div class=&quot;ivm-image-view-model    reader-image-block__img-container&quot;&gt;
        
    &lt;div class=&quot;ivm-view-attr__img-wrapper
        
        &quot;&gt;

          &lt;img alt=&quot;Article content&quot; class=&quot;ivm-view-attr__img--centered  reader-image-block__img evi-image lazy-image ember-view&quot; height=&quot;816&quot; id=&quot;ember1428&quot; src=&quot;https://media.licdn.com/dms/image/v2/D4E12AQFhPxHKS6zZYA/article-inline_image-shrink_1500_2232/B4EaCuPC44IgAU-/0/1789629575263?e=1791417600&amp;amp;v=beta&amp;amp;t=AXUGfj3VWIRK0a5W58sJtEwHfKX_L_9pL68mVNs1cVg&quot; width=&quot;614&quot; /&gt;
    &lt;/div&gt;
  
          &lt;/div&gt;
  

          &lt;figcaption class=&quot;reader-image-block__figure-image-caption display-block full-width text-body-small-open t-sans text-align-center t-black--light&quot;&gt;
            
          &lt;/figcaption&gt;
      &lt;/figure&gt;
    &lt;/div&gt;
  





            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember1429&quot;&gt;&lt;br /&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://roshannagekar.blogspot.com/feeds/5740445840705326455/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2838270249296465765/5740445840705326455?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2838270249296465765/posts/default/5740445840705326455'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2838270249296465765/posts/default/5740445840705326455'/><link rel='alternate' type='text/html' href='http://roshannagekar.blogspot.com/2026/09/measurecamp-delhi-where-i-became.html' title=' MeasureCamp Delhi: Where I Became a Speaker Without Meaning To '/><author><name>Roshan Nagekar</name><uri>http://www.blogger.com/profile/08009772289480467450</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2838270249296465765.post-7963833651634005188</id><published>2026-09-21T00:16:00.828-07:00</published><updated>2026-09-21T00:16:00.828-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="administration"/><category scheme="http://www.blogger.com/atom/ns#" term="AWS"/><category scheme="http://www.blogger.com/atom/ns#" term="Devops"/><category scheme="http://www.blogger.com/atom/ns#" term="Documentation"/><title type='text'>The CV Habit That Accidentally Saved My Job</title><content type='html'>&lt;p style=&quot;text-align: center;&quot;&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5KZ5dwH74XiqkPUZsOa_cKoEoJv151ApRQiqjKIMmDZCbx-r9ettWiojhVsy6_fBP62y0mPFnSuJYyqDjxD3KbMhQOJ9zulnYvxffC5MRsyOz-cQ9v1zPG79JlphubLt_DbDCGc-vqsp8tQDFGu8RCVkrzY1IP-h3b6XvYdA_mppKuQS_WAE27Vn-VqU/s1536/gen1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1024&quot; data-original-width=&quot;1536&quot; height=&quot;286&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5KZ5dwH74XiqkPUZsOa_cKoEoJv151ApRQiqjKIMmDZCbx-r9ettWiojhVsy6_fBP62y0mPFnSuJYyqDjxD3KbMhQOJ9zulnYvxffC5MRsyOz-cQ9v1zPG79JlphubLt_DbDCGc-vqsp8tQDFGu8RCVkrzY1IP-h3b6XvYdA_mppKuQS_WAE27Vn-VqU/w429-h286/gen1.png&quot; width=&quot;429&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&amp;nbsp;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Every engineer knows this problem. You switch jobs after a year and a half, sit down to update your CV, and go completely blank. What did I even do all this time? You worked hard, you know you did, but the specifics have evaporated.&lt;/p&gt;
&lt;p dir=&quot;ltr&quot;&gt;That&#39;s exactly what happened to me after my first job switch. I worked in a small company, so it wasn&#39;t like I had ten different clients with ten different stories to tell. Just one job, multiple responsibilities, and somehow none of it stuck in memory when I needed it most.&lt;/p&gt;
&lt;p dir=&quot;ltr&quot;&gt;So I built a habit. Nothing fancy. Just an Excel sheet. Date, what I worked on that day, two or three lines, status: in progress or done. That&#39;s it. No fancy tool, no elaborate system. Just discipline.&lt;/p&gt;
&lt;p dir=&quot;ltr&quot;&gt;It worked exactly as intended. Next time I job-hopped, I knew precisely what I&#39;d built, what I&#39;d learned, what to put on the CV. Simple win.&lt;/p&gt;
&lt;p dir=&quot;ltr&quot;&gt;Then one day, the habit paid off in a way I never expected.&lt;/p&gt;
&lt;p dir=&quot;ltr&quot;&gt;I was the only other DevOps engineer besides my boss, who lived in a different time zone. Over a phone call, he asked me to delete a list of S3 buckets, unused, just sitting there costing money. I did it. And because I&#39;d made note-taking a daily habit by then, I logged it too: deleted these buckets, told they were unimportant.&lt;/p&gt;
&lt;p dir=&quot;ltr&quot;&gt;A few weeks later, the engineering team noticed a monthly report had stopped generating. Nobody knew why. My boss dug in during his hours and found that an important S3 bucket was gone. No CloudTrail back then, no audit log, no way to trace who did what. And it wasn&#39;t just the two of us with AWS access, several people in the company had it.&lt;/p&gt;
&lt;p dir=&quot;ltr&quot;&gt;When I came online, he asked me to investigate. I went straight to my Excel sheet. There it was, dated weeks earlier: deleted those buckets, was told to.&lt;/p&gt;
&lt;p dir=&quot;ltr&quot;&gt;That log ended the mystery in minutes. We knew exactly what happened, when, and why. It was human error, not a hack, not malice, just a bucket that should never have been on that delete list. My boss also gave me an important lesson that day: being told to do something doesn&#39;t mean you skip verifying it yourself. As a DevOps engineer, that judgment call is on you too.&lt;/p&gt;
&lt;p dir=&quot;ltr&quot;&gt;But the real hero of that day was a habit I&#39;d started for a completely unrelated reason: keeping my CV honest.&lt;/p&gt;
&lt;p dir=&quot;ltr&quot;&gt;I kept that habit for years after. What began as a fix for a bad memory turned into something closer to a safety net. You don&#39;t always know which note you write today will matter six months from now. Sometimes it&#39;s just for your CV. Sometimes it&#39;s the only thing standing between &quot;human error&quot; and &quot;we have no idea what happened.&quot;&lt;/p&gt;
&lt;p dir=&quot;ltr&quot;&gt;So here&#39;s my question to you: do you keep any kind of daily work log? Not for performance reviews, not because someone told you to, just for yourself. And if you don&#39;t, after reading this, would you start?&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://roshannagekar.blogspot.com/feeds/7963833651634005188/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2838270249296465765/7963833651634005188?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2838270249296465765/posts/default/7963833651634005188'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2838270249296465765/posts/default/7963833651634005188'/><link rel='alternate' type='text/html' href='http://roshannagekar.blogspot.com/2026/09/the-cv-habit-that-accidentally-saved-my.html' title='The CV Habit That Accidentally Saved My Job'/><author><name>Roshan Nagekar</name><uri>http://www.blogger.com/profile/08009772289480467450</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5KZ5dwH74XiqkPUZsOa_cKoEoJv151ApRQiqjKIMmDZCbx-r9ettWiojhVsy6_fBP62y0mPFnSuJYyqDjxD3KbMhQOJ9zulnYvxffC5MRsyOz-cQ9v1zPG79JlphubLt_DbDCGc-vqsp8tQDFGu8RCVkrzY1IP-h3b6XvYdA_mppKuQS_WAE27Vn-VqU/s72-w429-h286-c/gen1.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2838270249296465765.post-3822756710075587106</id><published>2026-09-20T23:40:29.090-07:00</published><updated>2026-09-20T23:40:29.090-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="administration"/><category scheme="http://www.blogger.com/atom/ns#" term="automation"/><category scheme="http://www.blogger.com/atom/ns#" term="AWS"/><category scheme="http://www.blogger.com/atom/ns#" term="Deployment"/><category scheme="http://www.blogger.com/atom/ns#" term="Devops"/><category scheme="http://www.blogger.com/atom/ns#" term="DevSecOps"/><category scheme="http://www.blogger.com/atom/ns#" term="Documentation"/><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><category scheme="http://www.blogger.com/atom/ns#" term="VirtualBox"/><title type='text'>The Day I Missed My First IPL Match (And Learned the Most Important Lesson of My Career)</title><content type='html'>&lt;p&gt;I still remember the date almost. Not exactly, because it&#39;s been years. But I remember it was a Friday. I remember it was IPL season. And I remember I had a ticket in my pocket for my first ever live cricket match.&lt;/p&gt;
&lt;p dir=&quot;ltr&quot;&gt;I was an intern back then. QA team. I&#39;d been handed a project because I &quot;liked Linux.&quot; That&#39;s it. That was my entire qualification. I&#39;d played around with LAMP stacks, set up WordPress a few times, run enough commands to feel dangerous. So when they needed someone to set up a QA environment for a PHP application, my name came up.&lt;/p&gt;
&lt;p dir=&quot;ltr&quot;&gt;Simple task, they said. Get the environment running. Make it accessible. Client&#39;s in Australia, they need to see it live if things go wrong.&lt;/p&gt;
&lt;p dir=&quot;ltr&quot;&gt;Nothing about that sentence was simple.&lt;/p&gt;
&lt;h4 dir=&quot;ltr&quot;&gt;The Setup From Hell&lt;/h4&gt;
&lt;p dir=&quot;ltr&quot;&gt;I started with VirtualBox, because that&#39;s what I knew. My boss shut that down immediately. Had to be AWS. Public URL. Client access.&lt;/p&gt;
&lt;p dir=&quot;ltr&quot;&gt;New OS setup. New cloud platform. New tool called Composer that I&#39;d never touched. I did what every self-respecting engineer with no documentation does: I Googled my way through it.&lt;/p&gt;
&lt;p dir=&quot;ltr&quot;&gt;Every install hit a wall. Every wall meant a new Jira comment. Developers would reply with fixes: use this version, open this port, set the database up like this. I&#39;d write it all down on a random notepad. Spin up a new instance. Try again. Snapshot everything because god forbid I lose progress. Scrap the instance. Repeat.&lt;/p&gt;
&lt;p dir=&quot;ltr&quot;&gt;Three weeks of this. Three weeks of two steps forward, one step into a wall.&lt;/p&gt;
&lt;h4 dir=&quot;ltr&quot;&gt;The Comment That Ruined My Friday&lt;/h4&gt;
&lt;p dir=&quot;ltr&quot;&gt;Mid-day, that Friday, I saw it. A comment on the ticket from the client. Something like &quot;not happy with the delay.&quot;&lt;/p&gt;
&lt;p dir=&quot;ltr&quot;&gt;As an intern, that hits different. You don&#39;t have the thick skin yet. I read it and felt genuinely sick.&lt;/p&gt;
&lt;p dir=&quot;ltr&quot;&gt;I made a decision right there: I&#39;ll fix this today. Match or no match.&lt;/p&gt;
&lt;p dir=&quot;ltr&quot;&gt;6 PM came and went. 6:30 too. Office was emptying out. I was still at my desk, notepad open, trying combination number forty of the same setup.&lt;/p&gt;
&lt;p dir=&quot;ltr&quot;&gt;That&#39;s when my boss&#39;s boss walked past. Not my direct manager, the guy above him. Saw an intern still sitting there at that hour and got curious enough to ask what was going on.&lt;/p&gt;
&lt;p dir=&quot;ltr&quot;&gt;I showed him the comment. Told him I couldn&#39;t crack the setup.&lt;/p&gt;
&lt;h4 dir=&quot;ltr&quot;&gt;The Question That Changed Everything&lt;/h4&gt;
&lt;p dir=&quot;ltr&quot;&gt;He sat down next to me. We started fresh, new instance, working through it together. At some point he noticed my notepad, full of scribbled notes from old chats and Jira threads.&lt;/p&gt;
&lt;p dir=&quot;ltr&quot;&gt;&quot;What&#39;s this? Who gave you this?&quot;&lt;/p&gt;
&lt;p dir=&quot;ltr&quot;&gt;I explained. Historical Jira comments, cobbled together over three weeks.&lt;/p&gt;
&lt;p dir=&quot;ltr&quot;&gt;Then he asked the question I should have asked myself on day one:&lt;/p&gt;
&lt;p dir=&quot;ltr&quot;&gt;&quot;Do you not have documentation for this setup? Surely someone who built this environment before has notes. Did you ever ask?&quot;&lt;/p&gt;
&lt;p dir=&quot;ltr&quot;&gt;I hadn&#39;t. It genuinely hadn&#39;t occurred to me that documentation was something you could ask for. I thought my job was to figure it out, silently, on my own, because asking felt like admitting I wasn&#39;t good enough.&lt;/p&gt;
&lt;p dir=&quot;ltr&quot;&gt;He looked at me and said something I&#39;ve never forgotten: learn to say no, or learn to ask for help, when you need it. You&#39;re an intern. You&#39;re not the highest paid person in the room. Nobody expects you to know everything. But dragging on for three weeks because you were too afraid to ask a question? That helps nobody.&lt;/p&gt;
&lt;h4 dir=&quot;ltr&quot;&gt;The Email&lt;/h4&gt;
&lt;p dir=&quot;ltr&quot;&gt;We tried the setup a couple more times together. Then we did something I hadn&#39;t thought to do in three weeks: we wrote an honest email to the client. Explained the real story. No documentation had ever been shared. No process existed. That&#39;s why this dragged on, not because anyone was slacking.&lt;/p&gt;
&lt;p dir=&quot;ltr&quot;&gt;We left the office around 10 PM. I walked out past people who&#39;d already watched their match and were heading home. My ticket was still sitting unused in my bag.&lt;/p&gt;
&lt;p dir=&quot;ltr&quot;&gt;I won&#39;t lie, I was gutted about the match. But I was also carrying something heavier than disappointment. I&#39;d learned something that had nothing to do with Linux or AWS or Composer.&lt;/p&gt;
&lt;h4 dir=&quot;ltr&quot;&gt;The Payoff&lt;/h4&gt;
&lt;p dir=&quot;ltr&quot;&gt;Next morning, a full documentation package landed in my inbox from the ops team on the other side. Turned out it existed all along. Nobody had thought to hand it to an intern, and I&#39;d never thought to ask.&lt;/p&gt;
&lt;p dir=&quot;ltr&quot;&gt;With that doc in hand, I set up the entire environment in one shot. Automated it with a shell script right after, just so nobody after me would have to go through what I did.&lt;/p&gt;
&lt;h4 dir=&quot;ltr&quot;&gt;Why This Still Matters&lt;/h4&gt;
&lt;p dir=&quot;ltr&quot;&gt;That lesson didn&#39;t stay in that internship. Years later, at a different company, a server went down and the CEO&#39;s email landed straight in my inbox asking what DevOps was doing about it. I told him straight: DevOps isn&#39;t magic. Some things need process, not miracles. That confidence to say it plainly came from that Friday night.&lt;/p&gt;
&lt;p dir=&quot;ltr&quot;&gt;Since then, I&#39;ve made it a habit. If I know the answer, I say yes upfront. If I don&#39;t, I say so, without the fear of looking incapable. That fear is expensive. It cost me three weeks and a cricket match. It doesn&#39;t need to cost you anything if you learn the lesson early.&lt;/p&gt;
&lt;p dir=&quot;ltr&quot;&gt;So here&#39;s the takeaway, for every intern, every junior engineer, every person new to a team: ask for the documentation. Ask for help. Say no when you need to. Nobody&#39;s going to think less of you for it. If anything, they&#39;ll respect you more for not wasting three weeks pretending you have it figured out.&lt;/p&gt;
&lt;p dir=&quot;ltr&quot;&gt;I missed a cricket match to learn that. You don&#39;t have to.&lt;/p&gt;
&lt;hr /&gt;</content><link rel='replies' type='application/atom+xml' href='http://roshannagekar.blogspot.com/feeds/3822756710075587106/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2838270249296465765/3822756710075587106?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2838270249296465765/posts/default/3822756710075587106'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2838270249296465765/posts/default/3822756710075587106'/><link rel='alternate' type='text/html' href='http://roshannagekar.blogspot.com/2026/09/the-day-i-missed-my-first-ipl-match-and.html' title='The Day I Missed My First IPL Match (And Learned the Most Important Lesson of My Career)'/><author><name>Roshan Nagekar</name><uri>http://www.blogger.com/profile/08009772289480467450</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2838270249296465765.post-3455079929253144105</id><published>2026-09-17T22:32:24.500-07:00</published><updated>2026-09-17T22:32:24.501-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="automation"/><category scheme="http://www.blogger.com/atom/ns#" term="Devops"/><category scheme="http://www.blogger.com/atom/ns#" term="Monitoring"/><category scheme="http://www.blogger.com/atom/ns#" term="Nagios"/><title type='text'>Why Nagios Still Has My Heart (Even Though I Use Prometheus Now)</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Let me take you back to 2012. I was young, curious, and had just been handed the keys to a Nagios server. One server, a handful of clients. Nothing fancy. Just config files, cron-like discipline, and a dashboard I had to check every single morning like it was my first cup of chai.&lt;/p&gt;
&lt;p&gt;That daily ritual taught me something no course ever could. Logging in, scanning the trends, noticing when something looked &quot;off&quot; before it became a full-blown crisis. Disk filling up because some user decided the server was their personal Dropbox? Caught it. CPU spiking for reasons nobody could explain? Went hunting for the process before it became a 2 AM phone call. This wasn&#39;t fancy AIOps. This was just paying attention, the old-fashioned way.&lt;/p&gt;
&lt;p&gt;Every new server that got provisioned, I added to Nagios myself. Every new process, I wrote a check for it myself. There was no abstraction between me and the machine. If something broke, I knew exactly why, because I built the thing that was watching it.&lt;/p&gt;
&lt;p&gt;Then I moved organizations, and Nagios grew up with me. Suddenly it wasn&#39;t one server and a few clients, it was a clustered setup monitoring 5,000 servers. A team of 10 DevOps folks, SaaS tools watching Nagios itself (yes, we had to monitor the monitor), and Icinga entering the picture as the better-looking cousin of Nagios. That&#39;s when things got serious.&lt;/p&gt;
&lt;p&gt;This is also where I learned Nagios could do more than just &quot;is the server alive.&quot; We started writing bash scripts and plugging them in to parse logs, actual business logs, to generate reports for sales and marketing. Number of deals closed, tracked through log monitoring. When those reports failed, guess who had to debug the script at odd hours. Character building, as they say.&lt;/p&gt;
&lt;p&gt;I last touched Nagios seriously about two years ago, mostly for bare metal setups. Since then, I&#39;ve worked with Prometheus, New Relic, Zabbix, the works. And they&#39;re good. Genuinely better dashboards, better scaling, better everything on paper.&lt;/p&gt;
&lt;p&gt;But here&#39;s the thing nobody tells you about Nagios: it keeps you rooted to the system. You&#39;re not looking at pretty graphs from a distance. You&#39;re inside the OS, understanding processes, permissions, disk layouts, the works. When I automated Nagios setup with Ansible and later with Fabric in Python, things broke constantly. And every time they did, it was my old shell scripting instincts and my bare-metal Nagios days that bailed me out. That knowledge doesn&#39;t come from reading a Prometheus exporter&#39;s YAML file. It comes from getting your hands dirty.&lt;/p&gt;
&lt;p&gt;I recently came across a blog from another engineer reminiscing about Nagios, and it hit me that I&#39;m not alone. There&#39;s a whole tribe of &quot;Nagios oldies&quot; out there who get it. We know the newer tools are shinier. We use them daily. But there&#39;s something about Nagios that built our fundamentals in a way nothing else quite has.&lt;/p&gt;
&lt;p&gt;Better monitoring tools may exist. But Nagios will always be the one that taught me how to actually understand a server, not just watch it.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://roshannagekar.blogspot.com/feeds/3455079929253144105/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2838270249296465765/3455079929253144105?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2838270249296465765/posts/default/3455079929253144105'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2838270249296465765/posts/default/3455079929253144105'/><link rel='alternate' type='text/html' href='http://roshannagekar.blogspot.com/2026/09/why-nagios-still-has-my-heart-even.html' title='Why Nagios Still Has My Heart (Even Though I Use Prometheus Now)'/><author><name>Roshan Nagekar</name><uri>http://www.blogger.com/profile/08009772289480467450</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2838270249296465765.post-6104475897876240866</id><published>2026-08-24T23:51:00.000-07:00</published><updated>2026-09-20T23:52:35.244-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="aiagents"/><category scheme="http://www.blogger.com/atom/ns#" term="artificalintelligence"/><category scheme="http://www.blogger.com/atom/ns#" term="Devops"/><category scheme="http://www.blogger.com/atom/ns#" term="Documentation"/><title type='text'> Disney Did It With Cartoons. My AI Did It With My Kid&#39;s Bedtime Story. </title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;img alt=&quot;AI generated image&quot; class=&quot;reader-cover-image__img evi-image lazy-image ember-view&quot; height=&quot;365&quot; id=&quot;ember1161&quot; src=&quot;https://media.licdn.com/dms/image/v2/D4D12AQFsiPhnNL8Zqw/article-cover_image-shrink_720_1280/B4DaA3JVSZGkAQ-/0/1787631594671?e=1791417600&amp;amp;v=beta&amp;amp;t=tZKbZ6PU8KGfioYNuJQSZC4LrlDEKYoScQ6u6quHo40&quot; width=&quot;649&quot; /&gt;&lt;/p&gt;&lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember1182&quot;&gt;
      I saw a video a while back about old Disney animation and how they fooled viewers in the last couple of years. Same character movements, reused frame by frame, across completely different characters and different movies. Different faces, different worlds, same underlying motion. It worked for years. Nobody noticed, or nobody cared, because the backgrounds and story kept changing enough to sell it. Here is the&lt;span class=&quot;white-space-pre&quot;&gt; &lt;/span&gt;&lt;a class=&quot;oeKsuVZibZVkrJDbiVLhrdCYZvAakDtemxMao &quot; data-test-app-aware-link=&quot;&quot; href=&quot;https://www.youtube.com/watch?v=FQnXhVJhqjg&amp;amp;t=22s&quot; tabindex=&quot;0&quot; target=&quot;_self&quot;&gt;video&lt;/a&gt;&lt;span class=&quot;white-space-pre&quot;&gt; &lt;/span&gt;I am talking about. This was deliberate for many reasons as you read more about it, you will know. Some reasons, I understood were, nostalgia, saving time or maybe laziness too.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember1183&quot;&gt;
      I didn&#39;t think much of it until I saw the same thing happening with AI.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember1184&quot;&gt;
      I was working on generating some images recently. I kept feeding new context, new prompts, expecting newer results. The first couple of images were just fine. Then I started noticing a pattern of same poses, same layouts, same compositions repeating underneath a different backdrop. Not identical, but close enough that it felt like the AI found something that worked and decided to stop being creative.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember1185&quot;&gt;
      I told myself, okay, maybe that&#39;s fine for images. Then I tested it on something that mattered more.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember1186&quot;&gt;
      I use AI sometimes to teach certain concepts to my kid. I asked AI to write a short story. It was about living and nonliving things. It came out lovely. She enjoyed it, I enjoyed it. All good, right?
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember1187&quot;&gt;
      The next day, I asked for a story about vertebrates and invertebrates. Same structure. Same pattern with just a bit of&lt;span class=&quot;white-space-pre&quot;&gt; &lt;/span&gt;&lt;em&gt;find and replace&lt;/em&gt;&lt;span class=&quot;white-space-pre&quot;&gt; &lt;/span&gt;may be 😀. Practically the same story with a few words swapped out. If I had outsourced that to a person and gotten this back, I wouldn&#39;t have accepted it. And here&#39;s the thing, my kid is five. Even she would note this eventually. Kids get bored of the same story wearing a different costume faster than we think.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember1188&quot;&gt;
      Now this is not about things impacting my personal work. The part that actually worries me is&lt;span class=&quot;white-space-pre&quot;&gt; &lt;/span&gt;&lt;strong&gt;documentation&lt;/strong&gt;.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember1189&quot;&gt;
      I use AI heavily for documentation and writing. And I&#39;ve caught the pattern there too. Same structure repeating article after article, same phrasing patterns, same rhythm, regardless of what the topic actually needs. It&#39;s&amp;nbsp; probably efficient. But it&#39;s also lazy. And I worry people will lean onto this instead of catching it, hand AI a rough context, ask for a full end to end document, and publish whatever comes back without questioning why every article somehow reads the same.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember1190&quot;&gt;
      Here is what I found being the technical reason to be. This comes down to how models pick outputs. They default to the highest-probability path unless you push them elsewhere, so once a structure works well in one response, it becomes the easy option for the next, especially in the same session where earlier context keeps shaping what comes after. Lower temperature and conservative sampling, which most tools default to for reliability, make this worse on purpose. It&#39;s not laziness the way we mean it. it&#39;s optimization doing exactly its job: minimize risk, maximize consistency.&lt;span class=&quot;white-space-pre&quot;&gt; &lt;/span&gt;&lt;strong&gt;Creativity was never the objective&lt;/strong&gt;. Which is exactly why the paragraph-by-paragraph, keep-pushing-back approach works, it forces the model off the safe path it would otherwise default to.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember1191&quot;&gt;
      When I see this happening, here&#39;s what works for me instead. Don&#39;t ask for the whole thing to be written or documented at once. Go paragraph by paragraph. Feed fresh context deliberately every time. Question, Argue and provide newer/better context every time. And at any time something feels repeated, say so. Tell it directly. That nudge matters more than people think, it&#39;s not just fixing one document, it&#39;s teaching the model what you don&#39;t want. Some would comment and ask to create a new session for improvement here. I agree with it, but how I and sometimes even you may work, sometimes we need the session memory to exist for various reasons, so we use the same sessions for a long time.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember1192&quot;&gt;
      Disney may have eventually moved past reusing the same animation cycles. Or even if they re-used some, they had some valid reason like ‘nostalgia’. They could have even stopped doing this because audiences quietly noticed this and started expecting more, and also maybe that the reused motion stopped being good enough. I think we&#39;re also at the exact same point with AI generated content, whether that&#39;s documentation, images, or bedtime stories. It&#39;ll get away with repeating itself for a while. Until the audience notices. And audiences always notice eventually, even five year old ones will.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember1193&quot;&gt;
      So if you&#39;re using AI for content, don&#39;t just accept the first draft&#39;s texture as final. Push it. Ask it to genuinely think differently, not just swap a few nouns. Creativity isn&#39;t AI&#39;s job to protect. It&#39;s ours.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember1194&quot;&gt;
      #AIAgents #Documentation #ContentCreation #DevOps #CreativeWork
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember1195&quot;&gt;
      ✏️ drafted with ai assist, because practicing what I preach.
    &lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://roshannagekar.blogspot.com/feeds/6104475897876240866/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2838270249296465765/6104475897876240866?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2838270249296465765/posts/default/6104475897876240866'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2838270249296465765/posts/default/6104475897876240866'/><link rel='alternate' type='text/html' href='http://roshannagekar.blogspot.com/2026/08/disney-did-it-with-cartoons-my-ai-did.html' title=' Disney Did It With Cartoons. My AI Did It With My Kid&#39;s Bedtime Story. '/><author><name>Roshan Nagekar</name><uri>http://www.blogger.com/profile/08009772289480467450</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2838270249296465765.post-2484875931097986343</id><published>2026-08-05T23:47:00.000-07:00</published><updated>2026-09-20T23:48:51.097-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="administration"/><category scheme="http://www.blogger.com/atom/ns#" term="aiagents"/><category scheme="http://www.blogger.com/atom/ns#" term="artificalintelligence"/><category scheme="http://www.blogger.com/atom/ns#" term="Devops"/><category scheme="http://www.blogger.com/atom/ns#" term="Documentation"/><title type='text'> Documentation Drifts. Here&#39;s How to Catch It. </title><content type='html'>&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;img alt=&quot; AI generated image&quot; class=&quot;reader-cover-image__img evi-image lazy-image ember-view&quot; height=&quot;315&quot; id=&quot;ember939&quot; src=&quot;https://media.licdn.com/dms/image/v2/D4D12AQHeV-rLfe973A/article-cover_image-shrink_720_1280/B4DZ_V6cnZHEAQ-/0/1786000304165?e=1791417600&amp;amp;v=beta&amp;amp;t=SXnvYnxcECyQkb-UvrjLyATdQytY-hlt4N3jfoezGAg&quot; width=&quot;560&quot; /&gt;&lt;/p&gt;&lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember960&quot;&gt;
      &quot;Documenting the documentation.&quot;
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember961&quot;&gt;
      Yes, I know how that sounds. Documentation about documentation about documentation. Somewhere an intern is crying. Actually that&#39;s the phrase that hit me mid-conversation yesterday.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember962&quot;&gt;
      In DevOps we talk about monitoring the monitoring system. You don&#39;t just set up alerts and walk away. You watch the watcher too, because if your monitoring breaks silently, you find out the hard way. We handle it mostly by using a 3rd party monitoring Saas tool or a completely different monitoring tool that is on a different infra to monitor our monitoring. Many a times, we also setup multiple monitoring tools to monitor each other.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember963&quot;&gt;
      Turns out documentation has the exact same blind spot, that I realized yesterday.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember964&quot;&gt;
      Here&#39;s the problem. Documentation itself isn&#39;t static, but the system around it should be. A proper guideline of how the docs should look consistent across.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember965&quot;&gt;
      Think about what happens with two or three writers on the same knowledge base.&lt;span class=&quot;white-space-pre&quot;&gt; &lt;/span&gt;
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember966&quot;&gt;
            &lt;/p&gt;&lt;ol&gt;&lt;li&gt;One person is deeply technical, every article turns into a dense reference doc.&lt;span class=&quot;white-space-pre&quot;&gt; &lt;/span&gt;&lt;/li&gt;&lt;li&gt;Another writes for humans first, simple language, easy to follow, but a senior engineer might find it too light.&lt;span class=&quot;white-space-pre&quot;&gt; &lt;/span&gt;&lt;/li&gt;&lt;li&gt;A third writes in a fun, engaging tone that people love reading but that doesn&#39;t actually answer the question they came for.&lt;span class=&quot;white-space-pre&quot;&gt; &lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;

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

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember967&quot;&gt;
      None of these people are wrong. But put them in the same wiki with no shared rules, and the documentation stops looking like one system. It may end up looking like three different people arguing.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember968&quot;&gt;
      That&#39;s what documenting the documentation fixes. Not the content. The structure around the content. Heading formats. Whether an index is required. How many bullets before it&#39;s too many. Screenshot rules, including the boring but important one, don&#39;t reveal internal or customer details in a screenshot(Nothing says &#39;security incident&#39; like a screenshot where someone forgot to close the tab with the customer PI sitting right there). Whether emojis are fine or banned. Which kinds of diagrams are expected. Small decisions, but decided once, so nobody has to reinvent them article by article. Is humor ok. How much humor is ok? Procedure to build the context, etc.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember969&quot;&gt;
      Two things break without this:
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember970&quot;&gt;
            &lt;/p&gt;&lt;ol&gt;&lt;li&gt;When someone leaves the team, whoever replaces them has nothing to stand on. No rulebook, no shared style, just vibes and old examples to guess from.&lt;span class=&quot;white-space-pre&quot;&gt; &lt;/span&gt;&lt;/li&gt;&lt;li&gt;Even with the rules written down, you can&#39;t assume people will keep following them. Rules you hand someone on day one quietly erode by month six. Rules handed over on day one have a shelf life shorter than office milk.&lt;/li&gt;&lt;/ol&gt;

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

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember971&quot;&gt;
      So the system needs an audit layer too. Not a one-time handoff. A recurring check.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember972&quot;&gt;
      This is where it gets easier than it used to be. You write your rules once, in something like a&lt;span class=&quot;white-space-pre&quot;&gt; &lt;/span&gt;&lt;a class=&quot;oeKsuVZibZVkrJDbiVLhrdCYZvAakDtemxMao &quot; data-test-app-aware-link=&quot;&quot; href=&quot;http://CLAUDE.md&quot; tabindex=&quot;0&quot; target=&quot;_self&quot;&gt;CLAUDE.md&lt;/a&gt;, plain and specific. Then you let AI do the boring, repetitive part; scan every new article, and periodically scan the old ones too, and flag anything drifting from the standard. Wrong heading structure, missing index, a screenshot that shouldn&#39;t be there, tone that&#39;s drifted too casual or too dense. The AI doesn&#39;t decide what&#39;s true. It checks what&#39;s consistent. Humans still review before anything changes.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember973&quot;&gt;
      Monitoring the monitoring system caught on in DevOps because someone finally said the obvious thing out loud, watch your watchers. Documentation needs its own version of that sentence.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember974&quot;&gt;
      Document the documentation. Then audit it like you mean it.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember975&quot;&gt;
      #Documentation #DevOps #KnowledgeManagement #AIAgents #TeamProcess
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember976&quot;&gt;
      ✏️ drafted with ai assist, because practicing what I preach.
    &lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://roshannagekar.blogspot.com/feeds/2484875931097986343/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2838270249296465765/2484875931097986343?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2838270249296465765/posts/default/2484875931097986343'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2838270249296465765/posts/default/2484875931097986343'/><link rel='alternate' type='text/html' href='http://roshannagekar.blogspot.com/2026/08/documentation-drifts-heres-how-to-catch.html' title=' Documentation Drifts. Here&#39;s How to Catch It. '/><author><name>Roshan Nagekar</name><uri>http://www.blogger.com/profile/08009772289480467450</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2838270249296465765.post-4403980271759345954</id><published>2026-07-27T02:16:00.000-07:00</published><updated>2026-09-21T02:18:26.711-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="abtesting"/><category scheme="http://www.blogger.com/atom/ns#" term="administration"/><category scheme="http://www.blogger.com/atom/ns#" term="analytics"/><category scheme="http://www.blogger.com/atom/ns#" term="career"/><category scheme="http://www.blogger.com/atom/ns#" term="conversionrateoptimization"/><category scheme="http://www.blogger.com/atom/ns#" term="Devops"/><category scheme="http://www.blogger.com/atom/ns#" term="marketing"/><category scheme="http://www.blogger.com/atom/ns#" term="sales"/><title type='text'>CRO: The Career Stream Nobody Told You About</title><content type='html'>&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;img alt=&quot;&quot; class=&quot;sizing-normal&quot; data-attrs=&quot;{&amp;quot;src&amp;quot;:&amp;quot;https://substack-post-media.s3.amazonaws.com/public/images/364ffc08-3e3f-4f76-ba60-1bbeb4351e47_1916x821.png&amp;quot;,&amp;quot;srcNoWatermark&amp;quot;:null,&amp;quot;fullscreen&amp;quot;:null,&amp;quot;imageSize&amp;quot;:null,&amp;quot;height&amp;quot;:624,&amp;quot;width&amp;quot;:1456,&amp;quot;resizeWidth&amp;quot;:null,&amp;quot;bytes&amp;quot;:1327132,&amp;quot;alt&amp;quot;:null,&amp;quot;title&amp;quot;:null,&amp;quot;type&amp;quot;:&amp;quot;image/png&amp;quot;,&amp;quot;href&amp;quot;:null,&amp;quot;belowTheFold&amp;quot;:false,&amp;quot;topImage&amp;quot;:true,&amp;quot;internalRedirect&amp;quot;:&amp;quot;https://vincovestrum924146.substack.com/i/208650451?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F364ffc08-3e3f-4f76-ba60-1bbeb4351e47_1916x821.png&amp;quot;,&amp;quot;isProcessing&amp;quot;:false,&amp;quot;align&amp;quot;:null,&amp;quot;offset&amp;quot;:false}&quot; height=&quot;276&quot; src=&quot;https://substackcdn.com/image/fetch/$s_!Reem!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F364ffc08-3e3f-4f76-ba60-1bbeb4351e47_1916x821.png&quot; width=&quot;644&quot; /&gt;&lt;/p&gt;&lt;p&gt;When I ask any of my student what they want to be? I mostly get one of the five answers: Developer, QA, Project Manager, Business Analyst, and now DevOps too.&lt;/p&gt;&lt;p&gt;Nobody says “CRO”, because nobody knows it exists. A few years ago, this was the state with DevOps too :)&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;h2 class=&quot;header-anchor-post&quot;&gt;What Is CRO?&lt;div class=&quot;pencraft pc-display-flex pc-alignItems-center pc-position-absolute pc-reset header-anchor-parent&quot;&gt;&lt;div class=&quot;pencraft pc-display-contents pc-reset pubTheme-yiXxQA&quot;&gt;&lt;div class=&quot;pencraft pc-reset header-anchor offset-top&quot; id=&quot;§what-is-cro&quot;&gt;&lt;/div&gt;&lt;button aria-label=&quot;Link&quot; class=&quot;pencraft pc-reset pencraft iconButton-mq_Et5 iconButtonBase-dJGHgN buttonBase-GK1x3M buttonStyle-r7yGCK size_sm-G3LciD priority_secondary-S63h9o&quot; data-href=&quot;https://vincovestrum924146.substack.com/i/208650451/what-is-cro&quot; tabindex=&quot;0&quot; type=&quot;button&quot;&gt;&lt;svg class=&quot;lucide lucide-link&quot; fill=&quot;none&quot; height=&quot;18&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; stroke-width=&quot;2&quot; stroke=&quot;currentColor&quot; viewbox=&quot;0 0 24 24&quot; width=&quot;18&quot;&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/h2&gt;&lt;p&gt;Conversion Rate Optimization. The job to figure out why people visit a website and leave without buying, signing up, or clicking the button, and then fixing it. Not by guessing but by testing, perhaps even by some coding.&lt;/p&gt;&lt;p&gt;Here’s what you already know.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Dev builds the product. &lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;QA makes sure it doesn’t break. &lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;BA figures out what the business needs. &lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;CRO figures out why real humans aren’t doing what the business hoped, and runs experiments to fix it. With lots of tools again.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Tech, psychology, and data, all in one job.&lt;/p&gt;&lt;h2 class=&quot;header-anchor-post&quot;&gt;Classic one: “But I’m Not Great at Coding”&lt;div class=&quot;pencraft pc-display-flex pc-alignItems-center pc-position-absolute pc-reset header-anchor-parent&quot;&gt;&lt;div class=&quot;pencraft pc-display-contents pc-reset pubTheme-yiXxQA&quot;&gt;&lt;div class=&quot;pencraft pc-reset header-anchor offset-top&quot; id=&quot;§classic-one-but-im-not-great-at-coding&quot;&gt;&lt;/div&gt;&lt;button aria-label=&quot;Link&quot; class=&quot;pencraft pc-reset pencraft iconButton-mq_Et5 iconButtonBase-dJGHgN buttonBase-GK1x3M buttonStyle-r7yGCK size_sm-G3LciD priority_secondary-S63h9o&quot; data-href=&quot;https://vincovestrum924146.substack.com/i/208650451/classic-one-but-im-not-great-at-coding&quot; tabindex=&quot;0&quot; type=&quot;button&quot;&gt;&lt;svg class=&quot;lucide lucide-link&quot; fill=&quot;none&quot; height=&quot;18&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; stroke-width=&quot;2&quot; stroke=&quot;currentColor&quot; viewbox=&quot;0 0 24 24&quot; width=&quot;18&quot;&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/h2&gt;&lt;p&gt;If you don’t want to code at all. Stop reading here. Some coding will always be needed in all tech. But Relax! You don’t need DSA or LeetCode for this. What actually helps here is:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Basic HTML/CSS, enough to know what “move the button above the fold” means. You learn this mostly in the initial classes, of course I am making some assumptions here.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;A little JavaScript, enough to talk to developers and state some requirement. Better if you could do it yourself.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Comfort with numbers, enough to know 40% improvement means nothing if only 20 people saw it. Some exposure to good tools like Google Analytics.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span&gt;That’s it. CRO rewards curiosity about &lt;/span&gt;&lt;strong&gt;human behaviour&lt;/strong&gt;&lt;span&gt;, not coding depth.&lt;/span&gt;&lt;/p&gt;&lt;h2 class=&quot;header-anchor-post&quot;&gt;A Day in CRO&lt;div class=&quot;pencraft pc-display-flex pc-alignItems-center pc-position-absolute pc-reset header-anchor-parent&quot;&gt;&lt;div class=&quot;pencraft pc-display-contents pc-reset pubTheme-yiXxQA&quot;&gt;&lt;div class=&quot;pencraft pc-reset header-anchor offset-top&quot; id=&quot;§a-day-in-cro&quot;&gt;&lt;/div&gt;&lt;button aria-label=&quot;Link&quot; class=&quot;pencraft pc-reset pencraft iconButton-mq_Et5 iconButtonBase-dJGHgN buttonBase-GK1x3M buttonStyle-r7yGCK size_sm-G3LciD priority_secondary-S63h9o&quot; data-href=&quot;https://vincovestrum924146.substack.com/i/208650451/a-day-in-cro&quot; tabindex=&quot;0&quot; type=&quot;button&quot;&gt;&lt;svg class=&quot;lucide lucide-link&quot; fill=&quot;none&quot; height=&quot;18&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; stroke-width=&quot;2&quot; stroke=&quot;currentColor&quot; viewbox=&quot;0 0 24 24&quot; width=&quot;18&quot;&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/h2&gt;&lt;p&gt;Look at heatmaps. Watch session recordings of real users struggling. Check analytics reports. Understand human behavior. Form a hypothesis. Run an A/B test. Wait patiently (no declaring winners on Day 2). Read the results honestly. Tell a non-technical team what it all means.&lt;/p&gt;&lt;p&gt;Partly a detective work, partly experiment design and most part is communication.&lt;/p&gt;&lt;h2 class=&quot;header-anchor-post&quot;&gt;Why Should you do This&lt;div class=&quot;pencraft pc-display-flex pc-alignItems-center pc-position-absolute pc-reset header-anchor-parent&quot;&gt;&lt;div class=&quot;pencraft pc-display-contents pc-reset pubTheme-yiXxQA&quot;&gt;&lt;div class=&quot;pencraft pc-reset header-anchor offset-top&quot; id=&quot;§why-should-you-do-this&quot;&gt;&lt;/div&gt;&lt;button aria-label=&quot;Link&quot; class=&quot;pencraft pc-reset pencraft iconButton-mq_Et5 iconButtonBase-dJGHgN buttonBase-GK1x3M buttonStyle-r7yGCK size_sm-G3LciD priority_secondary-S63h9o&quot; data-href=&quot;https://vincovestrum924146.substack.com/i/208650451/why-should-you-do-this&quot; tabindex=&quot;0&quot; type=&quot;button&quot;&gt;&lt;svg class=&quot;lucide lucide-link&quot; fill=&quot;none&quot; height=&quot;18&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; stroke-width=&quot;2&quot; stroke=&quot;currentColor&quot; viewbox=&quot;0 0 24 24&quot; width=&quot;18&quot;&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/h2&gt;&lt;p&gt;All freshers applying for a dev role are competing with a thousand others who did the same DSA course and built the same to-do app. CRO is comparatively empty. Businesses don’t jsut need hi-tech people, they also need a mix of both who get the tech and the human side of a website, and almost nobody of your age is positioning for it yet.&lt;/p&gt;&lt;p&gt;Bonus: skills from Dev, QA, BA, and DevOps all transfer. So, you are not just starting from zero. You are switching lanes.&lt;/p&gt;&lt;h2 class=&quot;header-anchor-post&quot;&gt;CRO in India, Right Now&lt;div class=&quot;pencraft pc-display-flex pc-alignItems-center pc-position-absolute pc-reset header-anchor-parent&quot;&gt;&lt;div class=&quot;pencraft pc-display-contents pc-reset pubTheme-yiXxQA&quot;&gt;&lt;div class=&quot;pencraft pc-reset header-anchor offset-top&quot; id=&quot;§cro-in-india-right-now&quot;&gt;&lt;/div&gt;&lt;button aria-label=&quot;Link&quot; class=&quot;pencraft pc-reset pencraft iconButton-mq_Et5 iconButtonBase-dJGHgN buttonBase-GK1x3M buttonStyle-r7yGCK size_sm-G3LciD priority_secondary-S63h9o&quot; data-href=&quot;https://vincovestrum924146.substack.com/i/208650451/cro-in-india-right-now&quot; tabindex=&quot;0&quot; type=&quot;button&quot;&gt;&lt;svg class=&quot;lucide lucide-link&quot; fill=&quot;none&quot; height=&quot;18&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; stroke-width=&quot;2&quot; stroke=&quot;currentColor&quot; viewbox=&quot;0 0 24 24&quot; width=&quot;18&quot;&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/h2&gt;&lt;p&gt;&lt;span&gt;The most exciting part for Indian students is here. India is now the world’s second-largest home for A/B testing software companies, behind only the US, according to &lt;/span&gt;&lt;a href=&quot;https://tracxn.com/d/trending-business-models/startups-in-ab-testing-software/__88zuFnn_XyonFi8vyC8Pp979qbj_66uwliJeEU49S0g/companies&quot;&gt;Tracxn data&lt;/a&gt;&lt;span&gt;. Some of the well-known tools in this space are all built by Indian founders. This isn’t a niche American thing you’re late to. It’s actively being built here, right now, with real jobs behind it.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;And it’s moving past “just buy a tool” into “build a culture around it,” with practitioner meetups and roundtables popping up in Indian cities. Translation: the ecosystem is young enough that showing up early actually means something. Some fo the recent events around it is something I keep posting about and you will hear more about it from me.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Reference:&lt;/strong&gt;&lt;span&gt; &lt;/span&gt;&lt;a href=&quot;https://www.convert.com/blog/a-b-testing/best-ab-testing-tools-india/&quot;&gt;Best A/B Testing Tools in India&lt;/a&gt;&lt;/p&gt;&lt;h2 class=&quot;header-anchor-post&quot;&gt;Start This Week&lt;div class=&quot;pencraft pc-display-flex pc-alignItems-center pc-position-absolute pc-reset header-anchor-parent&quot;&gt;&lt;div class=&quot;pencraft pc-display-contents pc-reset pubTheme-yiXxQA&quot;&gt;&lt;div class=&quot;pencraft pc-reset header-anchor offset-top&quot; id=&quot;§start-this-week&quot;&gt;&lt;/div&gt;&lt;button aria-label=&quot;Link&quot; class=&quot;pencraft pc-reset pencraft iconButton-mq_Et5 iconButtonBase-dJGHgN buttonBase-GK1x3M buttonStyle-r7yGCK size_sm-G3LciD priority_secondary-S63h9o&quot; data-href=&quot;https://vincovestrum924146.substack.com/i/208650451/start-this-week&quot; tabindex=&quot;0&quot; type=&quot;button&quot;&gt;&lt;svg class=&quot;lucide lucide-link&quot; fill=&quot;none&quot; height=&quot;18&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; stroke-width=&quot;2&quot; stroke=&quot;currentColor&quot; viewbox=&quot;0 0 24 24&quot; width=&quot;18&quot;&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;span&gt;Install &lt;/span&gt;&lt;a href=&quot;https://clarity.microsoft.com/&quot;&gt;Microsoft Clarity&lt;/a&gt;&lt;span&gt; (free) on any personal project and just watch how people use it&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span&gt;Try &lt;/span&gt;&lt;a href=&quot;https://www.convert.com/&quot;&gt;Convert.com’s&lt;/a&gt;&lt;span&gt; 15-day free trial to see what an actual A/B testing tool looks like from the inside&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Learn the four experiment types: A/A, A/B, split URL, multivariate. At least start with the easiest ones i.e. A/A and A/B. &lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Write one hypothesis: “If I change X, then Y will happen, because Z”. This is important. If you master this, you know how the product and its users/buyers interact.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;That’s pretty much it. (Of course more but I don’t want to scare you :) )&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;hr /&gt;&lt;/div&gt;&lt;p&gt;&lt;em&gt;I teach DevOps and cloud subjects to students, and work at Convert.com. Curious about CRO? Drop a comment.&lt;/em&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://roshannagekar.blogspot.com/feeds/4403980271759345954/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2838270249296465765/4403980271759345954?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2838270249296465765/posts/default/4403980271759345954'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2838270249296465765/posts/default/4403980271759345954'/><link rel='alternate' type='text/html' href='http://roshannagekar.blogspot.com/2026/07/cro-career-stream-nobody-told-you-about.html' title='CRO: The Career Stream Nobody Told You About'/><author><name>Roshan Nagekar</name><uri>http://www.blogger.com/profile/08009772289480467450</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2838270249296465765.post-7740581333311947512</id><published>2026-07-26T23:31:30.731-07:00</published><updated>2026-07-26T23:31:30.731-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AgentGovernance"/><category scheme="http://www.blogger.com/atom/ns#" term="aiagents"/><category scheme="http://www.blogger.com/atom/ns#" term="automation"/><category scheme="http://www.blogger.com/atom/ns#" term="MCP"/><category scheme="http://www.blogger.com/atom/ns#" term="MySQL"/><category scheme="http://www.blogger.com/atom/ns#" term="terraform"/><title type='text'>Credential bleed: what happens when your MCP server trusts the wrong thing</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p class=&quot;font-claude-response-body break-words whitespace-normal&quot; dir=&quot;auto&quot;&gt;I set up an MCP server for MySQL last month. Took maybe twenty minutes. FastMCP, running on port 9100, exposing a handful of database tools to any agent that connected to it.&lt;/p&gt;
&lt;p class=&quot;font-claude-response-body break-words whitespace-normal&quot; dir=&quot;auto&quot;&gt;Then I asked myself a question I should&#39;ve asked before writing a single line of code. What exactly is this server trusting, and who gave it permission to trust that?&lt;/p&gt;
&lt;p class=&quot;font-claude-response-body break-words whitespace-normal&quot; dir=&quot;auto&quot;&gt;Turns out, the answer was: whatever connected to it.&lt;/p&gt;
&lt;p class=&quot;font-claude-response-body break-words whitespace-normal&quot; dir=&quot;auto&quot;&gt;Here&#39;s the thing about MCP servers that nobody warns you about when you&#39;re following a quickstart guide. The server doesn&#39;t inherently know the difference between &quot;an agent I authorized to run read queries&quot; and &quot;an agent that happened to find my endpoint.&quot; If your auth model is weak or missing, every tool you expose is available to every connection that shows up. Credentials don&#39;t need to be stolen. They just need to be reachable.&lt;/p&gt;
&lt;p class=&quot;font-claude-response-body break-words whitespace-normal&quot; dir=&quot;auto&quot;&gt;I built this specific setup as a demo, deliberately, to see how bad it could actually get. Not theoretical. A real MySQL MCP server, real credential handling, real tools exposed. And what I found is that credential bleed isn&#39;t some exotic attack. its the default state of a lot of MCP setups people are shipping right now, without realizing it.&lt;/p&gt;
&lt;p class=&quot;font-claude-response-body break-words whitespace-normal&quot; dir=&quot;auto&quot;&gt;Think about what an MCP server actually does. It sits between an agent and a real system, translating natural language intent into real actions. Real database queries. Real Terraform applies. Real file writes. Somewhere in that translation layer, credentials have to live. And if that layer trusts the connection instead of the identity, you don&#39;t have an access control system. You have an open door with a &quot;please don&#39;t&quot; sign on it.&lt;/p&gt;
&lt;p class=&quot;font-claude-response-body break-words whitespace-normal&quot; dir=&quot;auto&quot;&gt;This is the same failure mode I saw with a Terraform agent demo I built separately. An ambiguous prompt walked straight through &lt;code class=&quot;bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]&quot;&gt;terraform_plan&lt;/code&gt; into &lt;code class=&quot;bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]&quot;&gt;terraform_apply&lt;/code&gt; and created a real S3 bucket in AWS. Nobody meant for that to happen. The agent didn&#39;t misbehave. The boundary that was supposed to stop it simply wasn&#39;t there. Same root cause, different door.&lt;/p&gt;
&lt;p class=&quot;font-claude-response-body break-words whitespace-normal&quot; dir=&quot;auto&quot;&gt;The uncomfortable part is that this scales with adoption, not against it. The more useful MCP servers get, the more tools get exposed, the more valuable the thing sitting behind that unguarded connection becomes. A vulnerable server nobody uses is a curiosity. A vulnerable server your whole team routes agent traffic through is a real incident waiting on a slow Tuesday.&lt;/p&gt;
&lt;p class=&quot;font-claude-response-body break-words whitespace-normal&quot; dir=&quot;auto&quot;&gt;None of this means don&#39;t build MCP servers. It means stop treating the connection as the identity. An agent proving it can reach your server is not the same as an agent proving it should be trusted with what&#39;s behind it. Ephemeral credentials, scoped tools, intent validation before execution, these aren&#39;t nice-to-haves you add later. They&#39;re the actual product. Everything else is just a demo that works until it doesn&#39;t.&lt;/p&gt;
&lt;p class=&quot;font-claude-response-body break-words whitespace-normal&quot; dir=&quot;auto&quot;&gt;I&#39;ll probably write up the full technical breakdown of the MySQL demo separately. For now, if you&#39;re standing up an MCP server this week, ask the boring question first. Not &quot;does it work.&quot; Trust what, exactly.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://roshannagekar.blogspot.com/feeds/7740581333311947512/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2838270249296465765/7740581333311947512?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2838270249296465765/posts/default/7740581333311947512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2838270249296465765/posts/default/7740581333311947512'/><link rel='alternate' type='text/html' href='http://roshannagekar.blogspot.com/2026/07/credential-bleed-what-happens-when-your.html' title='Credential bleed: what happens when your MCP server trusts the wrong thing'/><author><name>Roshan Nagekar</name><uri>http://www.blogger.com/profile/08009772289480467450</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2838270249296465765.post-19927636200104555</id><published>2026-07-26T01:42:21.088-07:00</published><updated>2026-07-26T01:42:21.088-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="aigents"/><category scheme="http://www.blogger.com/atom/ns#" term="automation"/><category scheme="http://www.blogger.com/atom/ns#" term="Devops"/><category scheme="http://www.blogger.com/atom/ns#" term="n8n"/><title type='text'>I built a pipeline to auto-post my Telegram channel everywhere. Then I stopped.</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p class=&quot;font-claude-response-body break-words whitespace-normal&quot; dir=&quot;auto&quot;&gt;Auto-posting my Telegram channel posts everywhere sounded like a dream. Then I actually built it.&lt;/p&gt;
&lt;p class=&quot;font-claude-response-body break-words whitespace-normal&quot; dir=&quot;auto&quot;&gt;The plan was simple. Write one post on my Telegram channel (@securedevops). Let a pipeline pick it up. Reformat it for each platform. Push it out to LinkedIn, Twitter, Instagram, Facebook, Dev.to. Zero manual work after hitting publish once.&lt;/p&gt;
&lt;p class=&quot;font-claude-response-body break-words whitespace-normal&quot; dir=&quot;auto&quot;&gt;I built it in n8n. A webhook catches new posts from the channel. A dedup check makes sure nothing gets posted twice. Then a handoff point where ChatGPT would rewrite the post per platform, and push it live everywhere.&lt;/p&gt;
&lt;p class=&quot;font-claude-response-body break-words whitespace-normal&quot; dir=&quot;auto&quot;&gt;Sounds clean right? It mostly worked. Until it didn&#39;t.&lt;/p&gt;
&lt;p class=&quot;font-claude-response-body break-words whitespace-normal&quot; dir=&quot;auto&quot;&gt;Here&#39;s where it broke. I was using ngrok&#39;s free tier to expose the webhook. Every time my machine restarted, the URL changed. Which meant every time I restarted, I had to manually go re-register the new URL with Telegram. A pipeline that&#39;s supposed to save me time now needed me to babysit it every morning. Not exactly &quot;fully automated.&quot;&lt;/p&gt;
&lt;p class=&quot;font-claude-response-body break-words whitespace-normal&quot; dir=&quot;auto&quot;&gt;And the more embarrassing part. the actual multi-platform posting, the part that was supposed to save the most time, never got finished. I built the capture layer. I built the dedup layer. I stopped right before the part that mattered most.&lt;/p&gt;
&lt;p class=&quot;font-claude-response-body break-words whitespace-normal&quot; dir=&quot;auto&quot;&gt;Thinking about it now, this wasn&#39;t really an automation failure. It was a sequencing mistake. I built the fun part first. Webhooks, dedup logic, the architecture diagram in my head looking clean. The boring part, a stable public URL, I left for later. Later never came.&lt;/p&gt;
&lt;p class=&quot;font-claude-response-body break-words whitespace-normal&quot; dir=&quot;auto&quot;&gt;This keeps happening in infra work and I don&#39;t think its a coincidence. The AI reformatting step, the multi-platform posting, that was the exciting 20%. Getting a reliable endpoint that survives a restart was the unglamorous 80%. Everyone wants to build the 20%. Almost nobody wants to build the 80%. But the 80% is usually what decides if the thing actually runs unattended or not.&lt;/p&gt;
&lt;p class=&quot;font-claude-response-body break-words whitespace-normal&quot; dir=&quot;auto&quot;&gt;So the pipeline still sits there. Half built. Working, technically, if I remember to re-register the URL by hand.&lt;/p&gt;
&lt;p class=&quot;font-claude-response-body break-words whitespace-normal&quot; dir=&quot;auto&quot;&gt;Anyone else have an automation project that stalled right at the boring part? curious if this is a me problem or a universal one.&lt;/p&gt;
&lt;p class=&quot;font-claude-response-body break-words whitespace-normal&quot; dir=&quot;auto&quot;&gt;#DevOps #Automation #n8n #BuildInPublic #AIAgents&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://roshannagekar.blogspot.com/feeds/19927636200104555/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2838270249296465765/19927636200104555?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2838270249296465765/posts/default/19927636200104555'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2838270249296465765/posts/default/19927636200104555'/><link rel='alternate' type='text/html' href='http://roshannagekar.blogspot.com/2026/07/i-built-pipeline-to-auto-post-my.html' title='I built a pipeline to auto-post my Telegram channel everywhere. Then I stopped.'/><author><name>Roshan Nagekar</name><uri>http://www.blogger.com/profile/08009772289480467450</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2838270249296465765.post-9109601721707212089</id><published>2026-07-24T02:12:00.000-07:00</published><updated>2026-09-21T02:13:01.197-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="abtesting"/><category scheme="http://www.blogger.com/atom/ns#" term="administration"/><category scheme="http://www.blogger.com/atom/ns#" term="AgentGovernance"/><category scheme="http://www.blogger.com/atom/ns#" term="aiagents"/><category scheme="http://www.blogger.com/atom/ns#" term="analytics"/><category scheme="http://www.blogger.com/atom/ns#" term="artificalintelligence"/><category scheme="http://www.blogger.com/atom/ns#" term="automation"/><category scheme="http://www.blogger.com/atom/ns#" term="conversionrateoptimization"/><category scheme="http://www.blogger.com/atom/ns#" term="cro"/><category scheme="http://www.blogger.com/atom/ns#" term="marketing"/><category scheme="http://www.blogger.com/atom/ns#" term="sales"/><title type='text'>Part 3: How to Decide Which CRO Test to Run First</title><content type='html'>&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h2 class=&quot;adt adu wq z adv ka aeu kb kd ke aev kf kh ga aew gb gi kk aex kl ko kp aey kq kt aeb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;d34b&quot;&gt;Because the loudest idea in the room is not always the best experiment.&lt;/h2&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco aec acq acr acs aed acu acv acw aee acy acz ada aef adc add ade aeg adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;99cb&quot;&gt;In the last post, I wrote about the main experiment types: A/A, A/B, Split URL, and multivariate testing. I also introduced the formula that quietly changed how I think about experimentation:&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;01e3&quot;&gt;&lt;strong class=&quot;acn jz&quot;&gt;Success = Chance × Frequency&lt;/strong&gt;&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;011b&quot;&gt;Once that clicked, I assumed the next step would be simple.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;f2ea&quot;&gt;Pick an idea &amp;gt; Run a test &amp;gt; Measure it &amp;gt; Repeat.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;87e1&quot;&gt;Then I actually tried to do it. Because once people around you start thinking in CRO terms, ideas come from everywhere.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;f6bd&quot;&gt;The designer wants to test the hero image. The founder wants to rewrite the pricing page because “it does not feel premium enough.” Someone from sales heard that a competitor changed their CTA and now wants to copy it immediately. Someone read a blog at midnight and suddenly wants to add a chatbot, a quiz, a floating banner, and possibly a dancing mascot.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;20bd&quot;&gt;Before you know it, your experiment backlog looks like a Jira board after a chaotic sprint planning session.&lt;/p&gt;&lt;ul class=&quot;&quot;&gt;&lt;li class=&quot;acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;4a2d&quot;&gt;Lots of tickets.&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;7f7f&quot;&gt;Very little structure.&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;7902&quot;&gt;Everyone convinced their idea is the one that will change the company’s destiny.&lt;/li&gt;&lt;/ul&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;3669&quot;&gt;This is where prioritization comes in. Not because prioritization makes you smarter, but because it protects the experimentation program from becoming purely opinion-driven. And in CRO, opinions can multiply faster than credit card debts.&lt;/p&gt;&lt;h2 class=&quot;adt adu wq z adv ka aeu kb kd ke aev kf kh ga aew gb gi kk aex kl ko kp aey kq kt aeb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;f8eb&quot;&gt;The Hidden Cost of Running the Wrong Test&lt;/h2&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco aec acq acr acs aed acu acv acw aee acy acz ada aef adc add ade aeg adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;e51b&quot;&gt;At first, “let’s just test this” sounds harmless. CRO is about experimentation, right? Just run everything. But every test has a cost.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;0684&quot;&gt;Even when the testing tool makes setup easy, a test still consumes traffic, time, design effort, analysis attention, and usually a couple of weeks of your roadmap. If your site has enough traffic to run two meaningful tests this month, and your backlog has twenty ideas, running the wrong two means you delayed the better ones. That is not a small cost.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;bcb9&quot;&gt;This felt immediately familiar from Devops work. You do not deploy every feature request just because someone suggested it in a meeting with confidence and a nice slide deck. You triage. You look at impact, risk, effort, dependencies, and what the system is actually telling you before you start making changes.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;5b7f&quot;&gt;CRO needs the same discipline. An idea is not valuable because it sounds smart in a meeting. It becomes valuable when it is connected to evidence and scored against other ideas in the backlog.&lt;/p&gt;&lt;h2 class=&quot;adt adu wq z adv ka aeu kb kd ke aev kf kh ga aew gb gi kk aex kl ko kp aey kq kt aeb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;80d6&quot;&gt;The HiPPO Problem&lt;/h2&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco aec acq acr acs aed acu acv acw aee acy acz ada aef adc add ade aeg adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;ddb9&quot;&gt;Before getting into frameworks, there is a force you need to understand. It quietly kills many CRO programs. It is called the &lt;strong class=&quot;acn jz&quot;&gt;HiPPO&lt;/strong&gt;: the &lt;strong class=&quot;acn jz&quot;&gt;Highest Paid Person’s Opinion&lt;/strong&gt;. Every team has one. In fact there is a rude saying about opinions. “Opinions are like…” (&lt;em class=&quot;aeh&quot;&gt;well… Google it&lt;/em&gt;)&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;e73c&quot;&gt;The senior leader who says, “I think the button should be green,” and suddenly the next sprint is about button colors. The founder who saw a competitor’s landing page and wants to rebuild yours to match it by Thursday. The VP who has “a feeling” about the checkout flow. The stakeholder who says, “Can we just test it?” in the same tone people use before creating six months of technical debt.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;5bf3&quot;&gt;To be fair, these inputs are not useless. People close to the business often have genuine intuition worth exploring. Sales teams hear objections. Support teams hear confusion. Founders understand positioning. Product teams know what users struggle with. The problem is not the idea. The problem is when the idea skips the queue without being scored.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;9851&quot;&gt;In DevOps, we do not prioritize incident response based on who is shouting loudest in Slack. At least, we should not. We prioritize based on system impact and what the metrics are actually saying.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;aa11&quot;&gt;CRO needs the same structure. A prioritization framework is your polite defense against the HiPPO.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;47b6&quot;&gt;You are not saying: “No, your idea is bad.”&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;c581&quot;&gt;You are saying: “Great, let’s score it the same way we score everything else. If it ranks high, it goes first.”&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;a5b9&quot;&gt;That small shift changes the conversation. The framework depersonalizes the argument. The number does the heavy lifting. Very convenient, because numbers do not get awkward in meetings.&lt;/p&gt;&lt;h2 class=&quot;adt adu wq z adv ka aeu kb kd ke aev kf kh ga aew gb gi kk aex kl ko kp aey kq kt aeb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;10e1&quot;&gt;Start With the Funnel, Not the Idea&lt;/h2&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco aec acq acr acs aed acu acv acw aee acy acz ada aef adc add ade aeg adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;6c31&quot;&gt;Before scoring individual test ideas, figure out where to look first. Not every page deserves equal attention. A page with very little traffic will take forever to produce statistically meaningful results. A page with high traffic but no meaningful business impact may still not be worth optimizing ahead of a page that sits directly in the conversion path.&lt;/p&gt;&lt;figure class=&quot;aei aej aek ael aem acb abt abu paragraph-image&quot;&gt;&lt;div class=&quot;acc acd bb ace bz acf&quot; role=&quot;button&quot; tabindex=&quot;0&quot;&gt;&lt;span class=&quot;be bf bg i bh bi bj bk bl speechify-ignore&quot;&gt;Press enter or click to view image in full size&lt;/span&gt;&lt;div class=&quot;abt abu abv&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot;&gt;&lt;/source&gt;&lt;source data-testid=&quot;og&quot;&gt;&lt;/source&gt;&lt;img alt=&quot;&quot; class=&quot;bz abe acg c&quot; height=&quot;467&quot; role=&quot;presentation&quot; src=&quot;https://miro.medium.com/v2/resize:fit:1400/1*SdrqHf6x3P9zjNXl-qs0hA.png&quot; width=&quot;700&quot; /&gt;&lt;/picture&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;584b&quot;&gt;So before asking: “What should we change?” ask, “Where are we losing people?”, and then. Map your funnel.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;fa71&quot;&gt;For an e-commerce site, it might look like this:&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;3ac0&quot;&gt;Landing page &amp;gt; Product page &amp;gt; Cart &amp;gt; Checkout &amp;gt; Purchase&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;7a1f&quot;&gt;For SaaS, it might look like this:&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;3501&quot;&gt;Homepage &amp;gt; Pricing page &amp;gt; Signup &amp;gt; Activation &amp;gt; Paid conversion&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;020f&quot;&gt;For lead generation, it might look like this:&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;503b&quot;&gt;Landing page &amp;gt; Form view &amp;gt; Form start &amp;gt; Form submit &amp;gt; Qualified lead&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;4796&quot;&gt;Then look at where the biggest drops are happening. If 70% of users are abandoning at checkout, testing a homepage headline is probably not the first move.&lt;/p&gt;&lt;ul class=&quot;&quot;&gt;&lt;li class=&quot;acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;6d65&quot;&gt;It might be interesting.&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;a606&quot;&gt;It might even win.&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;6925&quot;&gt;But it is probably not where the biggest leak is.&lt;/li&gt;&lt;/ul&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;0c4a&quot;&gt;Analogy in DevOps: If the database is causing 90% of your latency, shaving 20ms off a frontend asset is not the priority. Sure, the frontend improvement may look nice in a performance report. But the database is still sitting there like an overloaded elephant in the server room.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;51ee&quot;&gt;Find the bottleneck first. Then fix it. In CRO, high-traffic pages close to revenue, signup, checkout, or lead generation are your hot paths. Start there.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;131b&quot;&gt;&lt;strong class=&quot;acn jz&quot;&gt;Small disclaimer:&lt;/strong&gt; &lt;em class=&quot;aeh&quot;&gt;Read at your own risk. This may make you hungry&lt;/em&gt;&lt;/p&gt;&lt;h2 class=&quot;adt adu wq z adv ka aeu kb kd ke aev kf kh ga aew gb gi kk aex kl ko kp aey kq kt aeb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;8df3&quot;&gt;The Two Frameworks: ICE and PIE&lt;/h2&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco aec acq acr acs aed acu acv acw aee acy acz ada aef adc add ade aeg adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;31b7&quot;&gt;Once you know which pages to focus on, you need a way to score the ideas sitting in your backlog. Two common prioritization frameworks in CRO are &lt;strong class=&quot;acn jz&quot;&gt;ICE&lt;/strong&gt; and &lt;strong class=&quot;acn jz&quot;&gt;PIE&lt;/strong&gt;. Both are simple, both use overlapping dimensions and both are easier to remember if you stop thinking about frameworks and start thinking about food. Which, honestly, improves most business concepts. ;)&lt;/p&gt;&lt;h2 class=&quot;adt adu wq z adv ka aeu kb kd ke aev kf kh ga aew gb gi kk aex kl ko kp aey kq kt aeb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;8dec&quot;&gt;ICE: Ordering Food at Midnight&lt;/h2&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco aec acq acr acs aed acu acv acw aee acy acz ada aef adc add ade aeg adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;9856&quot;&gt;ICE stands for:&lt;/p&gt;&lt;ul class=&quot;&quot;&gt;&lt;li class=&quot;acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;4f6e&quot;&gt;&lt;strong class=&quot;acn jz&quot;&gt;Impact&lt;/strong&gt;&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;3030&quot;&gt;&lt;strong class=&quot;acn jz&quot;&gt;Confidence&lt;/strong&gt;&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;9395&quot;&gt;&lt;strong class=&quot;acn jz&quot;&gt;Ease&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;f9d4&quot;&gt;Think of ICE as ordering food on delivery app at 11 pm. You are hungry. You are tired. You are already in bed. This is not the time for adventure. You are not trying to discover a hidden culinary gem. You are trying to avoid sleeping angry. You see a biryani place.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;0341&quot;&gt;Before you tap “Order,” three thoughts happen automatically.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;4188&quot;&gt;First:&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;bea1&quot;&gt;&lt;strong class=&quot;acn jz&quot;&gt;“How good is this actually going to be?”&lt;/strong&gt;&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;47a7&quot;&gt;If it is bad biryani, why bother?&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;c034&quot;&gt;That is &lt;strong class=&quot;acn jz&quot;&gt;Impact&lt;/strong&gt;.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;b137&quot;&gt;Second:&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;9291&quot;&gt;&lt;strong class=&quot;acn jz&quot;&gt;“Can I trust this place right now?”&lt;/strong&gt;&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;6463&quot;&gt;Will it arrive hot, on time, and with raita? Or will it arrive cold, late, and missing the one thing that emotionally holds the whole meal together? You check the rating, reviews, delivery time, and whether someone recently complained that they received only rice and sadness.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;89fa&quot;&gt;That is &lt;strong class=&quot;acn jz&quot;&gt;Confidence&lt;/strong&gt;.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;b8ff&quot;&gt;Third:&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;382d&quot;&gt;&lt;strong class=&quot;acn jz&quot;&gt;“How easy is this?”&lt;/strong&gt;&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;2d19&quot;&gt;Is the restaurant open? Is delivery available? Will it reach in 25 minutes, or will the app say “arriving soon” until you lose hope? Will it ask you to verify your phone number again even though it has known you for five years?&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;e2dc&quot;&gt;That is &lt;strong class=&quot;acn jz&quot;&gt;Ease&lt;/strong&gt;.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;e441&quot;&gt;ICE is practical and slightly paranoid. It wants evidence before committing.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;e654&quot;&gt;In CRO terms:&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;b034&quot;&gt;&lt;strong class=&quot;acn jz&quot;&gt;Impact&lt;/strong&gt; asks: If this test wins, how much could it move the business?&lt;br /&gt;&lt;strong class=&quot;acn jz&quot;&gt;Confidence&lt;/strong&gt; asks: How sure are we that this is a real problem worth testing?&lt;br /&gt;&lt;strong class=&quot;acn jz&quot;&gt;Ease&lt;/strong&gt; asks: How difficult will this be to build, QA, launch, and analyze?&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;6388&quot;&gt;Score each dimension from 1 to 5. Then average the three. The highest-scoring ideas usually go first. ICE works especially well when you already have research data: heatmaps, recordings, analytics, surveys, support tickets, or past experiment learnings. Low confidence should lower the score, no matter how exciting the idea sounds.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;5473&quot;&gt;Because “I saw this on a competitor site” is not research. It is browsing with ambition.&lt;/p&gt;&lt;h2 class=&quot;adt adu wq z adv ka aeu kb kd ke aev kf kh ga aew gb gi kk aex kl ko kp aey kq kt aeb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;e928&quot;&gt;PIE: Choosing What to Order When You Have Options&lt;/h2&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco aec acq acr acs aed acu acv acw aee acy acz ada aef adc add ade aeg adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;488b&quot;&gt;PIE stands for:&lt;/p&gt;&lt;ul class=&quot;&quot;&gt;&lt;li class=&quot;acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;1d81&quot;&gt;&lt;strong class=&quot;acn jz&quot;&gt;Potential&lt;/strong&gt;&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;35bb&quot;&gt;&lt;strong class=&quot;acn jz&quot;&gt;Importance&lt;/strong&gt;&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;54bd&quot;&gt;&lt;strong class=&quot;acn jz&quot;&gt;Ease&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;2bb6&quot;&gt;Now stay in the same food delivery app. You are still hungry. It is still 11 pm. You still should have eaten earlier like a responsible adult, but here we are. This time, you are not evaluating one biryani place. You are deciding what category of food deserves your attention first.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;7a6f&quot;&gt;Biryani? Pizza? Rolls? South Indian? Chinese? That one “healthy bowl” option you add to cart and then remove after seeing the price? PIE helps you decide where the biggest opportunity is.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;928e&quot;&gt;First:&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;f000&quot;&gt;&lt;strong class=&quot;acn jz&quot;&gt;“How good could this get?”&lt;/strong&gt;&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;647d&quot;&gt;Could this be the kind of meal that fixes your mood, your evening, and possibly your belief in humanity?&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;b8cd&quot;&gt;That is &lt;strong class=&quot;acn jz&quot;&gt;Potential&lt;/strong&gt;.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;e000&quot;&gt;Second:&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;1ada&quot;&gt;&lt;strong class=&quot;acn jz&quot;&gt;“How important is this meal?”&lt;/strong&gt;&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;aaf4&quot;&gt;Is this a casual snack, or have you skipped dinner and now your stomach is sending production-level alerts?&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;5486&quot;&gt;That is &lt;strong class=&quot;acn jz&quot;&gt;Importance&lt;/strong&gt;.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;76ed&quot;&gt;Third:&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;f3fd&quot;&gt;&lt;strong class=&quot;acn jz&quot;&gt;“How easy is it to get?”&lt;/strong&gt;&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;c905&quot;&gt;Is it nearby and deliverable in 25 minutes, or is the restaurant far away, closing soon, and likely to cancel after making you wait?&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;a0ce&quot;&gt;That is &lt;strong class=&quot;acn jz&quot;&gt;Ease&lt;/strong&gt;.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;203d&quot;&gt;PIE is more optimistic than ICE.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;ebf1&quot;&gt;ICE asks, “Can I trust this specific choice?”&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;ff1a&quot;&gt;PIE asks, “Where is the biggest opportunity?”&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;0f9f&quot;&gt;In CRO terms:&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;e628&quot;&gt;&lt;strong class=&quot;acn jz&quot;&gt;Potential&lt;/strong&gt; asks: How much improvement could this page or funnel step realistically have?&lt;br /&gt;&lt;strong class=&quot;acn jz&quot;&gt;Importance&lt;/strong&gt; asks: How valuable is this page or funnel step to the business?&lt;br /&gt;&lt;strong class=&quot;acn jz&quot;&gt;Ease&lt;/strong&gt; asks: How simple or difficult is the test to implement?&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;5a1d&quot;&gt;PIE is useful when you are comparing broader areas of opportunity.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;4785&quot;&gt;For example, if you are deciding whether to focus on the homepage, pricing page, checkout, signup form, or onboarding flow, PIE can help you decide where the biggest opportunity may be.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;a348&quot;&gt;So, in food delivery terms:&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;d23d&quot;&gt;&lt;strong class=&quot;acn jz&quot;&gt;ICE helps you decide whether to trust one restaurant.&lt;br /&gt;PIE helps you decide which food category is worth exploring first.&lt;/strong&gt;&lt;/p&gt;&lt;h2 class=&quot;adt adu wq z adv ka aeu kb kd ke aev kf kh ga aew gb gi kk aex kl ko kp aey kq kt aeb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;c5d5&quot;&gt;ICE vs PIE: The One-Line Difference&lt;/h2&gt;&lt;figure class=&quot;aei aej aek ael aem acb abt abu paragraph-image&quot;&gt;&lt;div class=&quot;acc acd bb ace bz acf&quot; role=&quot;button&quot; tabindex=&quot;0&quot;&gt;&lt;span class=&quot;be bf bg i bh bi bj bk bl speechify-ignore&quot;&gt;Press enter or click to view image in full size&lt;/span&gt;&lt;div class=&quot;abt abu anm&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot;&gt;&lt;/source&gt;&lt;source data-testid=&quot;og&quot;&gt;&lt;/source&gt;&lt;img alt=&quot;&quot; class=&quot;bz abe acg c&quot; height=&quot;394&quot; role=&quot;presentation&quot; src=&quot;https://miro.medium.com/v2/resize:fit:1400/1*Icx99EiSjuUCFd1txFziLA.png&quot; width=&quot;700&quot; /&gt;&lt;/picture&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;812e&quot;&gt;Here is the easiest way I remember them:&lt;/p&gt;&lt;ol class=&quot;&quot;&gt;&lt;li class=&quot;acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi amw afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;51d7&quot;&gt;ICE helps you decide whether to trust one restaurant. PIE helps you decide which food category is worth exploring first.&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi amw afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;9bd5&quot;&gt;ICE is about confidence. Can I trust this specific option to deliver? PIE is about opportunity. Which area has the biggest upside if I focus there? Same food app. Different thinking.&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi amw afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;9036&quot;&gt;With ICE, you are asking: “Should I order from this biryani place?” With PIE, you are asking: “Should I even be looking at biryani first, or is pizza, rolls, South Indian, or Chinese the better opportunity tonight?”&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi amw afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;d13a&quot;&gt;Both end with Ease, because nobody wants unnecessary complications at 11 pm. Especially not when they are hungry and the app is already saying, “Restaurant is closing soon,” like it is adding pressure to your life.&lt;/li&gt;&lt;/ol&gt;&lt;h2 class=&quot;adt adu wq z adv ka aeu kb kd ke aev kf kh ga aew gb gi kk aex kl ko kp aey kq kt aeb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;1f83&quot;&gt;Which Framework Should You Use?&lt;/h2&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco aec acq acr acs aed acu acv acw aee acy acz ada aef adc add ade aeg adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;7a49&quot;&gt;Use &lt;strong class=&quot;acn jz&quot;&gt;ICE&lt;/strong&gt; when your team already has research data and wants to prioritize based on evidence. ICE is useful when you are evaluating a specific hypothesis. For example:&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;bb0a&quot;&gt;“Should we move the CTA above the fold on the pricing page?”&lt;/p&gt;&lt;div class=&quot;nm am&quot;&gt;&lt;div class=&quot;e&quot;&gt;&lt;a class=&quot;as x au ci aw ab ax i ac ae af ag ah ai aj am&quot; data-discover=&quot;true&quot; href=&quot;https://medium.com/choose?source=promotion_paragraph---post_body_banner_no_hate--901a182103c9-----------------------------------------&quot; rel=&quot;noopener follow&quot;&gt;&lt;picture&gt;&lt;source media=&quot;(max-width: 551.98px)&quot;&gt;&lt;/source&gt;&lt;source media=&quot;(min-width: 552px) and (max-width: 727.98px)&quot;&gt;&lt;/source&gt;&lt;source media=&quot;(min-width: 728px) and (max-width: 903.98px)&quot;&gt;&lt;/source&gt;&lt;source media=&quot;(min-width: 904px) and (max-width: 1079.98px)&quot;&gt;&lt;/source&gt;&lt;source media=&quot;(min-width: 1080px)&quot;&gt;&lt;/source&gt;&lt;img alt=&quot;Learn about Medium’s values&quot; class=&quot;bz&quot; /&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acq acr acs acu acv acw acy acz ada adc add ade adg adh nm adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;78b2&quot;&gt;You already have heatmap data. You know users are not scrolling far enough. You want to know whether this specific idea deserves to be tested next. That is ICE.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;13ef&quot;&gt;Use &lt;strong class=&quot;acn jz&quot;&gt;PIE&lt;/strong&gt; when you are earlier in the process and still deciding where the biggest opportunity is.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;a64c&quot;&gt;For example:&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;5ed1&quot;&gt;“Should we focus on the homepage, pricing page, checkout flow, signup form, or onboarding?”&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;d5b6&quot;&gt;That is PIE.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;c3aa&quot;&gt;At Convert.com, the Compass feature includes both PIE and ICE inside the hypothesis builder. When you create a new hypothesis, you can choose a framework, score each dimension on a scale of 1 to 5, and use that score to sort your backlog.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;d770&quot;&gt;That helps because the score becomes visible to everyone. It is much harder to push your pet idea to the top when the number is sitting right there on the screen, judging you quietly. A visible score is like the delivery rating on a food app. You can still order from the suspicious restaurant. But now everyone can see that it has 2.3 stars and seven reviews mentioning “never again.”&lt;/p&gt;&lt;h2 class=&quot;adt adu wq z adv ka aeu kb kd ke aev kf kh ga aew gb gi kk aex kl ko kp aey kq kt aeb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;e171&quot;&gt;Turn Ideas Into Hypotheses Before You Score Them&lt;/h2&gt;&lt;figure class=&quot;aei aej aek ael aem acb abt abu paragraph-image&quot;&gt;&lt;div class=&quot;acc acd bb ace bz acf&quot; role=&quot;button&quot; tabindex=&quot;0&quot;&gt;&lt;span class=&quot;be bf bg i bh bi bj bk bl speechify-ignore&quot;&gt;Press enter or click to view image in full size&lt;/span&gt;&lt;div class=&quot;abt abu abv&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot;&gt;&lt;/source&gt;&lt;source data-testid=&quot;og&quot;&gt;&lt;/source&gt;&lt;img alt=&quot;&quot; class=&quot;bz abe acg c&quot; height=&quot;467&quot; role=&quot;presentation&quot; src=&quot;https://miro.medium.com/v2/resize:fit:1400/1*kJU7bp0I3BglGj0lNOu8Rw.png&quot; width=&quot;700&quot; /&gt;&lt;/picture&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;6ae8&quot;&gt;One thing both frameworks require is that your ideas are written properly before scoring.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;0197&quot;&gt;“Change the button color” is not a hypothesis.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;0c37&quot;&gt;“Move the CTA above the fold” is not a hypothesis.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;5ff8&quot;&gt;“Make the page look more premium” is definitely not a hypothesis.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;d0d6&quot;&gt;That is a mood.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;e1de&quot;&gt;A proper hypothesis looks like this:&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;a71e&quot;&gt;&lt;strong class=&quot;acn jz&quot;&gt;If I change X, then Y will happen, because Z.&lt;/strong&gt;&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;c7da&quot;&gt;The “because” is the most important part. Without it, you are not testing an assumption. You are just making a change and hoping the graph goes up, which is basically the CRO version of deploying to production and whispering, “Please work.”&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;766f&quot;&gt;Or, to stay with the food delivery analogy, it is like ordering from a restaurant with no ratings because the photo looked nice. Could it be amazing? Maybe. Could it be regret in a plastic container? Also maybe.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;e386&quot;&gt;For example:&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;a8fb&quot;&gt;&lt;strong class=&quot;acn jz&quot;&gt;If we move the main CTA above the fold on the pricing page, more visitors will start the demo request flow, because heatmaps show most users are not scrolling far enough to see the current CTA.&lt;/strong&gt;&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;870c&quot;&gt;Now you have something worth scoring.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;fef4&quot;&gt;You know:&lt;/p&gt;&lt;ul class=&quot;&quot;&gt;&lt;li class=&quot;acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;2025&quot;&gt;The page&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;b9e8&quot;&gt;The change&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;5d8e&quot;&gt;The expected outcome&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;0ad0&quot;&gt;The evidence behind it&lt;/li&gt;&lt;/ul&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;d6f1&quot;&gt;Even if the test loses, you learn something specific. A backlog full of vague ideas becomes a dumping ground. A backlog full of hypotheses becomes a learning system.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;ef8d&quot;&gt;Or in food terms:&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;dcf3&quot;&gt;“Order something nice” is not useful.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;82d9&quot;&gt;“Order from a highly rated nearby restaurant because delivery time is low and reviews mention fresh food” is much better.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;74b2&quot;&gt;Specificity saves you from bad decisions. And occasionally, bad paneer.&lt;/p&gt;&lt;h2 class=&quot;adt adu wq z adv ka aeu kb kd ke aev kf kh ga aew gb gi kk aex kl ko kp aey kq kt aeb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;882e&quot;&gt;The One Thing ICE and PIE Get Wrong&lt;/h2&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco aec acq acr acs aed acu acv acw aee acy acz ada aef adc add ade aeg adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;d78c&quot;&gt;ICE and PIE are useful, but they share a blind spot. They often treat every idea as if it exists in a vacuum. But it does not.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;4c35&quot;&gt;Every idea exists inside the history of your previous tests. If you have run five tests on your pricing page and four of them lost, your confidence score for the next pricing-page idea should reflect that history. Something on that page may be resisting your assumptions.&lt;/p&gt;&lt;ul class=&quot;&quot;&gt;&lt;li class=&quot;acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;ea5f&quot;&gt;Maybe the traffic quality is different from what you expected.&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;a8f1&quot;&gt;Maybe the real problem is upstream in the funnel.&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;f69e&quot;&gt;Maybe people already understand the pricing page, and the actual friction is in signup.&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;0043&quot;&gt;Maybe your pricing page is innocent and has been framed by bad hypotheses.&lt;/li&gt;&lt;/ul&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;9af3&quot;&gt;The same applies to food delivery. If you have ordered from the same restaurant four times and three times they forgot the raita, you should not treat the fifth order like a fresh mystery.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;8273&quot;&gt;You have history. Use it. Past experiment results should feed into how you score new ideas. They should not sit inside a spreadsheet named something like: final_results_v3_really_final_updated_NEW.xlsx&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;baae&quot;&gt;This is why documentation matters as much as the framework itself.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;e7cc&quot;&gt;After every experiment, write down:&lt;/p&gt;&lt;ul class=&quot;&quot;&gt;&lt;li class=&quot;acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;1693&quot;&gt;The hypothesis&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;bb59&quot;&gt;The result&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;94f9&quot;&gt;The confidence level&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;6f4c&quot;&gt;The primary metric&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;a452&quot;&gt;The key learning&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;4a1b&quot;&gt;What it suggests about the next test&lt;/li&gt;&lt;/ul&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;fa1d&quot;&gt;Even a losing test is useful if it tells you where not to look. Without this history, your backlog resets to zero every quarter. With it, your scoring gets more accurate over time because you are building a picture of what your specific audience actually responds to. A CRO backlog without documentation is like a food app that forgets every bad order you ever had. You keep making the same mistake. And somehow, the raita is still missing.&lt;/p&gt;&lt;h2 class=&quot;adt adu wq z adv ka aeu kb kd ke aev kf kh ga aew gb gi kk aex kl ko kp aey kq kt aeb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;04c5&quot;&gt;What to Do When Everything Scores the Same&lt;/h2&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco aec acq acr acs aed acu acv acw aee acy acz ada aef adc add ade aeg adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;0d74&quot;&gt;Sometimes three ideas all score 4.2 and suddenly you are back in the same argument. This is normal. Frameworks help, but they do not eliminate judgment. A few tiebreakers can help. Pick the page with the most traffic. More visitors usually means faster results and less time waiting for statistical significance.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;8dae&quot;&gt;In food delivery terms, this is like choosing the restaurant with enough recent orders and reviews. If only two people have ordered from it since 2021, the rating may not tell you much.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;8135&quot;&gt;Pick the test that is fastest to build. A high-scoring idea that takes three weeks of development work may be worth doing after a slightly lower-scoring idea you can ship in a day. Remember the frequency side of the success formula.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;5900&quot;&gt;This is the difference between ordering something that arrives in 25 minutes and choosing a dish that says “preparation time: 95 minutes.”&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;7d64&quot;&gt;Technically, it may be great. Emotionally, you may not survive. Pick the test that teaches you the most regardless of outcome. Learning value is underrated. A test that answers a fundamental question about your audience is worth more than a test that optimizes something already working reasonably well.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;d42e&quot;&gt;In other words, do not only ask:&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;494b&quot;&gt;&lt;strong class=&quot;acn jz&quot;&gt;“What might win?”&lt;/strong&gt;&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;8f79&quot;&gt;Also ask:&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;e695&quot;&gt;&lt;strong class=&quot;acn jz&quot;&gt;“What will we learn even if this loses?”&lt;/strong&gt;&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;bbad&quot;&gt;That question saves a lot of time. And occasionally, a lot of ego.&lt;/p&gt;&lt;h2 class=&quot;adt adu wq z adv ka aeu kb kd ke aev kf kh ga aew gb gi kk aex kl ko kp aey kq kt aeb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;4ad6&quot;&gt;Define Success Before You Launch, Not After&lt;/h2&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco aec acq acr acs aed acu acv acw aee acy acz ada aef adc add ade aeg adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;bc74&quot;&gt;One mistake that shows up in beginner backlogs is choosing the primary metric after the test has already started. That is dangerous. If you look at enough metrics, something will always appear to have improved.&lt;/p&gt;&lt;ul class=&quot;&quot;&gt;&lt;li class=&quot;acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;e81f&quot;&gt;Clicks went up.&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;5743&quot;&gt;Scroll depth changed.&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;d487&quot;&gt;Form starts increased.&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;fb83&quot;&gt;Time on page looked different.&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;3ca2&quot;&gt;Someone in Nebraska spent 14 minutes reading the footer.&lt;/li&gt;&lt;/ul&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;1bf8&quot;&gt;But what was the experiment actually supposed to improve? Every test needs a primary metric before launch.&lt;/p&gt;&lt;ul class=&quot;&quot;&gt;&lt;li class=&quot;acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;9b6f&quot;&gt;Demo requests.&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;8c0d&quot;&gt;Purchases.&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;b8c3&quot;&gt;Trial signups.&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;bdc7&quot;&gt;Form completions.&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;6649&quot;&gt;Revenue per visitor.&lt;/li&gt;&lt;/ul&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;0c01&quot;&gt;Pick one. Commit to it. Let that metric make the call. This is like deciding what “good food” means before ordering. Are you optimizing for taste? Delivery speed? Price? Portion size? Not waking up with regret? If you decide after the food arrives, you can justify anything.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;5350&quot;&gt;“The biryani was cold, but the container was sturdy.”&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;cd58&quot;&gt;That is not success. That is coping. You can still watch secondary metrics for learning, but the decision should rest on the primary one. And alongside your primary metric, define your guardrail metrics. These are the things you are not directly trying to improve, but cannot afford to break. For example:&lt;/p&gt;&lt;ul class=&quot;&quot;&gt;&lt;li class=&quot;acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;5db8&quot;&gt;If you are optimizing demo signups, lead quality should not drop.&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;2f23&quot;&gt;If you are optimizing checkout completion, average order value should not fall.&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;b8f3&quot;&gt;If you are optimizing form completion, spam submissions should not explode.&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;c4eb&quot;&gt;If you are optimizing clicks, downstream conversions should not suffer.&lt;/li&gt;&lt;/ul&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;70e3&quot;&gt;This is the CRO version of SLOs. You define what success looks like and what failure looks like before you are emotionally invested in the outcome. A test that increases clicks while damaging qualified leads is not a win. It is noise wearing a party hat.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;0f08&quot;&gt;Or in food delivery terms: A restaurant that delivers in 12 minutes but sends the wrong order did not “win on speed.” It failed dinner.&lt;/p&gt;&lt;h2 class=&quot;adt adu wq z adv ka aeu kb kd ke aev kf kh ga aew gb gi kk aex kl ko kp aey kq kt aeb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;b3ad&quot;&gt;A Practical First Backlog&lt;/h2&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco aec acq acr acs aed acu acv acw aee acy acz ada aef adc add ade aeg adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;2958&quot;&gt;If you are starting from zero, here is the workflow I would follow.&lt;/p&gt;&lt;ul class=&quot;&quot;&gt;&lt;li class=&quot;acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;c912&quot;&gt;Map your funnel and identify the biggest drop-off point.&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;19bc&quot;&gt;Use heatmaps, session recordings, analytics, surveys, and any sales or support feedback you can access.&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;4d62&quot;&gt;Write down every test idea without judging too early.&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;2ae7&quot;&gt;Convert each idea into a proper hypothesis using the “If X, then Y, because Z” format.&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;0183&quot;&gt;Score each one using ICE or PIE.&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;f028&quot;&gt;Pick one high-scoring, reasonable-effort test.&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;4025&quot;&gt;Define the primary metric and guardrail metrics before launch.&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;da70&quot;&gt;Run the test.&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;7164&quot;&gt;Document the result and the learning.&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;595f&quot;&gt;Then re-score the backlog based on what you now know.&lt;/li&gt;&lt;/ul&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;9ad7&quot;&gt;That last step is what most teams skip. And it is what separates a backlog that compounds from one that stagnates. A CRO backlog should not be a parking lot where ideas go to quietly disappear. It should be more like a living system.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;1dc6&quot;&gt;Or, to stay on brand, a well-maintained CI/CD pipeline for learning. Every test should make the next decision smarter. Just like every food order teaches you something.&lt;/p&gt;&lt;ul class=&quot;&quot;&gt;&lt;li class=&quot;acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;3a2d&quot;&gt;Restaurant is reliable.&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;2839&quot;&gt;Delivery is slow on weekends.&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;6b1c&quot;&gt;The “extra spicy” option is not a personality test you need to pass.&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;a081&quot;&gt;Never trust a place where every menu item has the same stock photo.&lt;/li&gt;&lt;/ul&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;1deb&quot;&gt;Learning compounds when you write it down.&lt;/p&gt;&lt;h2 class=&quot;adt adu wq z adv ka aeu kb kd ke aev kf kh ga aew gb gi kk aex kl ko kp aey kq kt aeb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;db54&quot;&gt;The Real Takeaway&lt;/h2&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco aec acq acr acs aed acu acv acw aee acy acz ada aef adc add ade aeg adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;2dc6&quot;&gt;Prioritization is not about finding the cleverest idea. It is not about the biggest redesign. It is not about the most senior opinion in the room. It is about running the tests that have the best combination of meaningful impact, strong evidence, reasonable effort, and clear learning potential. Done consistently, this turns CRO from a collection of random experiments into a learning system. You find the biggest leaks, collect evidence, write hypotheses, score ideas, run the most valuable tests first, document what happened and then repeat.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;9aa7&quot;&gt;The DevOps parallel is hard to miss. Good infrastructure teams do not just ship more changes. They improve how they decide what to change, how they measure it, and how they learn from it.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;1d44&quot;&gt;Good CRO teams do exactly the same thing. And the food delivery parallel is also hard to miss. The goal is not to order everything on the menu. The goal is to make better choices each time, based on what you know, what matters, what is realistic, and what you learned last time.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;a4c5&quot;&gt;That is prioritization.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;b8f1&quot;&gt;In the next post, I want to go deeper into reading results without fooling yourself: statistical significance, confirmation bias, and why the most dangerous moment in CRO is when a test is almost winning.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;049d&quot;&gt;I work with Convert.com and write about the intersection of DevOps and experimentation. If you are building your first CRO backlog or trying to move your team away from opinion-driven testing, drop a comment or reach out. Happy to compare notes.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://roshannagekar.blogspot.com/feeds/9109601721707212089/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2838270249296465765/9109601721707212089?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2838270249296465765/posts/default/9109601721707212089'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2838270249296465765/posts/default/9109601721707212089'/><link rel='alternate' type='text/html' href='http://roshannagekar.blogspot.com/2026/07/part-3-how-to-decide-which-cro-test-to.html' title='Part 3: How to Decide Which CRO Test to Run First'/><author><name>Roshan Nagekar</name><uri>http://www.blogger.com/profile/08009772289480467450</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2838270249296465765.post-4489960085025003575</id><published>2026-06-24T23:46:00.000-07:00</published><updated>2026-09-20T23:50:38.088-07:00</updated><title type='text'> From a zip file in 2020 to an AI-powered wiki in 2026. Here&#39;s what happened in between </title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;img alt=&quot;AI generated image&quot; class=&quot;reader-cover-image__img evi-image lazy-image ember-view&quot; height=&quot;364&quot; id=&quot;ember710&quot; src=&quot;https://media.licdn.com/dms/image/v2/D5612AQFb76l8pl_Jig/article-cover_image-shrink_720_1280/B56Z79yx80IMAQ-/0/1782374414489?e=1791417600&amp;amp;v=beta&amp;amp;t=0PXbYl4ZgYvXvnkQhe5Rit8oXLOKIX-Y3yCeOMglXBc&quot; width=&quot;647&quot; /&gt;&lt;/p&gt;&lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember731&quot;&gt;
      Someone on the team once asked about a feature deprecated back in 2020.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember732&quot;&gt;
      45 minutes of digging through backups, old slack threads, a google doc nobody had touched in years, and the answer eventually showed up inside a zip file. Like a digital archaeological dig. Except less cool and more frustrating.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember733&quot;&gt;
      That moment made it clear to me that something needed to change. This post is about what the team figured out together.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember734&quot;&gt;
      &lt;b&gt;Part 1: An old hero called MDWiki&lt;/b&gt;
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember735&quot;&gt;
      Before getting to the AI part, here&#39;s a tool that ended up being central to the whole thing.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember736&quot;&gt;
      Years ago, there was a situation many people would remember. I was in a pilot batch at a new office location for an MNC. Fresh start, no internal tools, no documentation platform, no proper handover process. Knowledge transfer from HQ was slow, questions were piling up, answers were scattered everywhere.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember737&quot;&gt;
      MDWiki turned out to be the answer. Its an old tool, almost ancient by tech standards, but brilliant in its simplicity. plain markdown files in a folder, and it renders a full documentation site. no database, no server setup, no hosting complexity. just files.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember738&quot;&gt;
      Hosting it on OneDrive meant the whole company could sync it locally. suddenly every team had a shared wiki that worked offline, updated automatically when anyone saved a file, and needed zero infrastructure to maintain. Lightweight, fast, and it worked. sometimes old tools solve new problems better than anything shiny.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember739&quot;&gt;
      &lt;b&gt;Part 2: The scale problem every growing team eventually hits&lt;/b&gt;
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember740&quot;&gt;
      Fast forward to now. At a certain point, documentation at our company had simply outgrown the way it was being managed. Knowledge contributed by multiple team members over years. text files, images, screenshots, video recordings, architecture diagrams, slack conversations, meeting notes, product threads. Rich, honest knowledge built up over time by people who genuinely cared.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember741&quot;&gt;
      But here is what happens at scale. When knowledge lives across too many places, it becomes hard to navigate. some topics had multiple versions, each slightly evolved from the last. naturally, over time, some overlap crept in. This is not a people problem. Its a growth problem. every team that ships consistently runs into this. knowledge compounds faster than anyone can manually organise it.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember742&quot;&gt;
      And when someone moves on, a little undocumented context moves with them. not because they were careless, but because there was no system to capture it before it walked out the door. that gap needed closing, and honestly it was on us as a team to fix it sooner.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember743&quot;&gt;
      &lt;b&gt;Part 3: Andrej Karpathy walked in (virtually)&lt;/b&gt;
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember744&quot;&gt;
      That&#39;s when we came across Andrej Karpathy&#39;s LLM-Wiki idea. if you don&#39;t know Karpathy, he was a founding member of OpenAI and Tesla&#39;s AI director. when he writes something, the internet pays attention.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember745&quot;&gt;
      His idea is elegant. Stop treating your knowledge base as a place humans write into. treat it like a git repo. let the LLM own the writing layer. humans write exactly one file by hand, a schema file that defines the rules, structure, and conventions. Everything else? the LLM reads raw sources and builds the wiki, maintaining it as new content comes in.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember746&quot;&gt;
      The wiki becomes a persistent, compounding artifact. it gets richer with every source added. cross references are already there. contradictions get flagged. the synthesis reflects everything that has been added, not just the last thing someone remembered to update. Brought it to the team. We decided it was worth trying.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember747&quot;&gt;
      &lt;b&gt;Part 4: What we built together&lt;/b&gt;
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember748&quot;&gt;
      We combined LLM-Wiki with MDWiki and added a CI/CD layer on top. Here is how the whole thing works.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember749&quot;&gt;
      Three layers.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember750&quot;&gt;
      &lt;b&gt;Raw folder.&lt;/b&gt;&lt;span class=&quot;white-space-pre&quot;&gt; &lt;/span&gt;all source material goes here. old docs, slack exports, meeting notes, screenshots, video transcripts, architecture diagrams. untouched, immutable. source of truth.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember751&quot;&gt;
      &lt;a class=&quot;oeKsuVZibZVkrJDbiVLhrdCYZvAakDtemxMao&quot; data-test-app-aware-link=&quot;&quot; href=&quot;http://CLAUDE.md&quot; tabindex=&quot;0&quot; target=&quot;_self&quot;&gt;&lt;b&gt;CLAUDE.md&lt;/b&gt;&lt;/a&gt;&lt;b&gt;.&lt;/b&gt;&lt;span class=&quot;white-space-pre&quot;&gt; &lt;/span&gt;the one file written by hand. it teaches Claude how MDWiki works, what the folder structure looks like, title formats, how to handle overlapping topics, what goes where, and when to flag something for human review instead of auto-placing it. the rulebook for the entire system.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember752&quot;&gt;
      &lt;b&gt;The wiki itself.&lt;/b&gt;&lt;span class=&quot;white-space-pre&quot;&gt; &lt;/span&gt;Claude reads whatever lands in the raw folder and writes, organises, and cross-links the markdown files in MDWiki format. every document lands in the right place, correctly formatted, connected to related pages.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember753&quot;&gt;
      And the most important part, the human review layer. Any team member can drop a document into the raw folder and raise a pull request on GitHub. a reviewer steps in before anything gets merged. they check:
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember754&quot;&gt;
            &lt;/p&gt;&lt;ul&gt;&lt;li&gt;Is this information still accurate or has the process changed?&lt;/li&gt;&lt;li&gt;Does this conflict with something already in the wiki?&lt;/li&gt;&lt;li&gt;Is there any sensitive information, credentials, or customer data that shouldn&#39;t be here?&lt;/li&gt;&lt;li&gt;Is this still relevant or does it describe something no longer in use?&lt;/li&gt;&lt;li&gt;Does the framing match our internal style and audience?&lt;/li&gt;&lt;/ul&gt;

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

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember755&quot;&gt;
      Once the PR is approved, Claude adds the knowledge to the wiki, formats it for MDWiki, cross-links it with related content, and updates the index. A GitHub Actions pipeline deploys the whole thing to Google Firebase. every approved merge triggers a deployment. the team sees the updated wiki within minutes, no manual publishing needed.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember756&quot;&gt;
      &lt;b&gt;Part 5: The Guardrail reminder&lt;/b&gt;
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember757&quot;&gt;
      This one bears repeating, and it came from a hard conversation within the team early on. Claude has write access to the knowledge base. and we made sure it cannot merge its own PRs.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember758&quot;&gt;
      Not because we don&#39;t trust the model, but because nobody should. a recent research paper tested 19 LLMs on long document editing workflows and found that even the best models, GPT, Claude, Gemini, silently corrupt an average of 25% of content over time. not crashing, not warning anyone. just quietly getting things wrong as the workflow gets longer.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember759&quot;&gt;
      The human review step is not a formality. its the most load-bearing part of the whole pipeline. we almost skipped it to move faster. Glad we didn&#39;t. Automation without a review layer is not a knowledge base. its a very confident source of misinformation.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember760&quot;&gt;
      If you&#39;re building something similar or thinking through your own documentation architecture, drop a comment. happy to share more on the setup.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember761&quot;&gt;
      &lt;b&gt;Ref&lt;/b&gt;
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember762&quot;&gt;
            &lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a class=&quot;oeKsuVZibZVkrJDbiVLhrdCYZvAakDtemxMao&quot; data-test-app-aware-link=&quot;&quot; href=&quot;https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f&quot; tabindex=&quot;0&quot; target=&quot;_self&quot;&gt;Karpathy&#39;s LLM-Wiki gist&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a class=&quot;oeKsuVZibZVkrJDbiVLhrdCYZvAakDtemxMao&quot; data-test-app-aware-link=&quot;&quot; href=&quot;https://dynalon.github.io/mdwiki/#!index.md&quot; tabindex=&quot;0&quot; target=&quot;_self&quot;&gt;MDWiki&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

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

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember763&quot;&gt;
      #Documentation #DevOps #LLMWiki #KnowledgeManagement #GitHub #MDWiki #AIAgents #GitHubActions #Firebase
    &lt;/p&gt;

  






            
        
    &lt;h3 class=&quot;ember-view reader-text-block__heading-3&quot; id=&quot;ember764&quot;&gt;
      Note for student readers
    &lt;/h3&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember765&quot;&gt;
      If you&#39;re in college and hunting for internships, stay with me for one more minute. This entire system works because of one thing: markdown. MDWiki renders it. Claude writes it. GitHub versions it. Firebase serves it. the whole pipeline has markdown at the center.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember766&quot;&gt;
      Markdown is not a niche skill. its the common language of documentation across DevOps, software engineering, product teams, and now AI pipelines. When you write a&lt;span class=&quot;white-space-pre&quot;&gt; &lt;/span&gt;&lt;a class=&quot;oeKsuVZibZVkrJDbiVLhrdCYZvAakDtemxMao&quot; data-test-app-aware-link=&quot;&quot; href=&quot;http://README.md&quot; tabindex=&quot;0&quot; target=&quot;_self&quot;&gt;README.md&lt;/a&gt;&lt;span class=&quot;white-space-pre&quot;&gt; &lt;/span&gt;on GitHub you&#39;re not just leaving notes for yourself. you&#39;re showing every hiring manager who lands on your profile that you think about the person coming after you. that&#39;s rarer than it sounds.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember767&quot;&gt;
      Most students push code and skip the README. don&#39;t be most students. Simplest thing you can do this week: go to your best GitHub project and write a proper&lt;span class=&quot;white-space-pre&quot;&gt; &lt;/span&gt;&lt;a class=&quot;oeKsuVZibZVkrJDbiVLhrdCYZvAakDtemxMao&quot; data-test-app-aware-link=&quot;&quot; href=&quot;http://README.md&quot; tabindex=&quot;0&quot; target=&quot;_self&quot;&gt;README.md&lt;/a&gt;. not just &quot;this is my project.&quot; write what it does, what problem it solves, how to run it, and what you learned building it.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember768&quot;&gt;
      That one file will do more for your internship hunt than a fancy resume template. Markdown today. Opportunity tomorrow.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember769&quot;&gt;
      &lt;i&gt;✏️ drafted with ai assist, because practicing what I preach.&lt;/i&gt;
    &lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://roshannagekar.blogspot.com/feeds/4489960085025003575/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2838270249296465765/4489960085025003575?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2838270249296465765/posts/default/4489960085025003575'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2838270249296465765/posts/default/4489960085025003575'/><link rel='alternate' type='text/html' href='http://roshannagekar.blogspot.com/2026/06/from-zip-file-in-2020-to-ai-powered.html' title=' From a zip file in 2020 to an AI-powered wiki in 2026. Here&#39;s what happened in between '/><author><name>Roshan Nagekar</name><uri>http://www.blogger.com/profile/08009772289480467450</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2838270249296465765.post-3186289340137017528</id><published>2026-06-22T01:23:00.000-07:00</published><updated>2026-09-21T01:23:45.967-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="abtesting"/><category scheme="http://www.blogger.com/atom/ns#" term="administration"/><category scheme="http://www.blogger.com/atom/ns#" term="aiagents"/><category scheme="http://www.blogger.com/atom/ns#" term="artificalintelligence"/><category scheme="http://www.blogger.com/atom/ns#" term="conversionrateoptimization"/><category scheme="http://www.blogger.com/atom/ns#" term="cro"/><category scheme="http://www.blogger.com/atom/ns#" term="Devops"/><title type='text'>Part 2: The Experiments That Actually Move the Number</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;179b&quot;&gt;If you read the &lt;a class=&quot;as rc&quot; data-discover=&quot;true&quot; href=&quot;https://medium.com/@iamrawtion/from-apache-benchmark-to-a-b-testing-a-devops-guys-cro-journey-5ff76a502363&quot; rel=&quot;noopener&quot;&gt;first post&lt;/a&gt; in this series, you now have a working definition of CRO, a sense of why conversion rate matters, and hopefully a free account on some combination of Clarity, GA4, and Convert.com(sshhh… I work for them).&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;1a1d&quot;&gt;Maybe you even opened a heatmap, stared at the colors for a while, and thought: “Okay. Now what?”&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;5919&quot;&gt;This post is that now what.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;322a&quot;&gt;Once you understand the basics of CRO, the next challenge is figuring out what kind of experiment to run. A/A test? A/B test? Split URL test? Multivariate test? They all sound similar at first, but they solve different problems at different stages.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;6c33&quot;&gt;And if you are coming from a technical background, the temptation is to overthink the setup before shipping anything. I know, because that is exactly what I started doing.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;a39e&quot;&gt;So let’s break down the main experiment types, when to use each one, and how to think about them without getting stuck. I will also share a formula from a CRO course I have been working through that quietly changed how I think about the whole thing.&lt;/p&gt;&lt;h2 class=&quot;adt adu wq z adv ka aeu kb kd ke aev kf kh ga aew gb gi kk aex kl ko kp aey kq kt aeb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;0f7a&quot;&gt;The Four Experiment Types, Explained Without Jargon&lt;/h2&gt;&lt;h3 class=&quot;amh adu wq z adv ami amj amk kd aml amm amn kh acw amo agy agz ada amp aha ahb ade amq ahc ahd amr cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;8490&quot;&gt;1. A/A Testing&lt;/h3&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco aec acq acr acs aed acu acv acw aee acy acz ada aef adc add ade aeg adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;19bf&quot;&gt;Before you trust your first experiment result, run an A/A test.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;7c29&quot;&gt;In an A/A test, both groups see the exact same page. No headline change, no button change, no layout change. Nothing at all. The purpose is not to improve conversions. The purpose is to check whether your measurement setup is actually trustworthy.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;793f&quot;&gt;If your tool is configured correctly, both groups should show roughly similar conversion rates over time. If they do not, something is off with how traffic is being split, how visitors are being tracked, or how conversions are being recorded.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;2a7e&quot;&gt;The DevOps parallel is straightforward. You would not set up Prometheus alerts on a misconfigured scrape target and then make infrastructure decisions based on that data. An A/A test is the same idea: confirm the instrument is working before you start using it to make calls.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;e96e&quot;&gt;A lot of teams skip this because it feels boring. There is no variation, no redesign, no winner to announce. But if your measurement layer is broken, every A/B test after this becomes questionable. You may spend weeks debating a result that was never reliable in the first place.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;0e5f&quot;&gt;On Convert.com, setting up an A/A test takes about three minutes. Do it before anything else, and leave it running for at least a week.&lt;/p&gt;&lt;figure class=&quot;aei aej aek ael aem acb abt abu paragraph-image&quot;&gt;&lt;div class=&quot;acc acd bb ace bz acf&quot; role=&quot;button&quot; tabindex=&quot;0&quot;&gt;&lt;span class=&quot;be bf bg i bh bi bj bk bl speechify-ignore&quot;&gt;Press enter or click to view image in full size&lt;/span&gt;&lt;div class=&quot;abt abu ams&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot;&gt;&lt;/source&gt;&lt;source data-testid=&quot;og&quot;&gt;&lt;/source&gt;&lt;img alt=&quot;&quot; class=&quot;bz abe acg c&quot; height=&quot;525&quot; role=&quot;presentation&quot; src=&quot;https://miro.medium.com/v2/resize:fit:1400/1*auaB7pqicBaOi-euyIJW6g.png&quot; width=&quot;700&quot; /&gt;&lt;/picture&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;h3 class=&quot;amh adu wq z adv ami amj amk kd aml amm amn kh acw amo agy agz ada amp aha ahb ade amq ahc ahd amr cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;91a6&quot;&gt;2. A/B Testing&lt;/h3&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco aec acq acr acs aed acu acv acw aee acy acz ada aef adc add ade aeg adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;35eb&quot;&gt;Once your A/A test passes, you are ready to actually experiment.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;8362&quot;&gt;An A/B test compares two versions of something. Version A is the original, called the Control. Version B is the changed version, called the Variant. You split traffic between the two and measure which one performs better on your chosen metric.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;96a9&quot;&gt;The element you change could be a headline, a CTA button, a hero image, a form layout, a pricing message, anything on the user journey. The constraint is this: change one meaningful thing at a time.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;9ff6&quot;&gt;If you change the headline, button color, pricing layout, and image all in the same test, and the variant wins, you have no idea what actually caused the lift. You got a result but no learning.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;f786&quot;&gt;The DevOps analogy that clicked for me: a clean commit. If one commit touches ten unrelated files and something breaks, debugging is painful. If one commit changes one logical thing, the cause is much easier to trace.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;30fc&quot;&gt;A good A/B test starts with a hypothesis in this format: “If I change X, then Y will happen, because Z.”&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;4ec5&quot;&gt;For example: “If I change the CTA text from ‘Buy Now’ to ‘Get Your Copy Today,’ then more visitors will click through to checkout, because the new copy feels less transactional and creates a stronger sense of ownership.”&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;e61d&quot;&gt;The “because” is the part most people skip, and it is the most important part. Without it, you are not testing a hypothesis. You are just nudging things and hoping the graph goes up.&lt;/p&gt;&lt;figure class=&quot;aei aej aek ael aem acb abt abu paragraph-image&quot;&gt;&lt;div class=&quot;acc acd bb ace bz acf&quot; role=&quot;button&quot; tabindex=&quot;0&quot;&gt;&lt;span class=&quot;be bf bg i bh bi bj bk bl speechify-ignore&quot;&gt;Press enter or click to view image in full size&lt;/span&gt;&lt;div class=&quot;abt abu ams&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot;&gt;&lt;/source&gt;&lt;source data-testid=&quot;og&quot;&gt;&lt;/source&gt;&lt;img alt=&quot;&quot; class=&quot;bz abe acg c&quot; height=&quot;525&quot; role=&quot;presentation&quot; src=&quot;https://miro.medium.com/v2/resize:fit:1400/1*0w5KXlIqqcGDLi14nHJIsg.png&quot; width=&quot;700&quot; /&gt;&lt;/picture&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;h3 class=&quot;amh adu wq z adv ami amj amk kd aml amm amn kh acw amo agy agz ada amp aha ahb ade amq ahc ahd amr cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;309b&quot;&gt;The confusion between A/A testing and A/B testing&lt;/h3&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco aec acq acr acs aed acu acv acw aee acy acz ada aef adc add ade aeg adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;0888&quot;&gt;I was always confused as to why A/A and A/B testing are needed. If you are also in the same state, here is a crude example that may simplify it.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;d010&quot;&gt;&lt;strong class=&quot;acn jz&quot;&gt;A/A Testing: The Paranoid Caterer&lt;/strong&gt;&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;c417&quot;&gt;You are catering a wedding. You make one giant pot of biryani. You serve it to Table 1 and Table 2 from the same pot, same quantity, same everything.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;9bc7&quot;&gt;Table 1 finishes 95 plates. Table 2 finishes 30 plates.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;7057&quot;&gt;You have not changed anything. Both tables got identical food. So why is Table 2 eating so little?&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;b3cb&quot;&gt;You investigate. Turns out the waiter assigned to Table 2 was busy on his phone and forgot to refill the serving bowls.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;be7f&quot;&gt;The biryani was not the problem. The delivery system was broken.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;4a44&quot;&gt;That is an A/A test. Before you start testing new recipes, you confirm that the serving system itself is not lying to you.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;ea93&quot;&gt;&lt;strong class=&quot;acn jz&quot;&gt;A/B Testing: The Sensible Caterer&lt;/strong&gt;&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;9ba3&quot;&gt;Same wedding. You make two versions of biryani. Version A has the usual spice level. Version B has a little more pepper because your cousin who went to Bangalore said people there like it spicy now.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;f6e7&quot;&gt;You serve Version A to the left side of the hall and Version B to the right side. You count which side finishes faster, asks for seconds more often, and complains less to the mother of the bride.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;c1dd&quot;&gt;One change. One comparison. One winner.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;2150&quot;&gt;You do not also change the raita, the naan, the serving bowl size, and the background music at the same time. Because if the right side loved it, you will never know if it was the pepper or the fact that the DJ on that side was finally playing something decent.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;11a1&quot;&gt;So:&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;7f85&quot;&gt;&lt;strong class=&quot;acn jz&quot;&gt;A/B test: “Which version is better?”&lt;br /&gt; A/A test: “Can I trust the test setup?”&lt;/strong&gt;&lt;/p&gt;&lt;h3 class=&quot;amh adu wq z adv ami amj amk kd aml amm amn kh acw amo agy agz ada amp aha ahb ade amq ahc ahd amr cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;52d9&quot;&gt;3. Split URL Testing&lt;/h3&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco aec acq acr acs aed acu acv acw aee acy acz ada aef adc add ade aeg adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;1477&quot;&gt;A standard A/B test usually changes something on the same page. The URL stays the same and the testing tool modifies what users see. Split URL testing is different: users are sent to entirely different URLs.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;9085&quot;&gt;Control: /pricing. Variant: /pricing-v2. Traffic is split between them.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;6b07&quot;&gt;Use this when the change is large enough that modifying the existing page gets messy. Major redesigns, completely different landing page structures, new checkout flows, testing a long-form page against a shorter one. If it is a minor copy tweak, A/B is faster and simpler. If you are rebuilding the page from scratch, Split URL is cleaner.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;f7fc&quot;&gt;The infrastructure analogy is blue-green deployment: two versions running simultaneously, traffic routed between them at the experimentation layer instead of the load balancer. Same principle, different domain.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;1f05&quot;&gt;One thing to watch carefully: tracking consistency. Both pages need to fire the same analytics events and conversion tracking correctly. A common mistake is having GA4 or pixel tracking set up on the original page but missing or misconfigured on the variant. When that happens, the variant looks like it is losing when the actual problem is your observability. As DevOps people know well, bad telemetry makes healthy systems look broken.&lt;/p&gt;&lt;figure class=&quot;aei aej aek ael aem acb abt abu paragraph-image&quot;&gt;&lt;div class=&quot;acc acd bb ace bz acf&quot; role=&quot;button&quot; tabindex=&quot;0&quot;&gt;&lt;span class=&quot;be bf bg i bh bi bj bk bl speechify-ignore&quot;&gt;Press enter or click to view image in full size&lt;/span&gt;&lt;div class=&quot;abt abu ams&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot;&gt;&lt;/source&gt;&lt;source data-testid=&quot;og&quot;&gt;&lt;/source&gt;&lt;img alt=&quot;&quot; class=&quot;bz abe acg c&quot; height=&quot;525&quot; role=&quot;presentation&quot; src=&quot;https://miro.medium.com/v2/resize:fit:1400/1*PgjRO-HPFc4jHFjQYE74Ww.png&quot; width=&quot;700&quot; /&gt;&lt;/picture&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;h3 class=&quot;amh adu wq z adv ami amj amk kd aml amm amn kh acw amo agy agz ada amp aha ahb ade amq ahc ahd amr cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;4a25&quot;&gt;4. Multivariate Testing&lt;/h3&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco aec acq acr acs aed acu acv acw aee acy acz ada aef adc add ade aeg adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;6817&quot;&gt;A/B testing changes one element at a time. Multivariate testing (MVT) changes multiple elements and tests every combination of them simultaneously.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;59cd&quot;&gt;Say you want to test two headlines and two hero images. MVT creates four combinations: Headline 1 + Image A, Headline 1 + Image B, Headline 2 + Image A, Headline 2 + Image B. Traffic is split across all four.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;ee21&quot;&gt;The benefit is finding the best combination without running four separate sequential tests. The downside is traffic dilution: more combinations means each version gets a smaller slice of traffic, which means it takes longer to reach a reliable result.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;b670&quot;&gt;This is why MVT is better suited for high-traffic pages. On a low-traffic site, running multivariate tests is like spinning up a four-node Kubernetes cluster to host a static HTML page. Technically possible. Practically painful.&lt;/p&gt;&lt;div class=&quot;nm am&quot;&gt;&lt;div class=&quot;e&quot;&gt;&lt;a class=&quot;as x au ci aw ab ax i ac ae af ag ah ai aj am&quot; href=&quot;https://events.zoom.us/ev/AjBDzTIgBOjbXyyuF_i2JHKceeuBRp1dycq5phbyKx5EiRMkuSIE~ArkW9LST0g8ykivRZyFH3rRErP9ufAxV9j5V344fZoBICauQAZumvmLfFw?source=promotion_paragraph---post_body_banner_the_writers_circle--79eaa47b2869-----------------------------------------&quot; rel=&quot;noopener  ugc nofollow&quot; target=&quot;_blank&quot;&gt;&lt;picture&gt;&lt;source media=&quot;(max-width: 551.98px)&quot;&gt;&lt;/source&gt;&lt;source media=&quot;(min-width: 552px) and (max-width: 727.98px)&quot;&gt;&lt;/source&gt;&lt;source media=&quot;(min-width: 728px) and (max-width: 903.98px)&quot;&gt;&lt;/source&gt;&lt;source media=&quot;(min-width: 904px) and (max-width: 1079.98px)&quot;&gt;&lt;/source&gt;&lt;source media=&quot;(min-width: 1080px)&quot;&gt;&lt;/source&gt;&lt;img alt=&quot;Join The Writer&#39;s Circle event&quot; class=&quot;bz&quot; /&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acq acr acs acu acv acw acy acz ada adc add ade adg adh nm adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;edd4&quot;&gt;If you are just getting started, stick to A/B tests until you have enough traffic and enough process confidence to justify MVT.&lt;/p&gt;&lt;figure class=&quot;aei aej aek ael aem acb abt abu paragraph-image&quot;&gt;&lt;div class=&quot;acc acd bb ace bz acf&quot; role=&quot;button&quot; tabindex=&quot;0&quot;&gt;&lt;span class=&quot;be bf bg i bh bi bj bk bl speechify-ignore&quot;&gt;Press enter or click to view image in full size&lt;/span&gt;&lt;div class=&quot;abt abu ams&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot;&gt;&lt;/source&gt;&lt;source data-testid=&quot;og&quot;&gt;&lt;/source&gt;&lt;img alt=&quot;&quot; class=&quot;bz abe acg c&quot; height=&quot;525&quot; role=&quot;presentation&quot; src=&quot;https://miro.medium.com/v2/resize:fit:1400/1*PKEclMIEyvYT6jZHv4qndQ.png&quot; width=&quot;700&quot; /&gt;&lt;/picture&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;h3 class=&quot;amh adu wq z adv ami amj amk kd aml amm amn kh acw amo agy agz ada amp aha ahb ade amq ahc ahd amr cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;8b37&quot;&gt;Confused between Split URL and Multivariate?&lt;/h3&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco aec acq acr acs aed acu acv acw aee acy acz ada aef adc add ade aeg adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;99f8&quot;&gt;Here’s the crude example:&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;4dc0&quot;&gt;&lt;strong class=&quot;acn jz&quot;&gt;Split URL Testing: The Ambitious Caterer&lt;/strong&gt;&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;6bea&quot;&gt;This caterer is not making a variation of the existing menu. He has built two entirely separate stalls on opposite ends of the lawn.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;1b00&quot;&gt;Stall A is the traditional setup: biryani, raita, gulab jamun, done.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;4097&quot;&gt;Stall B is the “fusion experience”: biryani bowls, deconstructed raita in shot glasses, and gulab jamun on a stick with a QR code to leave a Google review.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;5279&quot;&gt;Half the guests are directed to Stall A and half to Stall B. You measure which stall has a longer queue, higher plate counts, and fewer people quietly throwing food in the dustbin.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;a959&quot;&gt;This is a Split URL test. You are not tweaking one element on an existing page. You have built two completely different pages and you are routing real traffic to both to see which one works.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;f034&quot;&gt;The infrastructure cousin of this is blue-green deployment. Same idea, different catering budget.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;3a78&quot;&gt;&lt;strong class=&quot;acn jz&quot;&gt;Multivariate Testing: The Caterer Who Has Lost the Plot&lt;/strong&gt;&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;24ca&quot;&gt;This person is testing:&lt;/p&gt;&lt;ul class=&quot;&quot;&gt;&lt;li class=&quot;acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;11c8&quot;&gt;2 types of biryani (chicken vs. mutton)&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;eac6&quot;&gt;2 types of raita (boondi vs. cucumber)&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;3bf9&quot;&gt;2 types of bread (naan vs. rumali roti)&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;e0f2&quot;&gt;2 types of dessert (gulab jamun vs. rasgulla)&lt;/li&gt;&lt;/ul&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;600b&quot;&gt;That is 16 combinations. You need 16 separate tables, each getting a different combination, and enough guests at each table to statistically prove which combination is the winner.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;05ea&quot;&gt;The wedding has 200 guests. You need at minimum 1,600 guests for the data to mean anything.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;f3ee&quot;&gt;You have invited 200.&lt;/p&gt;&lt;blockquote class=&quot;amt amu amv&quot;&gt;&lt;p class=&quot;acl acm aeh acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;b7b3&quot;&gt;You wont get that big venue on any of the wedding seasons, but lets just say… you did.&lt;/p&gt;&lt;/blockquote&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;80a1&quot;&gt;This is multivariate testing on a low-traffic website. The math does not work. The experiment runs for six months. By the time you have a result, the wedding is over, the couple has moved cities, and nobody remembers what the original research question was.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;1f82&quot;&gt;Run multivariate tests only when you have enough traffic that dividing it sixteen ways still leaves each slice statistically meaningful. Otherwise, stick to A/B.&lt;/p&gt;&lt;h3 class=&quot;amh adu wq z adv ami amj amk kd aml amm amn kh acw amo agy agz ada amp aha ahb ade amq ahc ahd amr cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;ad7f&quot;&gt;Heatmaps Are Research, Not Experiments&lt;/h3&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco aec acq acr acs aed acu acv acw aee acy acz ada aef adc add ade aeg adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;6fd0&quot;&gt;This was one of my early mental shifts, and it is worth being explicit about it.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;26b8&quot;&gt;A heatmap does not tell you what will win. It tells you what might be wrong.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;727c&quot;&gt;Click heatmaps show where users are clicking (and where they are not). Scroll heatmaps show how far down the page users travel before leaving. Session recordings are anonymized playbacks of real user journeys, where you can watch someone hesitate over your pricing table, try to click something that is not a link, or abandon a form halfway through.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;3e39&quot;&gt;None of these tools give you a winner. They give you a hypothesis.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;47e3&quot;&gt;Here is how the workflow actually connects: you open a heatmap for your pricing page and notice that most users never scroll past the first fold. Your main CTA button is near the bottom. Now you have a possible problem and a possible hypothesis: “If I move the CTA above the fold, more users will see it and click it.” You run an A/B test to confirm or deny it.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;5003&quot;&gt;The heatmap gave you the question. The A/B test gives you the answer.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;7c10&quot;&gt;That distinction matters because it stops you from treating research tools as decision-making tools. Heatmaps, recordings, analytics, and surveys help you decide what to test. Controlled experiments help you decide what to change.&lt;/p&gt;&lt;h3 class=&quot;amh adu wq z adv ami amj amk kd aml amm amn kh acw amo agy agz ada amp aha ahb ade amq ahc ahd amr cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;b453&quot;&gt;The Formula That Changed How I Think About All of This&lt;/h3&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco aec acq acr acs aed acu acv acw aee acy acz ada aef adc add ade aeg adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;75dd&quot;&gt;&lt;strong class=&quot;acn jz&quot;&gt;Success = Chance × Frequency&lt;/strong&gt;&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;5d80&quot;&gt;Success is the number of winning experiments you produce in a year. Chance is your win rate, the percentage of experiments that produce a meaningful positive result. Frequency is how many experiments you run per month.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;36d9&quot;&gt;Now run the numbers with me.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;17a7&quot;&gt;Team A wants every test to be excellent. They spend weeks on research, debate every design decision, and get thorough sign-off before anything ships. Their win rate is high, say 100%. But all that effort means they can only run one test per month. Twelve winners a year.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;9073&quot;&gt;Team B is less precious about each individual test. Their research is decent but not exhaustive. Their win rate is only 25%. But they run eight tests a month. Twenty-four winners a year.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;a89a&quot;&gt;Worse hit rate. Double the output.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;f256&quot;&gt;This is not an argument for carelessness. Bad experiments waste time, and random button-color testing is still random button-color testing. But it is a clear argument against perfectionism as a strategy. The team that ships eight decent experiments a month will outlearn and outperform the team that ships one perfect experiment a month, almost every time.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;a036&quot;&gt;If this sounds familiar, it should. DevOps made the same argument against waterfall delivery years ago. Smaller releases, shipped more often, create faster feedback loops. You learn sooner, recover faster, and stop treating every release like a quarterly ceremony. CRO has the same rhythm: define the hypothesis, design a clean test, ship it, measure it, document the learning, and move on. The goal is not to win every test. The goal is to learn fast enough that your wins compound.&lt;/p&gt;&lt;h3 class=&quot;amh adu wq z adv ami amj amk kd aml amm amn kh acw amo agy agz ada amp aha ahb ade amq ahc ahd amr cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;ea70&quot;&gt;A Note on Statistical Significance&lt;/h3&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco aec acq acr acs aed acu acv acw aee acy acz ada aef adc add ade aeg adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;b5dc&quot;&gt;Every testing tool gives you some version of a confidence percentage as your test runs. This tells you how likely it is that the result you are seeing is real and not just random variation. Most practitioners aim for 95% confidence before calling a winner.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;177d&quot;&gt;But one of the most common beginner mistakes is stopping a test early because the numbers look exciting on Day 2. Early data is noisy. Weekday and weekend behavior can differ. Email campaigns, seasonality, and traffic source changes can all skew early results. A variant that looks like it is winning after 200 visitors may look very different after 4,000.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;b274&quot;&gt;Let tests run for at least one full week, preferably two, before drawing conclusions.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;3d87&quot;&gt;And here is the question I now ask before trusting any result: not just “Did the tool say 95%?” but “Do I trust how we got to 95%?” The number matters. So does sample size, test duration, traffic quality, and whether the tracking was set up cleanly to begin with.&lt;/p&gt;&lt;h3 class=&quot;amh adu wq z adv ami amj amk kd aml amm amn kh acw amo agy agz ada amp aha ahb ade amq ahc ahd amr cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;65b2&quot;&gt;What Should You Run First?&lt;/h3&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco aec acq acr acs aed acu acv acw aee acy acz ada aef adc add ade aeg adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;122f&quot;&gt;If this feels like a lot, start small. Here is the beginner loop I would follow:&lt;/p&gt;&lt;ol class=&quot;&quot;&gt;&lt;li class=&quot;acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi amw afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;e200&quot;&gt;Run an A/A test to confirm your measurement setup is reliable.&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi amw afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;c5b4&quot;&gt;Pick one high-traffic page with a clear conversion goal.&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi amw afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;a613&quot;&gt;Use heatmaps, session recordings, or analytics to find one point of friction.&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi amw afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;d8bb&quot;&gt;Write a hypothesis using the “If I change X, then Y, because Z” format.&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi amw afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;b532&quot;&gt;Run one clean A/B test.&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi amw afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;f2e9&quot;&gt;Let it run long enough to collect meaningful data (at least one week).&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi amw afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;f9c7&quot;&gt;Document what happened, win or lose.&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi amw afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;4251&quot;&gt;Repeat.&lt;/li&gt;&lt;/ol&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;b10a&quot;&gt;That loop is what CRO actually is, more than any specific tool or technique. Observe, hypothesize, test, learn, repeat. The experiment types are just the mechanics. The real skill is building a habit of running the loop consistently, and gradually running it faster.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;a368&quot;&gt;In the next post, I will get into prioritization: how to decide which test to run when you have more ideas than time, and how to build a backlog driven by data rather than whoever spoke loudest in the last meeting.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;4e14&quot;&gt;&lt;em class=&quot;aeh&quot;&gt;I work with Convert.com and write about the intersection of DevOps and experimentation. If you are a technical person finding your footing in CRO, drop a comment or reach out. Happy to compare notes.&lt;/em&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://roshannagekar.blogspot.com/feeds/3186289340137017528/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2838270249296465765/3186289340137017528?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2838270249296465765/posts/default/3186289340137017528'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2838270249296465765/posts/default/3186289340137017528'/><link rel='alternate' type='text/html' href='http://roshannagekar.blogspot.com/2026/06/part-2-experiments-that-actually-move.html' title='Part 2: The Experiments That Actually Move the Number'/><author><name>Roshan Nagekar</name><uri>http://www.blogger.com/profile/08009772289480467450</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2838270249296465765.post-6050391426721457605</id><published>2026-05-11T01:19:00.000-07:00</published><updated>2026-09-21T01:21:48.698-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="abtesting"/><category scheme="http://www.blogger.com/atom/ns#" term="aiagents"/><category scheme="http://www.blogger.com/atom/ns#" term="artificalintelligence"/><category scheme="http://www.blogger.com/atom/ns#" term="automation"/><category scheme="http://www.blogger.com/atom/ns#" term="conversionrateoptimization"/><category scheme="http://www.blogger.com/atom/ns#" term="cro"/><category scheme="http://www.blogger.com/atom/ns#" term="Devops"/><category scheme="http://www.blogger.com/atom/ns#" term="marketing"/><category scheme="http://www.blogger.com/atom/ns#" term="sales"/><title type='text'>From Apache Benchmark to A/B Testing, A DevOps Guy’s CRO Journey</title><content type='html'>&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;img alt=&quot;&quot; class=&quot;bz abe acg c&quot; height=&quot;414&quot; role=&quot;presentation&quot; src=&quot;https://miro.medium.com/v2/resize:fit:1400/1*9kjWypkr61zsHO6zmWNLfQ.png&quot; width=&quot;621&quot; /&gt;&lt;/p&gt;&lt;div class=&quot;he wm wn qu wo&quot;&gt;&lt;div class=&quot;am dp&quot;&gt;&lt;div class=&quot;dq bz dr ds dt du&quot;&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;d119&quot;&gt;When my manager first mentioned A/B testing, I nodded confidently. I knew exactly what it was.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;b4f0&quot;&gt;Except I didn’t.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;c018&quot;&gt;In my head, “A/B testing” meant &lt;strong class=&quot;acn jz&quot;&gt;Apache Benchmark&lt;/strong&gt;, the &lt;code class=&quot;cx adj adk adl adm b&quot;&gt;ab&lt;/code&gt; command-line tool DevOps engineers use to hammer HTTP servers and measure throughput. Requests per second. Latency percentiles. That kind of A/B testing.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;3db6&quot;&gt;What followed was a humbling unlearning. Concepts like Conversion Rate Optimization, variations, Split URL tests, A/A tests, I was reading all of this through a server engineer’s lens and none of it made sense at first. Why run experiments? Why not just change the code, redeploy, and see what happens?&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;da8f&quot;&gt;That was my first mistake. And if you’re a technical person stepping into the world of CRO, you’ll probably make it too.&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;am dp mi adn ado adp&quot; role=&quot;separator&quot;&gt;&lt;span class=&quot;adq cs ar adr ads fc&quot;&gt;&lt;/span&gt;&lt;span class=&quot;adq cs ar adr ads fc&quot;&gt;&lt;/span&gt;&lt;span class=&quot;adq cs ar adr ads&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;he wm wn qu wo&quot;&gt;&lt;div class=&quot;am dp&quot;&gt;&lt;div class=&quot;dq bz dr ds dt du&quot;&gt;&lt;h2 class=&quot;adt adu wq z adv ka adw kb kd ke adx kf kh ga ady gb gi kk adz kl ko kp aea kq kt aeb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;b3fc&quot;&gt;So, What Actually Is CRO?&lt;/h2&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco aec acq acr acs aed acu acv acw aee acy acz ada aef adc add ade aeg adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;1de2&quot;&gt;Let me skip the textbook definition and use a story instead.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;3f3f&quot;&gt;Say you’re selling a bestselling book online. You’re running ads, offering discounts, the traffic numbers look decent, but conversions are low. People are landing on your page and leaving. You’ve checked the backend, the server is healthy, the page loads fast. As a DevOps engineer, you’d call this “nothing to fix.”&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;c20f&quot;&gt;But something &lt;em class=&quot;aeh&quot;&gt;is&lt;/em&gt; broken, just not in the infrastructure.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;82b7&quot;&gt;&lt;strong class=&quot;acn jz&quot;&gt;Conversion Rate Optimization (CRO)&lt;/strong&gt; is the practice of understanding &lt;em class=&quot;aeh&quot;&gt;why&lt;/em&gt; visitors don’t convert, and systematically fixing it through experimentation. You introduce a change, a different headline, a reordered checkout flow, a new CTA button color, mark it as Variation A or Variation B, measure which one converts better, and iterate.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;77ed&quot;&gt;Simple math:&lt;/p&gt;&lt;pre class=&quot;aei aej aek ael aem aen adm aeo rj ri bv cc&quot;&gt;&lt;span class=&quot;aep adu wq adm b by aeq aer e aes aet&quot; data-selectable-paragraph=&quot;&quot; id=&quot;1583&quot;&gt;&lt;span class=&quot;hljs-type&quot;&gt;Conversion&lt;/span&gt; &lt;span class=&quot;hljs-variable&quot;&gt;Rate&lt;/span&gt; &lt;span class=&quot;hljs-operator&quot;&gt;=&lt;/span&gt; (Conversions / Total Visitors) × &lt;span class=&quot;hljs-number&quot;&gt;100&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;bec1&quot;&gt;If 10 out of 100 visitors buy your book, your conversion rate is 10%. A CRO practitioner’s job is to move that number, but more importantly, to &lt;em class=&quot;aeh&quot;&gt;understand why&lt;/em&gt; it moved.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;3a7a&quot;&gt;That last part matters. A random change that boosts conversions is luck. Understanding the reason behind the boost, that’s CRO.&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;am dp mi adn ado adp&quot; role=&quot;separator&quot;&gt;&lt;span class=&quot;adq cs ar adr ads fc&quot;&gt;&lt;/span&gt;&lt;span class=&quot;adq cs ar adr ads fc&quot;&gt;&lt;/span&gt;&lt;span class=&quot;adq cs ar adr ads&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;he wm wn qu wo&quot;&gt;&lt;div class=&quot;am dp&quot;&gt;&lt;div class=&quot;dq bz dr ds dt du&quot;&gt;&lt;h2 class=&quot;adt adu wq z adv ka adw kb kd ke adx kf kh ga ady gb gi kk adz kl ko kp aea kq kt aeb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;c4fa&quot;&gt;The Hidden Cost of Ignoring CRO&lt;/h2&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco aec acq acr acs aed acu acv acw aee acy acz ada aef adc add ade aeg adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;43e9&quot;&gt;Here’s a pattern that plays out more often than it should:&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;4252&quot;&gt;A business pours budget into ad campaigns. Traffic surges. Conversions don’t. They spend more on ads. Still nothing. Eventually someone realizes the problem wasn’t the ad, it was the landing page. Confusing layout, unclear value proposition, a checkout flow that made users feel unsafe.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;354b&quot;&gt;By then, they’ve burned through their budget chasing the wrong problem.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;11e2&quot;&gt;CRO tools exist to surface these issues before they become expensive. &lt;strong class=&quot;acn jz&quot;&gt;Heatmaps&lt;/strong&gt; show you where users click (and where they don’t). &lt;strong class=&quot;acn jz&quot;&gt;Session recordings&lt;/strong&gt; let you literally watch a user struggle with your UI. &lt;strong class=&quot;acn jz&quot;&gt;Exit-intent surveys&lt;/strong&gt; catch people right as they’re leaving and ask them why. These aren’t vanity metrics, they’re diagnostic tools.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;4a85&quot;&gt;As someone who spends a lot of time on observability and monitoring in DevOps, I found this framing familiar: &lt;em class=&quot;aeh&quot;&gt;if you can’t measure it, you can’t fix it.&lt;/em&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;am dp mi adn ado adp&quot; role=&quot;separator&quot;&gt;&lt;span class=&quot;adq cs ar adr ads fc&quot;&gt;&lt;/span&gt;&lt;span class=&quot;adq cs ar adr ads fc&quot;&gt;&lt;/span&gt;&lt;span class=&quot;adq cs ar adr ads&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;he wm wn qu wo&quot;&gt;&lt;div class=&quot;am dp&quot;&gt;&lt;div class=&quot;dq bz dr ds dt du&quot;&gt;&lt;h2 class=&quot;adt adu wq z adv ka adw kb kd ke adx kf kh ga ady gb gi kk adz kl ko kp aea kq kt aeb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;8a1f&quot;&gt;Before You Start: Is CRO Even Right for You?&lt;/h2&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco aec acq acr acs aed acu acv acw aee acy acz ada aef adc add ade aeg adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;2eaf&quot;&gt;This is a question I wish someone had asked me earlier.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;7758&quot;&gt;&lt;strong class=&quot;acn jz&quot;&gt;A/B testing requires traffic.&lt;/strong&gt; Without enough visitors, you can’t achieve statistical significance, the confidence level that tells you a result is real and not just noise. Most CRO practitioners aim for 95% confidence, ideally 99%.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;a87e&quot;&gt;Here’s an analogy that clicked for me:&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;9f60&quot;&gt;Flip a coin 3 times, get heads all 3 times. Is the coin rigged? Hard to say, could be luck. Flip it 1,000 times and get heads 900 times. Now you’re pretty sure something’s off.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;7684&quot;&gt;That “pretty sure” feeling, measured as a percentage, is your confidence level.&lt;/p&gt;&lt;div class=&quot;nm am&quot;&gt;&lt;div class=&quot;e&quot;&gt;&lt;a class=&quot;as x au ci aw ab ax i ac ae af ag ah ai aj am&quot; data-discover=&quot;true&quot; href=&quot;https://medium.com/choose?source=promotion_paragraph---post_body_banner_no_hate--5ff76a502363-----------------------------------------&quot; rel=&quot;noopener follow&quot;&gt;&lt;picture&gt;&lt;source media=&quot;(max-width: 551.98px)&quot;&gt;&lt;/source&gt;&lt;source media=&quot;(min-width: 552px) and (max-width: 727.98px)&quot;&gt;&lt;/source&gt;&lt;source media=&quot;(min-width: 728px) and (max-width: 903.98px)&quot;&gt;&lt;/source&gt;&lt;source media=&quot;(min-width: 904px) and (max-width: 1079.98px)&quot;&gt;&lt;/source&gt;&lt;source media=&quot;(min-width: 1080px)&quot;&gt;&lt;/source&gt;&lt;img alt=&quot;Learn about Medium’s values&quot; class=&quot;bz&quot; /&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acq acr acs acu acv acw acy acz ada adc add ade adg adh nm adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;ca5c&quot;&gt;If your site gets 200 visitors a month, running a statistically valid A/B test is going to take a very long time. Many A/B testing platforms offer sample size calculators, use them before committing to a test.&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;am dp mi adn ado adp&quot; role=&quot;separator&quot;&gt;&lt;span class=&quot;adq cs ar adr ads fc&quot;&gt;&lt;/span&gt;&lt;span class=&quot;adq cs ar adr ads fc&quot;&gt;&lt;/span&gt;&lt;span class=&quot;adq cs ar adr ads&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;he wm wn qu wo&quot;&gt;&lt;div class=&quot;am dp&quot;&gt;&lt;div class=&quot;dq bz dr ds dt du&quot;&gt;&lt;h2 class=&quot;adt adu wq z adv ka adw kb kd ke adx kf kh ga ady gb gi kk adz kl ko kp aea kq kt aeb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;17d5&quot;&gt;A Framework for Getting Started&lt;/h2&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco aec acq acr acs aed acu acv acw aee acy acz ada aef adc add ade aeg adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;2d45&quot;&gt;When I started approaching CRO with more structure, things got clearer. Here’s the sequence that worked for me:&lt;/p&gt;&lt;h2 class=&quot;adt adu wq z adv ka aeu kb kd ke aev kf kh ga aew gb gi kk aex kl ko kp aey kq kt aeb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;b72a&quot;&gt;1. Define a Goal First&lt;/h2&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco aec acq acr acs aed acu acv acw aee acy acz ada aef adc add ade aeg adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;89e4&quot;&gt;Don’t open a heatmap tool and start poking around without knowing what you’re looking for. Start with a concrete goal:&lt;/p&gt;&lt;ul class=&quot;&quot;&gt;&lt;li class=&quot;acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;8116&quot;&gt;Increase revenue by X% in Y days&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;fcee&quot;&gt;Grow the customer base by Z%&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;6ac2&quot;&gt;Improve feature adoption on a specific page&lt;/li&gt;&lt;/ul&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;a6e9&quot;&gt;Each goal points to a different strategy:&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;c9d0&quot;&gt;GoalLeverIncrease revenueUpsells, pricing page clarityBigger customer baseBetter UX, reduced frictionIncrease engagementFeature discovery, onboarding flow&lt;/p&gt;&lt;h2 class=&quot;adt adu wq z adv ka aeu kb kd ke aev kf kh ga aew gb gi kk aex kl ko kp aey kq kt aeb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;373d&quot;&gt;2. Audit Your Site&lt;/h2&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco aec acq acr acs aed acu acv acw aee acy acz ada aef adc add ade aeg adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;7fda&quot;&gt;At a &lt;a class=&quot;as rc&quot; href=&quot;https://optiphoenix.com/d2c-roundtable&quot; rel=&quot;noopener ugc nofollow&quot; target=&quot;_blank&quot;&gt;D2C roundtable conference&lt;/a&gt; I attended, participants were split into groups and given websites to audit, armed with CRO cards listing what to look for. Are visitors able to find what they need? Is the checkout frictionless? How long does the full journey take?&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;98e0&quot;&gt;One presenter, &lt;a class=&quot;as rc&quot; href=&quot;https://www.linkedin.com/in/gursimran-gujral-6b0a4724/&quot; rel=&quot;noopener ugc nofollow&quot; target=&quot;_blank&quot;&gt;Gursimran Gujral&lt;/a&gt; (Co-Founder at OptiPhoenix), walked through a heatmap that had driven several of their key CRO decisions. Seeing a real example in action made the whole framework concrete.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;f1f5&quot;&gt;Auditing before testing gives you hypotheses. Hypotheses give your tests direction. A good hypothesis follows a simple structure: “If I change X, then Y will happen, because Z.” That “because” is what separates informed testing from random tinkering.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;a53f&quot;&gt;An example: If I change the CTA button text from &lt;em class=&quot;aeh&quot;&gt;‘Buy Now’&lt;/em&gt; to &lt;em class=&quot;aeh&quot;&gt;‘Get Your Copy Today’&lt;/em&gt;, then more visitors will click through to checkout, because the new copy feels less transactional and creates a sense of ownership.&lt;/p&gt;&lt;h2 class=&quot;adt adu wq z adv ka aeu kb kd ke aev kf kh ga aew gb gi kk aex kl ko kp aey kq kt aeb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;6900&quot;&gt;3. Pick the Right Tools&lt;/h2&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco aec acq acr acs aed acu acv acw aee acy acz ada aef adc add ade aeg adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;c986&quot;&gt;You don’t need everything at once. Start with one tool per job:&lt;/p&gt;&lt;ul class=&quot;&quot;&gt;&lt;li class=&quot;acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;d7ed&quot;&gt;&lt;strong class=&quot;acn jz&quot;&gt;User behavior&lt;/strong&gt;: &lt;a class=&quot;as rc&quot; href=&quot;https://clarity.microsoft.com/&quot; rel=&quot;noopener ugc nofollow&quot; target=&quot;_blank&quot;&gt;Microsoft Clarity&lt;/a&gt; (free) or &lt;a class=&quot;as rc&quot; href=&quot;https://www.hotjar.com/&quot; rel=&quot;noopener ugc nofollow&quot; target=&quot;_blank&quot;&gt;Hotjar&lt;/a&gt;, heatmaps, session recordings&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;2fc0&quot;&gt;&lt;strong class=&quot;acn jz&quot;&gt;A/B / Split URL / Multivariate testing&lt;/strong&gt;: &lt;a class=&quot;as rc&quot; href=&quot;https://www.convert.com/&quot; rel=&quot;noopener ugc nofollow&quot; target=&quot;_blank&quot;&gt;Convert.com&lt;/a&gt;, robust experimentation platform&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;b9a2&quot;&gt;&lt;strong class=&quot;acn jz&quot;&gt;Funnel analysis&lt;/strong&gt;: GA4 + LookerStudio, track where users drop off&lt;/li&gt;&lt;/ul&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;0d6b&quot;&gt;Analytics alone won’t get you there. You need a dedicated testing tool to run controlled experiments.&lt;/p&gt;&lt;h2 class=&quot;adt adu wq z adv ka aeu kb kd ke aev kf kh ga aew gb gi kk aex kl ko kp aey kq kt aeb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;bba5&quot;&gt;4. Run Tests with Patience&lt;/h2&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco aec acq acr acs aed acu acv acw aee acy acz ada aef adc add ade aeg adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;fce1&quot;&gt;One of the most common beginner mistakes is stopping a test too early because the early numbers look good (or bad). Let tests run for &lt;strong class=&quot;acn jz&quot;&gt;at least a week&lt;/strong&gt; to account for day-of-week behavior differences. Trust the confidence interval, not your gut.&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;am dp mi adn ado adp&quot; role=&quot;separator&quot;&gt;&lt;span class=&quot;adq cs ar adr ads fc&quot;&gt;&lt;/span&gt;&lt;span class=&quot;adq cs ar adr ads fc&quot;&gt;&lt;/span&gt;&lt;span class=&quot;adq cs ar adr ads&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;he wm wn qu wo&quot;&gt;&lt;div class=&quot;am dp&quot;&gt;&lt;div class=&quot;dq bz dr ds dt du&quot;&gt;&lt;h2 class=&quot;adt adu wq z adv ka adw kb kd ke adx kf kh ga ady gb gi kk adz kl ko kp aea kq kt aeb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;161e&quot;&gt;Resources Worth Your Time&lt;/h2&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco aec acq acr acs aed acu acv acw aee acy acz ada aef adc add ade aeg adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;9a1a&quot;&gt;These are the ones I actually found useful, not just names I’m dropping:&lt;/p&gt;&lt;ul class=&quot;&quot;&gt;&lt;li class=&quot;acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;8b5d&quot;&gt;&lt;strong class=&quot;acn jz&quot;&gt;Ruben de Boer’s courses: &lt;/strong&gt;practical, tool-focused, good for getting hands-on fast&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;32ce&quot;&gt;&lt;strong class=&quot;acn jz&quot;&gt;CXL’s CRO Fundamentals&lt;/strong&gt;: more rigorous, worth it if you want depth over speed&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;f307&quot;&gt;&lt;strong class=&quot;acn jz&quot;&gt;MeasureSchool on YouTube&lt;/strong&gt;: excellent for GA4, GTM, and LookerStudio workflows&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;a121&quot;&gt;&lt;strong class=&quot;acn jz&quot;&gt;Baymard Institute&lt;/strong&gt;: research-backed UX analysis, great for e-commerce audits&lt;/li&gt;&lt;li class=&quot;acl acm wq acn b aco afc acq acr acs afd acu acv acw afe acy acz ada aff adc add ade afg adg adh adi aez afa afb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;026d&quot;&gt;&lt;strong class=&quot;acn jz&quot;&gt;Robert Cialdini’s &lt;em class=&quot;aeh&quot;&gt;Influence: The Psychology of Persuasion: &lt;/em&gt;&lt;/strong&gt;understanding &lt;em class=&quot;aeh&quot;&gt;why&lt;/em&gt; humans behave on pages is half the battle&lt;/li&gt;&lt;/ul&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;a0a7&quot;&gt;For practice: volunteer your CRO skills to NGOs or small businesses. Real traffic on real sites teaches you things no course can.&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;am dp mi adn ado adp&quot; role=&quot;separator&quot;&gt;&lt;span class=&quot;adq cs ar adr ads fc&quot;&gt;&lt;/span&gt;&lt;span class=&quot;adq cs ar adr ads fc&quot;&gt;&lt;/span&gt;&lt;span class=&quot;adq cs ar adr ads&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;he wm wn qu wo&quot;&gt;&lt;div class=&quot;am dp&quot;&gt;&lt;div class=&quot;dq bz dr ds dt du&quot;&gt;&lt;h2 class=&quot;adt adu wq z adv ka adw kb kd ke adx kf kh ga ady gb gi kk adz kl ko kp aea kq kt aeb cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;0a71&quot;&gt;The Real Takeaway&lt;/h2&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco aec acq acr acs aed acu acv acw aee acy acz ada aef adc add ade aeg adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;14d2&quot;&gt;CRO isn’t a bag of tricks. It’s a discipline built on measurement, hypotheses, and patience, things that, honestly, aren’t that different from good DevOps practice.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;d17f&quot;&gt;You instrument. You observe. You form a hypothesis. You test. You learn.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;0518&quot;&gt;The difference is that in DevOps, you’re optimizing for uptime and throughput. In CRO, you’re optimizing for human behavior. And humans, unlike servers, don’t always behave the way the logs suggest they should.&lt;/p&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;98b1&quot;&gt;That’s what makes it interesting, and why I’m still learning.&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;am dp mi adn ado adp&quot; role=&quot;separator&quot;&gt;&lt;span class=&quot;adq cs ar adr ads fc&quot;&gt;&lt;/span&gt;&lt;span class=&quot;adq cs ar adr ads fc&quot;&gt;&lt;/span&gt;&lt;span class=&quot;adq cs ar adr ads&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;he wm wn qu wo&quot;&gt;&lt;div class=&quot;am dp&quot;&gt;&lt;div class=&quot;dq bz dr ds dt du&quot;&gt;&lt;p class=&quot;pw-post-body-paragraph acl acm wq acn b aco acp acq acr acs act acu acv acw acx acy acz ada adb adc add ade adf adg adh adi he cc&quot; data-selectable-paragraph=&quot;&quot; id=&quot;42ab&quot;&gt;&lt;em class=&quot;aeh&quot;&gt;If you’re a technical person who’s crossed over into CRO or is curious about it, I’d love to hear your experience. Drop a comment or reach out.&lt;/em&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://roshannagekar.blogspot.com/feeds/6050391426721457605/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2838270249296465765/6050391426721457605?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2838270249296465765/posts/default/6050391426721457605'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2838270249296465765/posts/default/6050391426721457605'/><link rel='alternate' type='text/html' href='http://roshannagekar.blogspot.com/2026/05/from-apache-benchmark-to-ab-testing.html' title='From Apache Benchmark to A/B Testing, A DevOps Guy’s CRO Journey'/><author><name>Roshan Nagekar</name><uri>http://www.blogger.com/profile/08009772289480467450</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2838270249296465765.post-7714238903171037259</id><published>2026-05-10T23:44:00.000-07:00</published><updated>2026-09-20T23:50:23.845-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="aiagents"/><category scheme="http://www.blogger.com/atom/ns#" term="artificalintelligence"/><category scheme="http://www.blogger.com/atom/ns#" term="automation"/><category scheme="http://www.blogger.com/atom/ns#" term="Devops"/><category scheme="http://www.blogger.com/atom/ns#" term="Documentation"/><title type='text'> I said AI will mess up your docs. Scientists said hold my beer. </title><content type='html'>&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;AI generated image&quot; class=&quot;reader-cover-image__img evi-image lazy-image ember-view&quot; height=&quot;344&quot; id=&quot;ember414&quot; src=&quot;https://media.licdn.com/dms/image/v2/D5612AQFe1DLwglnVKQ/article-cover_image-shrink_720_1280/B56Z4XQKCZKEAU-/0/1778506579944?e=1791417600&amp;amp;v=beta&amp;amp;t=viG-gwr7lYVbmkQ_qA_Kl_qPrQTZjWT_AS7vp3WzQ7Q&quot; width=&quot;611&quot; /&gt;&amp;nbsp;&lt;/p&gt;&lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember435&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember435&quot;&gt;Last week&lt;span class=&quot;white-space-pre&quot;&gt; &lt;/span&gt;&lt;a class=&quot;oeKsuVZibZVkrJDbiVLhrdCYZvAakDtemxMao&quot; data-test-app-aware-link=&quot;&quot; href=&quot;https://www.linkedin.com/pulse/docs-code-ai-author-humans-reviewers-what-could-go-wrong-nagekar-qlb7c/&quot; tabindex=&quot;0&quot; target=&quot;_self&quot;&gt;I wrote about why you shouldn&#39;t trust AI blindly with your documentation&lt;/a&gt;.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember436&quot;&gt;
      I thought I was only being careful. Turns out, researchers just proved it, with actual numbers.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember437&quot;&gt;
      A&lt;span class=&quot;white-space-pre&quot;&gt; &lt;/span&gt;&lt;a class=&quot;oeKsuVZibZVkrJDbiVLhrdCYZvAakDtemxMao&quot; data-test-app-aware-link=&quot;&quot; href=&quot;https://arxiv.org/abs/2604.15597&quot; tabindex=&quot;0&quot; target=&quot;_self&quot;&gt;paper&lt;/a&gt;&lt;span class=&quot;white-space-pre&quot;&gt; &lt;/span&gt;dropped on arxiv last month(got posted in Hackernews yesterday). three researchers tested 19 AI models, gave them real document editing tasks across 52 different domains, coding, music, science, legal, you name it. And they just watched what happened over long workflows.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember438&quot;&gt;
      The results are not great.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember439&quot;&gt;
      Even the best models out there, GPT, Claude, Gemini, the ones we all use and trust, corrupted an average of 25% of document content by the end of long workflows. Is that 1 in 4 documents going silently wrong???
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember440&quot;&gt;
      And here is the part that really got me. It didn&#39;t crash. it didn&#39;t say &quot;hey I think I made a mistake.&quot;(It never does :) ) It just kept going. confidently. while quietly getting things wrong in the background. And the longer you let it run? the worse it gets.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember441&quot;&gt;
      Now here&#39;s the twist that I didn&#39;t expect.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember442&quot;&gt;
      Giving the AI more tools(which some debated earlier), making it a full agent with access to search, file systems, everything, didn&#39;t help. performance didn&#39;t improve. the corruption still happened.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember443&quot;&gt;
      Also, weaker models tend to just delete content. which is bad, but at least you can see it.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember444&quot;&gt;
      Stronger, smarter models? they don&#39;t delete. they corrupt. they change the meaning, subtly, in ways that look fine on the surface. that&#39;s actually scarier.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember445&quot;&gt;
      So last week when I said, build the guardrails before you turn on the automation, I wasn&#39;t just being cautious. now I have a research paper basically saying the same thing now.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember446&quot;&gt;
      Think about what this means for documentation specifically.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember447&quot;&gt;
      If your company is planning to let AI write or update your internal knowledge base, and you&#39;re thinking &quot;its fine, we&#39;re using a good model&quot;, this paper is saying 25% of that content could be silently wrong before anyone even notices.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember448&quot;&gt;
      Not broken. not obviously wrong. just, quietly corrupted.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember449&quot;&gt;
      So who&#39;s building the review layer?
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember450&quot;&gt;
      Because based on this research, the AI definitely isn&#39;t going to tell you it made a mistake.
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember451&quot;&gt;
      You can read the paper here :&lt;span class=&quot;white-space-pre&quot;&gt; &lt;/span&gt;&lt;a class=&quot;oeKsuVZibZVkrJDbiVLhrdCYZvAakDtemxMao&quot; data-test-app-aware-link=&quot;&quot; href=&quot;https://arxiv.org/abs/2604.15597&quot; tabindex=&quot;0&quot; target=&quot;_self&quot;&gt;https://arxiv.org/abs/2604.15597&lt;/a&gt;
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember452&quot;&gt;
      #AIAgents #Documentation #LLMs #KnowledgeManagement #AgentGovernance #DevOps
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember453&quot;&gt;
      &lt;i&gt;✏️ Drafted with AI assist, because practicing what I preach.&lt;/i&gt;
    &lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://roshannagekar.blogspot.com/feeds/7714238903171037259/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2838270249296465765/7714238903171037259?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2838270249296465765/posts/default/7714238903171037259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2838270249296465765/posts/default/7714238903171037259'/><link rel='alternate' type='text/html' href='http://roshannagekar.blogspot.com/2026/05/i-said-ai-will-mess-up-your-docs.html' title=' I said AI will mess up your docs. Scientists said hold my beer. '/><author><name>Roshan Nagekar</name><uri>http://www.blogger.com/profile/08009772289480467450</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2838270249296465765.post-6371116063341253776</id><published>2026-05-08T23:40:00.000-07:00</published><updated>2026-09-20T23:49:21.194-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="aiagents"/><category scheme="http://www.blogger.com/atom/ns#" term="automation"/><category scheme="http://www.blogger.com/atom/ns#" term="Devops"/><category scheme="http://www.blogger.com/atom/ns#" term="Documentation"/><category scheme="http://www.blogger.com/atom/ns#" term="KnowledgeManagement"/><title type='text'> Docs as code. AI as author. Humans as reviewers. What could go wrong? </title><content type='html'>&lt;link href=&quot;YOUR-URL&quot; rel=&quot;canonical&quot;&gt;&lt;/link&gt;
&lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember161&quot; style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;AI generated image&quot; class=&quot;reader-cover-image__img evi-image lazy-image ember-view&quot; height=&quot;313&quot; id=&quot;ember149&quot; src=&quot;https://media.licdn.com/dms/image/v2/D5612AQHtsrH4jge7Tg/article-cover_image-shrink_720_1280/B56Z4XRRyoH8AU-/0/1778506871411?e=1791417600&amp;amp;v=beta&amp;amp;t=6XsHR9CWNY7bFFI5ZZRSdnKLKtyAHo0aC9vDW2jJlUg&quot; width=&quot;555&quot; /&gt;&amp;nbsp;&lt;/p&gt;&lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember161&quot;&gt;&amp;nbsp;Last week we audited our company docs.&lt;span class=&quot;white-space-pre&quot;&gt; &lt;/span&gt;
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember162&quot;&gt;
      502 articles. 77 duplicates. Nobody knew which one was correct.&lt;span class=&quot;white-space-pre&quot;&gt; &lt;/span&gt;
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember163&quot;&gt;
      And this wasn&#39;t because people were lazy. Everyone was busy. Docs just... don&#39;t update themselves.&lt;span class=&quot;white-space-pre&quot;&gt; &lt;/span&gt;
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember164&quot;&gt;
      So we started asking, what if an AI did this?&lt;span class=&quot;white-space-pre&quot;&gt; &lt;/span&gt;
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember165&quot;&gt;
      What if instead of waiting for someone to update a document after a product change, an AI just does it automatically. Reads the release notes, finds the affected articles, rewrites them, sends a PR for human review.&lt;span class=&quot;white-space-pre&quot;&gt; &lt;/span&gt;
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember166&quot;&gt;
      Sounds great right?&lt;span class=&quot;white-space-pre&quot;&gt; &lt;/span&gt;
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember167&quot;&gt;
      It actually is. I genuinely think this is where documentation is going. Andrej Karpathy (the AI guy from Tesla and OpenAI) wrote about this — he called it the&lt;span class=&quot;white-space-pre&quot;&gt; &lt;/span&gt;&lt;a class=&quot;oeKsuVZibZVkrJDbiVLhrdCYZvAakDtemxMao&quot; data-test-app-aware-link=&quot;&quot; href=&quot;https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f&quot; tabindex=&quot;0&quot; target=&quot;_self&quot;&gt;LLM-owned wiki.&lt;/a&gt;&lt;span class=&quot;white-space-pre&quot;&gt; &lt;/span&gt;Humans write the rules. AI does the writing. Humans approve before it goes live.&lt;span class=&quot;white-space-pre&quot;&gt; &lt;/span&gt;
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember168&quot;&gt;
      Clean. Simple. Scalable.&lt;span class=&quot;white-space-pre&quot;&gt; &lt;/span&gt;
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember169&quot;&gt;
      But here&#39;s the thing nobody talks about.&lt;span class=&quot;white-space-pre&quot;&gt; &lt;/span&gt;
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember170&quot;&gt;
      In our own test, the AI gave us wrong pricing information. confidently. Like it had no doubt. it cited some random blog as a source and we almost missed it.&lt;span class=&quot;white-space-pre&quot;&gt; &lt;/span&gt;
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember171&quot;&gt;
      If we had set it to auto-approve, our customers would have read wrong info.&lt;span class=&quot;white-space-pre&quot;&gt; &lt;/span&gt;
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember172&quot;&gt;
      So before you get excited and just &quot;let AI handle the docs&quot;, ask yourself a few things:&lt;span class=&quot;white-space-pre&quot;&gt; &lt;/span&gt;
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember173&quot;&gt;
            &lt;/p&gt;&lt;ol&gt;&lt;li&gt;who is reviewing what the AI writes? (if its one person, you just created more work, not less)&lt;span class=&quot;white-space-pre&quot;&gt; &lt;/span&gt;&lt;/li&gt;&lt;li&gt;what rules has the AI been given? does it know what it can and cannot touch?&lt;span class=&quot;white-space-pre&quot;&gt; &lt;/span&gt;&lt;/li&gt;&lt;li&gt;Is someone watching it over time, or only at the start?&lt;span class=&quot;white-space-pre&quot;&gt; &lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;

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

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember174&quot;&gt;
      This is not about being anti-AI. I love where this is going.&lt;span class=&quot;white-space-pre&quot;&gt; &lt;/span&gt;
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember175&quot;&gt;
      But we don&#39;t deploy code to production without monitoring, access controls and alerts. why would we treat our company&#39;s knowledge base any different?&lt;span class=&quot;white-space-pre&quot;&gt; &lt;/span&gt;
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember176&quot;&gt;
      Automation without oversight is not progress. its just faster mistakes.&lt;span class=&quot;white-space-pre&quot;&gt; &lt;/span&gt;
    &lt;/p&gt;

  






            
        
    &lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember177&quot;&gt;
      The teams that get this right will build the guardrails first. then turn on the automation.&lt;span class=&quot;white-space-pre&quot;&gt; &lt;/span&gt;
    &lt;/p&gt;&lt;p class=&quot;ember-view reader-text-block__paragraph&quot; id=&quot;ember178&quot;&gt;
      What&#39;s your take — are you using AI for internal docs? how are you handling the review part?&lt;span class=&quot;white-space-pre&quot;&gt; &lt;/span&gt;
    &lt;/p&gt;
      &lt;i&gt;✏️ Drafted with AI assist, because practicing what I preach.&lt;/i&gt;
    </content><link rel='replies' type='application/atom+xml' href='http://roshannagekar.blogspot.com/feeds/6371116063341253776/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2838270249296465765/6371116063341253776?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2838270249296465765/posts/default/6371116063341253776'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2838270249296465765/posts/default/6371116063341253776'/><link rel='alternate' type='text/html' href='http://roshannagekar.blogspot.com/2026/05/docs-as-code-ai-as-author-humans-as.html' title=' Docs as code. AI as author. Humans as reviewers. What could go wrong? '/><author><name>Roshan Nagekar</name><uri>http://www.blogger.com/profile/08009772289480467450</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2838270249296465765.post-5931153991770708496</id><published>2021-01-22T08:35:00.003-08:00</published><updated>2021-01-22T08:40:57.957-08:00</updated><title type='text'>SkenAI&#39;s role in DevSecOps CI/CD pipeline</title><content type='html'>&lt;p&gt;&lt;span style=&quot;color: #fcff01;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;color: #fcff01;&quot;&gt;&lt;span style=&quot;background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;The term DevOps has pretty much revolutionized the entire IT industry. We have heard of different versions/definitions and nomenclature for different methods of adoption of the culture by different organizations. Some well known are NoOps, GitOps, ChatOps, TechOps, SecOps and there are surely many others out there. However, the introduction of all these “Ops” summarize a common pattern and understanding of speeding up the traditional Software Development Life Cycle using automation via tools, technologies and processes that would allow developers to focus only on code. As per organizational need whichever part of their process seems to be operating slow and introducing unnecessary delay, they would want to “Opsify” it.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;color: #fcff01;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;color: #fcff01;&quot;&gt;&lt;span style=&quot;background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;Over the last few years we have seen a lot of new tools being introduced in the DevOps world intended to bring in more efficiency and speed in the Software Development process. We have seen equal movement in the risk, threat and security field as well. New tools are subject to new languages, versions, APIs and SDKs. With every such new innovation, we also invite a possibility of new threats and vulnerabilities. So we typically hear about new vulnerabilities in different libraries of different source code. We then get into the phase of version upgrade, patching, etc to make sure that our environment is clean and safe. This process however traditionally has been extremely slow. Many times security threats and vulnerabilities are identified in production and take a long time to get fixed. This is when you need to introduce DevSecOps in the flow.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;color: #fcff01;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;color: #fcff01;&quot;&gt;&lt;span style=&quot;background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;Eliminating the possibility of having vulnerabilities introduced at code level itself can help in the long run and save a lot of man hours. This is where DevSecOps ideally must get introduced. And, a typical DevSecOps pipeline would look like this:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;color: #fcff01;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul style=&quot;margin-bottom: 0px; margin-top: 0px; padding-inline-start: 48px;&quot;&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;color: #fcff01;&quot;&gt;&lt;span style=&quot;background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;Identifying of vulnerable libraries being used.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;color: #fcff01;&quot;&gt;&lt;span style=&quot;background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;Secrets stored&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;color: #fcff01;&quot;&gt;&lt;span style=&quot;background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;Static code analysis&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;color: #fcff01;&quot;&gt;&lt;span style=&quot;background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;SAST&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;color: #fcff01;&quot;&gt;&lt;span style=&quot;background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;DAST&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;color: #fcff01;&quot;&gt;&lt;span style=&quot;background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;SCA&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;color: #fcff01;&quot;&gt;&lt;span style=&quot;background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;Image verification&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;color: #fcff01;&quot;&gt;&lt;span style=&quot;background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;OS vulnerabilities&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;color: #fcff01;&quot;&gt;&lt;span style=&quot;background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;System software packages&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style=&quot;color: #fcff01;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;color: #fcff01;&quot;&gt;&lt;span style=&quot;background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;Most of this is curbed prettty much in the pipeline with some well known tools in the market that parse your source code and identify different threats.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;color: #fcff01;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;color: #fcff01;&quot;&gt;&lt;span style=&quot;background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;Based on the language you need to do some research and get the best code scanners available to scan your code and resolve the issues identified. There are many opensource scanners available out there that help you do all the scanning and threat/vulnerability identification. Once you are sure which tool you need to use, you simply integrate it with you CI system by installing it there and setting up appropriate binary paths to be used while executing the build. This effort saves considerable time in the long run and helps you focus more on product and less in security.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;color: #fcff01;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;color: #fcff01;&quot;&gt;&lt;span style=&quot;background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;However, setting up the security scanners could be time consuming or may need additional knowledge of that language. Also, since new vulnerabilities keep coming in, these scanners also keep getting upgraded all the time. It is important to stay updated with them and also update your CI system components periodically. This is where Sken.ai solution comes into picture. Sken offloads the responsibility of setting up a DevSecOps pipeline to a large extent.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;margin-bottom: 0px; margin-top: 0px; padding-inline-start: 48px;&quot;&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;color: #fcff01;&quot;&gt;&lt;span style=&quot;background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;You don&#39;t need to be remembering different ways to setup code scanners&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;color: #fcff01;&quot;&gt;&lt;span style=&quot;background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;You also need not worry to update them periodically.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;color: #fcff01;&quot;&gt;&lt;span style=&quot;background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;Moreover, you do not even need to know what programming language is being used in the source code. Sken is intelligent enough to parse the code and automatically select the best scanner based on the languages found in the source code.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;color: #fcff01;&quot;&gt;&lt;span style=&quot;background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;Docker is the only requirement.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;color: #fcff01;&quot;&gt;&lt;span style=&quot;background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;Once you insert Sken&#39;s credentials, it will automatically pull the best scanners most updated docker image and scan your code completely, provide result quick and you are good to go.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;color: #fcff01;&quot;&gt;&lt;span style=&quot;background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;The scanners will automatically look for SAST, DAST, SCA, secret leaks etc and provide you all of the data in the results to be fixed.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;color: #fcff01;&quot;&gt;&lt;span style=&quot;background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;You don’t have to be a security expert, its Saas. It does it all for you.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;color: #fcff01;&quot;&gt;&lt;span style=&quot;background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;Easy integration with most of the CI tools; Jenkins, Bamboo, TravisCI, Github, CircleCI&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;color: #fcff01;&quot;&gt;&lt;span style=&quot;background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;Free 300 test per month on private projects&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;color: #fcff01;&quot;&gt;&lt;span style=&quot;background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;Opensource scanners integrated, no costing or licensing issues of proprietary application scanners&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;color: #fcff01;&quot;&gt;&lt;span style=&quot;background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;Bonus: AI driven, scan results in prioritized scan types, less false positives and reduced noise.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;color: #fcff01;&quot;&gt;&lt;span style=&quot;background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;Consolidated visuals for all apps and scans, you can prioritize vulnerabilities based on risk rating.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;color: #fcff01;&quot;&gt;&lt;span style=&quot;background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;Here is a GIF that can help you have an overview of how to quickly integrate and get started.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;color: #fcff01;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;color: #fcff01;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;span style=&quot;color: #fcff01;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpi8jrdbhTKTq2RTauenGrmznmMpTf73QSc1lxgfjJuTndVfK0fHVFtHVsohw6v7E1hvD2OsjrWMgv6akac7KgVMk9sv9iibDsZ-T-VuKsWiLj0ioBHVBG2c_uidP8tofg1lbXOzj6vyU/s640/Travis-2x.gif&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;348&quot; data-original-width=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpi8jrdbhTKTq2RTauenGrmznmMpTf73QSc1lxgfjJuTndVfK0fHVFtHVsohw6v7E1hvD2OsjrWMgv6akac7KgVMk9sv9iibDsZ-T-VuKsWiLj0ioBHVBG2c_uidP8tofg1lbXOzj6vyU/s320/Travis-2x.gif&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style=&quot;color: #fcff01;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://roshannagekar.blogspot.com/feeds/5931153991770708496/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2838270249296465765/5931153991770708496?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2838270249296465765/posts/default/5931153991770708496'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2838270249296465765/posts/default/5931153991770708496'/><link rel='alternate' type='text/html' href='http://roshannagekar.blogspot.com/2021/01/skenais-role-in-devsecops-cicd-pipeline.html' title='SkenAI&#39;s role in DevSecOps CI/CD pipeline'/><author><name>Roshan Nagekar</name><uri>http://www.blogger.com/profile/08009772289480467450</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpi8jrdbhTKTq2RTauenGrmznmMpTf73QSc1lxgfjJuTndVfK0fHVFtHVsohw6v7E1hvD2OsjrWMgv6akac7KgVMk9sv9iibDsZ-T-VuKsWiLj0ioBHVBG2c_uidP8tofg1lbXOzj6vyU/s72-c/Travis-2x.gif" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2838270249296465765.post-4857063826751756041</id><published>2021-01-22T08:28:00.002-08:00</published><updated>2021-01-22T08:28:42.685-08:00</updated><title type='text'>Sken.ai DevSecOps walkthrough</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; id=&quot;docs-internal-guid-06d11ef7-7fff-3ce2-b888-342e16c3950b&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Sken.ai Introduction:-&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-indent: 36pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Sken.ai is a Continuous Application Security Testing and vulnerability scanning tool. It helps in static code analysis, Source code analysis, code review, code complexity, and penetration testing. It is a new and automated DevSecOps tool that provides multi-language scanning features in one place. It provides comprehensive Saas based continuous application testing software developers and DevOps, without the need for any security expertise. It helps to Find and fix all types of application security issues within your DevOps CI/CD cycle.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-indent: 36pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;It provides a SAAS orchestration layer that integrates continuous application security testing into your DevOps CI/CD workflow automating the use of any open source security scanners across all scan types; SAST, DAST, SCA, MAST, container scanning, license compliance, and secrets detection.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;What will you learn from this article/blog:-&lt;/span&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;ol style=&quot;margin-bottom: 0; margin-top: 0; padding-inline-start: 48px;&quot;&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;How to provide security in your CICD pipeline?&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;What is SAST/DAST/SCA/MAST and how it works?&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;How sken.ai works? Which features and scanners sken.ai provides?&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;What vulnerability scanning and penetration testing is?&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;List of Top IDE’s used by developers provided by DevOps?&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;List of version control tools provided by DevOps?&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;List of Top CI/CD pipeline tools provided by DevOps?&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;What web application security scanner is?&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Who will need this tool:-&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;There are lots of open-source application security testing tools available in the market. So it&#39;s very hard and confusing to select what exactly we need. Here automation comes further there are many open-source plugins and security tools are available to provide and scan our application for security tests before the development state goes to production.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-indent: 36pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Sken.ai provides automated scanning features and Generally, it is used to find out the bugs at early stages of the development of software (coding stage). With this code review, the quality of the software gets improved and the bugs/errors in the program code decrease. The Code Review Tools automates the review process which in turn minimizes the reviewing task of the code. It provides free scanning forever for single users, Unlimited tests on open source projects, 300 tests per month across all apps on private projects, Priority Scoring, and Continuous Monitoring. As it is a freemium (with about 300 free scans per month) it is the best choice for beginners and small project developers.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;What does Sken.ai contain:- &lt;/span&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Here are some detailed points that I have discussed about the Sken.ai. It helps to scan every application in any language from any CI/CD Platform (such as Jenkins, Bamboo, etc). It uses all scan types SAST, DAST, SCA, Secrets, and more to scan at the coding time or the runtime. As I said before it enables security by simply adding a 2-line code snippet into CICD to enable the complete range of tests. It provides open-source scanners packaged and managed, There&#39;s No need to set up, install or update scanners. It selects &amp;amp; auto-discover scanners as per scanning context.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-indent: 36pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Sken.ai performs the most comprehensive security scanning and testing of applications during the CI/CD process. This includes not only static source code analysis (SAST) and software composition analysis (SCA), but also dynamic security testing (DAST) to uncover run-time security holes as well. This ensures that all the common avenues hackers use to execute security breaches are discovered before going to production. By providing the relevant scan type at the right stage in the DevOps and CI/CD stage, Sken.ai covers more vulnerability and compliance holes than anyone&#39;s capability alone. It uses all major development languages &amp;amp; frameworks including Java, PHP, Python, Microsoft .NET, NodeJS, Ruby, GO, and more.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-indent: 36pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Sken.ai applies machine learning and data science to normalize and prioritize all the application security issues found across testing categories. It provides AI-Based Analysis, and it reduces noise up to 97%. It Aggregated scan findings View and filter findings across multiple scans. It tracks bugs through code changes and provides standard risk ratings across all scan types. DevOps and AppSec teams can manage their entire bug fix and mitigation processes with Sken.ai, including prioritization and risk scoring, bug verification, task assignment through resolution. It is Intelligent &amp;amp; prioritized to fix critical findings first. It helps users to Manage findings from the Sken.ai portal.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Here are some Open Source Scanners included in Sken.ai internally:&lt;/span&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;ol style=&quot;margin-bottom: 0; margin-top: 0; padding-inline-start: 48px;&quot;&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;SCA: &lt;/span&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;OWASP Dependency Leaks.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;SAST:&lt;/span&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt; Find-Sec-Bugs, NodeJScan, Brakeman, Bandit, Gosec, PHPCodeSniffer, ES Lint, TSLint.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;DAST:&lt;/span&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt; OWASP ZAP&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Secrets:&lt;/span&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt; Gitleaks, Trufflehog.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-indent: 36pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Static application security testing (SAST), or static analysis, is a testing methodology that analyzes source code to find security vulnerabilities that make your organization’s applications susceptible to attack. SAST scans an application before the code is compiled. It’s also known as white box testing. SAST takes place very early in the software development life cycle (SDLC) as it does not require a working application and can take place without code being executed. It helps developers identify vulnerabilities in the initial stages of development and quickly resolve issues without breaking builds or passing on vulnerabilities to the final release of the application.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-indent: 36pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;A dynamic analysis security testing tool, or a DAST test, is an application security solution that can help to find certain vulnerabilities in web applications while they are running in production. A DAST test is also known as black-box testing, it is performed from the outside.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-indent: 36pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Traditional security scanners are proprietary, expensive, and difficult to use. They also need a team of app sec specialists to operate them, thus adding to the total cost. Sken.ai uses an innovative approach that uses a combination of popular, effective, and widely used open source security scanners to dramatically reduce the cost. Sken.ai provides free scanning forever for single users, Unlimited tests on open source projects, 300 tests per month across all apps on private projects, Priority Scoring, and Continuous Monitoring.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-indent: 36pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Vulnerability scanning is a continuous process that fits throughout an app’s software development life cycle (SDLC). Frequent scanning, especially in the early stages of development before upstream components are layered onto the source code, makes it much easier to fix issues before they become costly problems. &lt;/span&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-indent: 36pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Sken.ai also provides IAST(Interactive Application Security Testing) Scanners are DAST scanners with some SAST capabilities. They test whether known code vulnerabilities can be exploited in the running app. Developers often layer API scanners over other tools, such as SAST and DAST, to ensure their APIs stay secure, even after a code or interface change. API scanning focuses on uncovering existing and potential security vulnerabilities like SQL Injection, Content-Type Missing, Misused Exception Handling, and Parameter Tampering.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-indent: 36pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;For development, DevOps helps users to automate source code by providing IDE&#39;s like&lt;/span&gt;&lt;a href=&quot;https://visualstudio.microsoft.com/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Microsoft Visual Studio&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;,&lt;/span&gt;&lt;a href=&quot;https://netbeans.org/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;NetBeans&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;,&lt;/span&gt;&lt;a href=&quot;https://www.jetbrains.com/idea/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;IntelliJ Idea&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;,&lt;/span&gt;&lt;a href=&quot;https://www.eclipse.org/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Eclipse&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;,&lt;/span&gt;&lt;a href=&quot;https://www.jetbrains.com/pycharm/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;PyCharm&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;, etc. For version control management&lt;/span&gt;&lt;a href=&quot;https://git-scm.com/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Gi&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;t&lt;/span&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;,&lt;/span&gt;&lt;a href=&quot;https://github.com/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;GitHu&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;b&lt;/span&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;,&lt;/span&gt;&lt;a href=&quot;https://about.gitlab.com/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;GitLa&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;b&lt;/span&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;,&lt;/span&gt;&lt;a href=&quot;https://www.nongnu.org/cvs/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;CV&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;S&lt;/span&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;,&lt;/span&gt;&lt;a href=&quot;https://subversion.apache.org/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;SV&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;N&lt;/span&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;, and for CI/CD pipeline DevOps provides&lt;/span&gt;&lt;a href=&quot;https://www.jenkins.io/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Jenkin&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;s&lt;/span&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;,&lt;/span&gt;&lt;a href=&quot;https://circleci.com/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;CircleC&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;I&lt;/span&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;,&lt;/span&gt;&lt;a href=&quot;https://www.atlassian.com/software/bamboo&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Bambo&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;o&lt;/span&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;,&lt;/span&gt;&lt;a href=&quot;https://travis-ci.org/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Travis C&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;I&lt;/span&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;, etc. It enables security with a simple, 2-line code snippet to enable the complete range of tests. It provides Comprehensive testing across all scan types SAST, DAST, SCA, Secrets, and more. Perform security testing for all major development languages/frameworks. Sken.ai application developers are notified of security vulnerabilities as they commit and build their code. Also, Sken.ai helps app sec and DevOps respond to the vulnerability alerts, prioritize the issues found, and fix them during the code and build process.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-indent: 36pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;A CI/CD pipeline is a series of steps that must be performed to deliver a new version of the software. Continuous integration/continuous delivery (CI/CD) pipelines are a practice focused on improving software delivery using either a DevOps or site reliability engineering (SRE) approach.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-indent: 36pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;A CI/CD pipeline introduces monitoring and automation to improve the process of application development, particularly at the integration and testing phases, as well as during delivery and deployment. Although it is possible to manually execute each of the steps of a CI/CD pipeline, the true value of CI/CD pipelines is realized through automation. A comprehensive set of application security testing (AST) tools help you test for and remediate security vulnerabilities in your CI/CD pipeline.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-indent: 36pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;SecDevOps (also known as DevSecOps and DevOpsSec) is the process of integrating secure development best practices and methodologies into development and deployment processes that DevOps makes possible. SecDevOps consists of two distinct parts: &lt;/span&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;1. Security as Code (SaC). &lt;/span&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;2. Infrastructure as Code (IaC).&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-indent: 36pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Cybercriminals take no prisoners. According to cybersecurity experts, SecDevOps, or the process of integrating secure development best practices and methodologies into the development and deployment processes, is the best way to do just that.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-indent: 36pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Here automation comes further there are many open-source plugins and security tools are available to provide and scan our application for security tests before the development state goes to production.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-indent: 36pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;A website vulnerability is a weakness or misconfiguration in a website or web application code that allows an attacker to gain some level of control of the site, and possibly the hosting server.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-indent: 36pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;A web application security scanner is a software program that performs automatic black-box testing on a web application and identifies security vulnerabilities. Scanners do not access the source code; they only perform functional testing and try to find security vulnerabilities. Various paid and free web application vulnerability scanners are available. Security Testing is a type of Software Testing that uncovers vulnerabilities of the system and determines that the data and resources of the system are protected from possible intruders. It ensures that the software system and application are free from any threats or risks that can cause a loss.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-indent: 36pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Ruby on Rails is the most popular open-source web application framework. It’s built with the Ruby programming language. Rails help you build websites.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-indent: 36pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Ruby on Rails is an open-source web development framework, which provides Ruby developers a time-saving alternative to develop code. It is a collection of code libraries, which offer a ready-made solution for repetitive tasks like developing tables, forms, or menus on the website. Ruby on Rails also comes with a unit testing setup called RSpec, which is very easy to learn. It uses some other scanners to scan application source code. Static analysis security vulnerability scanners are used in Ruby on Rails for scanning. So here, we can use any static analysis security tools to scan ruby on rails.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-indent: 36pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Sken.ai aligns with the security framework OWASP ZAP. It is an open-source tool which is offered by OWASP (Open Web Application Security Project), for penetration testing of your website/web application. It helps you find the security vulnerabilities in your application. Here are the OWASP top 10 security threats that your website/application might face: SQL injection, Broken authentication and session management, Cross-site scripting (XSS), Broken access control, Security misconfiguration, Sensitive data exposure, Insufficient attack protection, Cross-site request forgery (CSRF), Using components with known vulnerabilities, and Underprotected APIs. ZAP provides the following features: active scans, alerts, API authentication, and verification, etc.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-indent: 36pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Zap is used as a proxy server, it allows the user to manipulate all of the traffic that passes through it, including traffic using HTTPS. It helps you find the security vulnerabilities in your application. Here is a list of the main features: Intercepting Proxy, Automated Scanner, Passive Scanner, Brute Force Scanner, Fuzzer, Port Scanner, Spider, Web Sockets, REST API.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-indent: 36pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;ZAP is an easy-to-use tool. Following are some more reasons for using ZAP:&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-indent: 36pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;1. Ideal for both beginners and professionals&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-indent: 36pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;2. Cross-platform - works across all OS (Linux, Mac, Windows)&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-indent: 36pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;3. Reusable&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-indent: 36pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;4. Can generate reports of the results, etc.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-indent: 36pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;A penetration test, also known as a pen test, is a simulated cyberattack against your computer system to check for exploitable vulnerabilities. In the context of web application security, penetration testing is commonly used to augment a web application firewall (WAF). Penetration testing in simple terms is a simulation of a process a hacker would use to launch an attack on a business network, attached devices, network applications, or a business website. The purpose of the simulation is to identify security issues before hackers can locate them and perform an exploit.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-indent: 36pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Mobile application security focuses on the software security posture of mobile apps on various platforms like Android, iOS, and Windows Phone. Mobile application security testing involves testing a mobile app in ways that a malicious user would try to attack it. Effective security testing begins with an understanding of the application’s business purpose and the types of data it handles. From there, a combination of static analysis, dynamic analysis, and penetration testing results in an efficient holistic assessment to find vulnerabilities that would be missed if the techniques were not used together effectively.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;List of tools available in the market for all types of scanning &amp;amp; the sken.ai is provide same scanning features in one place:&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;margin-bottom: 0; margin-top: 0; padding-inline-start: 48px;&quot;&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 700; list-style-type: disc; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;DAST Scanning Tools:-&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ol style=&quot;margin-bottom: 0; margin-top: 0; padding-inline-start: 48px;&quot;&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://owasp.org/www-project-zap/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;OWASP ZAP&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://www.netsparker.com/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Netsparker&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://www.acunetix.com/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Acunetix&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://www.veracode.com/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;veracode&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://detectify.com/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Detectify Deep Scan&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://www.sonarqube.org/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;SonarQu&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;be&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://www.microfocus.com/en-us/products/static-code-analysis-sast/overview&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Fortify Static Code Analyz&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;er&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://www.hcltechsw.com/products/appscan&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;AppSc&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;an&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://www.checkmarx.com/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Checkmar&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;x&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://snyk.io/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Syn&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;k&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;ul style=&quot;margin-bottom: 0; margin-top: 0; padding-inline-start: 48px;&quot;&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 700; list-style-type: disc; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;SAST Scanning Tools:-&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ol style=&quot;margin-bottom: 0; margin-top: 0; padding-inline-start: 48px;&quot;&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://www.sonarqube.org/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;SonarQube&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://www.veracode.com/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;veracode&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://www.microfocus.com/en-us/products/static-code-analysis-sast/overview&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Fortify Static Code Analyzer&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://www.hcltechsw.com/products/appscan&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;AppScan&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://brakemanscanner.org/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Brakeman&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://codeclimate.com/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Code Climate&lt;/span&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/rubysec/bundler-audit&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://github.com/rubysec/bundler-audit&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;bundler-audit&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://www.codacy.com/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;codacy&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://sourceforge.net/projects/visualcodegrepp/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;VisualCodeGrepper&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://www.ripstech.com/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;RIPS (Re-Inforce Programming Security)&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://pypi.org/project/flawfinder/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Flawfinder&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://pypi.org/project/bandit/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Bandit&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul style=&quot;margin-bottom: 0; margin-top: 0; padding-inline-start: 48px;&quot;&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 700; list-style-type: disc; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Combine Scanning (SAST/DAST/SCA) tools and alternative to sken.ai tools:-&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ol style=&quot;margin-bottom: 0; margin-top: 0; padding-inline-start: 48px;&quot;&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://www.checkmarx.com/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Checkmarx&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://www.veracode.com/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;veracode&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://detectify.com/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Detectify Deep Scan&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://www.hcltechsw.com/products/appscan&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;AppScan&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://www.sonarqube.org/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;SonarQube&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://www.jetbrains.com/pycharm/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Pycharm&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://sucuri.net/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Sucuri&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://pentest-tools.com/home&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Pentest-Tools&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://www.netsparker.com/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Netsparker&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://owasp.org/www-project-zap/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;OWASP ZAP&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://www.acunetix.com/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Acunetix&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;http://prospector.landscape.io/en/master/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Prospector&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://pypi.org/project/pylint/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;pylint&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://pypi.org/project/pyflakes/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Pyflakes&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://pypi.org/project/bandit/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Bandit&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://snyk.io/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Snyk&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://portswigger.net/burp&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Burp Suite&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://tools.kali.org/web-applications/grabber&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Grabber&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://www.arachni-scanner.com/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Arachni&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;http://w3af.org/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;w3af&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://geekflare.com/nikto-webserver-scanner/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Nikto&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;http://www.javascriptlint.com/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;JavaScript Lint&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://eslint.org/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;ESLint&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://flow.org/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Flow&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://jshint.com/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;JSHint&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://www.intruder.io/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Intruder&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://cirt.net/Nikto2&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Nikto2&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://www.gerritcodereview.com/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Gerrit&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://www.atlassian.com/software/crucible&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Crucible&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://www.codacy.com/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Codacy&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://www.tenable.com/products/nessus/nessus-professional&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Nessus&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://www.jetbrains.com/resharper/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Resharper&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://www.appknox.com/static-application-security-testing&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Appkno&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;x&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://valbrio.com/products/codesonar/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;CodeSona&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;r&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://www.wireshark.org/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Wireshark&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;http://sqlmap.org/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;SQLmap&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://www.selenium.dev/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Selenium&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://www.openwall.com/john/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;JOHN THE RIPPER&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://suricata-ids.org/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Suricata&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://www.graplsecurity.com/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Grapl&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;ul style=&quot;margin-bottom: 0; margin-top: 0; padding-inline-start: 48px;&quot;&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 700; list-style-type: disc; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Cloud Security Scanning Tools:-&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ol style=&quot;margin-bottom: 0; margin-top: 0; padding-inline-start: 48px;&quot;&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://www.rapid7.com/products/nexpose/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Rapid7 Nexpose&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://snyk.io/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Synk&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://www.acunetix.com/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Acunetix&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://www.tenable.com/products/nessus/nessus-professional&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Nessus&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://www.openwall.com/john/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;JOHN THE RIPPER&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://suricata-ids.org/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Suricata&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://www.graplsecurity.com/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Grapl&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://www.wireshark.org/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Wireshark&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;ul style=&quot;margin-bottom: 0; margin-top: 0; padding-inline-start: 48px;&quot;&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 700; list-style-type: disc; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Ruby on Rails application scaling tools:-&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ol style=&quot;margin-bottom: 0; margin-top: 0; padding-inline-start: 48px;&quot;&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://brakemanscanner.org/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Brakeman&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://codeclimate.com/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Code Climate&lt;/span&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/rubysec/bundler-audit&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://github.com/rubysec/bundler-audit&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;bundler-audit&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://www.codacy.com/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;codacy&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;ul style=&quot;margin-bottom: 0; margin-top: 0; padding-inline-start: 48px;&quot;&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 700; list-style-type: disc; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;SCA Scanning Tools:-&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ol style=&quot;margin-bottom: 0; margin-top: 0; padding-inline-start: 48px;&quot;&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;OWASP Dependency Leaks.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;How is it different than other tools in market:-&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;I have used the&lt;/span&gt;&lt;a href=&quot;https://bit.ly/2XfPgkZ&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt; sken.a&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;i scanning tool, I have mentioned some features which I liked,&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;1. There is &quot;No App Security&amp;nbsp; Expertise&quot; required to use this scanner.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;2. &quot;Commercial Scanners are expensive&quot;&amp;nbsp; so mid-markets can decide to use open-source scanners. However, Open-source scanners are extremely unmanageable. There are too many of them, so it is confusing to select what you&#39;d exactly need.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;3. This includes code level scanners like SAST, SCA, Secrets, License, Test/Deploy level scanners like DAST, Containers, API, Serverless, etc. It is extremely difficult for mid-markets to operationalize scanning with these multiple types of scanners.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p dir=&quot;ltr&quot; style=&quot;background-color: white; line-height: 1.38; margin-bottom: 28pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;The mid-markets need a product that:&lt;/span&gt;&lt;/p&gt;&lt;ol style=&quot;margin-bottom: 0; margin-top: 0; padding-inline-start: 48px;&quot;&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;background-color: white; line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Provides app security with no required app-security expertise.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;background-color: white; line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Is affordable yet manageable.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;background-color: white; line-height: 1.38; margin-bottom: 28pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Supports comprehensive scanning across the application, yet simple to understand and use.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p dir=&quot;ltr&quot; style=&quot;background-color: white; line-height: 1.38; margin-bottom: 28pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Sken tackles each one of the requirements of the mid-markets. There are three pillars in Sken, and they correspond and tackle these three core requirements of the mid-markets.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;margin-bottom: 0; margin-top: 0; padding-inline-start: 48px;&quot;&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;background-color: white; line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Sken provides a product that can be used by DevOps with no app security experience.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;background-color: white; line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Sken packages open-source scanners in a SaaS orchestration layer and automates them in CI/CD. This SaaS orchestration does a bunch of the heavy lifting, but it makes it so simple for the end-user to operate.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;background-color: white; line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Sken does all scan types. There includes&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ol style=&quot;margin-bottom: 0; margin-top: 0; padding-inline-start: 48px;&quot;&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; margin-left: 48pt; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;background-color: white; line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Code-level scanners like&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;ol style=&quot;margin-bottom: 0; margin-top: 0; padding-inline-start: 48px;&quot;&gt;&lt;li aria-level=&quot;2&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; margin-left: 72pt; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;background-color: white; line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;SAST (Static Application Security Testing) for scanning source code across multiple languages.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;2&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; margin-left: 72pt; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;background-color: white; line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;SCA (Software Composition Analysis) for scanning open source libraries that are included in your application.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;2&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; margin-left: 72pt; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;background-color: white; line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Secrets for scanning open passwords&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;2&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; margin-left: 72pt; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;background-color: white; line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;License for scanning license files&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; margin-left: 48pt; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;background-color: white; line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Test level scanners like&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;ol style=&quot;margin-bottom: 0; margin-top: 0; padding-inline-start: 48px;&quot;&gt;&lt;li aria-level=&quot;2&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; margin-left: 72pt; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;background-color: white; line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;DAST (Dynamic Application Security Testing)&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; margin-left: 48pt; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;background-color: white; line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Deployment level scanners&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;ol style=&quot;margin-bottom: 0; margin-top: 0; padding-inline-start: 48px;&quot;&gt;&lt;li aria-level=&quot;3&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; margin-left: 132pt; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;background-color: white; line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Containers&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;3&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; margin-left: 132pt; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;background-color: white; line-height: 1.38; margin-bottom: 48pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;API, etc.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-indent: 36pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;It provides free scanning forever for single users, Unlimited tests on open source projects, 300 tests per month across all apps on private projects, Priority Scoring, and Continuous Monitoring. As it is a freemium (with about 300 free scans per month) it is the best choice for beginners and small project developers.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p dir=&quot;ltr&quot; style=&quot;background-color: white; line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; padding: 0pt 0pt 48pt 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Why should you use Sken.ai:- &lt;/span&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Because of the number of different features sken.ai provides, It helps in static code analysis, Source code analysis, code review, code complexity, and penetration testing free of cost. As it is a freemium (with about 300 free scans per month) it is the best choice for beginners and small project developers.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;background-color: white; line-height: 1.38; margin-bottom: 48pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;What are the integrations possible in sken.ai:- &lt;/span&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Sken.ai integrates with the CICD pipeline with 3 simple steps. 1. Add Sken.ai in CICD. 2. Write sken.yml as you need. 3. Review issues in the Sken.ai portal. It uses automated open-source scanners providing tools like SCA, SAST, DAST, Secrets management, and many more. Those are included:-&lt;/span&gt;&lt;/p&gt;&lt;ol style=&quot;margin-bottom: 0; margin-top: 0; padding-inline-start: 48px;&quot;&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;SCA: &lt;/span&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;OWASP Dependency Leaks.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;SAST:&lt;/span&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt; Find-Sec-Bugs, NodeJScan, Brakeman, Bandit, Gosec, PHPCodeSniffer, ES Lint, TSLint.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;DAST:&lt;/span&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt; OWASP ZAP&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Secrets:&lt;/span&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt; Gitleaks, Trufflehog.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Here is the demo of sken integration with jenkins and travis-ci:-&lt;/span&gt;&lt;/p&gt;&lt;ol style=&quot;margin-bottom: 0; margin-top: 0; padding-inline-start: 48px;&quot;&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 700; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Jenkins integrate with sken:- &lt;/span&gt;&lt;a href=&quot;https://drive.google.com/file/d/1OxpziWQZ6lEZ4Q6c7WYWAw3DTNf9qLd6/view?usp=sharing&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;https://drive.google.com/file/d/1OxpziWQZ6lEZ4Q6c7WYWAw3DTNf9qLd6/view?usp=sharing&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 700; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Travis CI integrate with sken:-&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-left: 36pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;https://drive.google.com/file/d/1-zEbJ0rwzkR_vpvDkBvTXY4MwRXZcOFX/view?usp=sharing&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: white; color: #1155cc; font-family: &#39;Times New Roman&#39;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;https://drive.google.com/file/d/1-zEbJ0rwzkR_vpvDkBvTXY4MwRXZcOFX/view?usp=sharing&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://roshannagekar.blogspot.com/feeds/4857063826751756041/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2838270249296465765/4857063826751756041?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2838270249296465765/posts/default/4857063826751756041'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2838270249296465765/posts/default/4857063826751756041'/><link rel='alternate' type='text/html' href='http://roshannagekar.blogspot.com/2021/01/skenai-devsecops-walkthrough.html' title='Sken.ai DevSecOps walkthrough'/><author><name>Roshan Nagekar</name><uri>http://www.blogger.com/profile/08009772289480467450</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2838270249296465765.post-611020238347100221</id><published>2019-03-09T11:19:00.001-08:00</published><updated>2019-03-09T11:28:26.463-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Ansible"/><category scheme="http://www.blogger.com/atom/ns#" term="AWS"/><category scheme="http://www.blogger.com/atom/ns#" term="burpsuite"/><category scheme="http://www.blogger.com/atom/ns#" term="Devops"/><category scheme="http://www.blogger.com/atom/ns#" term="DevSecOps"/><category scheme="http://www.blogger.com/atom/ns#" term="git"/><category scheme="http://www.blogger.com/atom/ns#" term="Meetups"/><category scheme="http://www.blogger.com/atom/ns#" term="Open Source"/><title type='text'>DevSecOps Pune Meetup 4</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJL9wvMH0BJhpR9oPa9CvRZ1JAi_KSY80-3M4SAeP6cL33XhEkxo1P_Qy6Cc6noemJ7DS-GSTB70pfovak8nztrnZxTX2Uq9WVtpfoEiSygkyAJuXB9tdx8ERRhdQ8w2AS1YX5MMri87I/s1600/IMG_20190112_092119.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;864&quot; data-original-width=&quot;1152&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJL9wvMH0BJhpR9oPa9CvRZ1JAi_KSY80-3M4SAeP6cL33XhEkxo1P_Qy6Cc6noemJ7DS-GSTB70pfovak8nztrnZxTX2Uq9WVtpfoEiSygkyAJuXB9tdx8ERRhdQ8w2AS1YX5MMri87I/s320/IMG_20190112_092119.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
9th March 2019&lt;br /&gt;
&lt;br /&gt;
This is our 4th DevSecOps meetup. More and More and More swag sponsors added to the list. New sponsors: Elastic, Sonatype, Synk along with previous sponsors i.e. Polyverse and Cloudneeti already into the list. The meetup head count was usual and exact. We have been hitting the correct and intended audience.&lt;br /&gt;
&lt;br /&gt;
Qualys Pune was the venue for the meetup. This is the 2nd time we organized the meetup at Qualys. We started at 10.30 am. We had a huge list of topics this time and I was pretty sure not all of them are going to get discussed since the most voted topics were very interesting. The 
following topics got discussed:&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;b&gt;Machine Learning for Security&lt;/b&gt;: This topic got discussed for a good 40 minutes although none of us was an ML engineer and only understood theoretical ML concepts. The topic was chosen more for a discussion as the person suggester of the topic just had the curiosity to see if this can be done. The topic unfolded as people discussed and understood how ML works and how is it being used in the industry. Different tools like TensorFlow, Pandas, etc got discussed. Once we had a clear picture of ML, we moved to understand what security breaches we experienced in our Ops lives in industry. Based on our experience, we framed logic as to how ML algorithm could be written by Data Science engineers by studying security auth logs and application logs. We also discussed how ELK stack could be used to prove a security attack on system and further. We agreed to the part that as an Ops person we can only best provide inputs and prove security issues in systems. An ML engineer should be the best person to provide inputs on what ML algorithms could be used to mitigate security issues.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&amp;nbsp;&lt;b&gt;Ansible for DevSecOps CI/CD pipeline&lt;/b&gt;: Ansible was suggested multiple times in the past meetups as well but always went not noticed and never got discussed. In this session, we started with Ansible and went on an on for a good 1 hour. We understood how Ansible is best used in different organizations. We also discussed how a bad code in Ansible can mess up and not make any difference between olden days shell script. We discussed Idempotency feature of Ansible. We also discussed as to how Ansible is being used by some firms for Provisioning, Configuration Management and Deployment altogether. We agreed how many used Puppet for multiple jobs and later moving to a different tool was difficult for them. Hence using different tools for specific different jobs could be useful. We discussed a typical CI/CD workflow with Terraform for provisioning, Ansible for CM and Fabric/Capistrano or different language specific deployment tools for easy deployments and rollbacks. We also did a small white board presentation on how CI/CD can be used for all 3 purposes. We also discussed DR strategies, Cloud managed services like auto-scaling services etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOtI-xkVNej3bSmVHdkc54cwFJA-WDhduoW_UYX8PaJGZ8il-7dipVbEAwkJEefLPwKgJWp1eP55TInjA5_vTcs_mDY19TQViKfjibKYH_764V9FHXL3qklsTXHr_YeQA2jNicJNj8Xyw/s1600/8.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1280&quot; data-original-width=&quot;960&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOtI-xkVNej3bSmVHdkc54cwFJA-WDhduoW_UYX8PaJGZ8il-7dipVbEAwkJEefLPwKgJWp1eP55TInjA5_vTcs_mDY19TQViKfjibKYH_764V9FHXL3qklsTXHr_YeQA2jNicJNj8Xyw/s320/8.jpg&quot; width=&quot;240&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;b&gt; Git for securing code&lt;/b&gt; : The suggester was a Developer and knew exactly how was not being used in the best manner to ensure security and highlighted some best ways like code review practices, git hooks to be used in Jenkins, linting analysis using pre-commit hooks, static code analysis with SonarQube before merge. We discussed this in details already in CI/CD pipeline above as well.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;b&gt;Burpsuite &lt;/b&gt;:&amp;nbsp; Burpsuite was a tool that many knew but never got a chance to use as such. The suggester of the topic had extensive experience using it and spoke about multiple possibilities and usecases that could be achieved using Burpsuite. He also highlighted on how precautions need to be&amp;nbsp; taken before using this tool for testing giving examples of one of his projects. Burpsuite indeed was very interesting for many members and we decided to have a demo session on this.&lt;/li&gt;
&lt;/ul&gt;
Takeaways from this session for speakers to prepare were:&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&amp;nbsp;Session required on ML in security&lt;/li&gt;
&lt;li&gt;Demo on CI/CD in DevSecOps&lt;/li&gt;
&lt;li&gt;Demo on Burpsuite &lt;/li&gt;
&lt;/ul&gt;
Many topics that did not get discussed were:&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Nexus scan in Jenkins pipeline&lt;/li&gt;
&lt;li&gt;SonarQube for secure code analysis&lt;/li&gt;
&lt;li&gt;Pentesting with Python&lt;/li&gt;
&lt;li&gt;IOT Security&lt;/li&gt;
&lt;li&gt;Metasploit for pentesting&lt;/li&gt;
&lt;li&gt;Cloud security&lt;/li&gt;
&lt;li&gt;Prowler&lt;/li&gt;
&lt;li&gt;Automobile software release cycle and missing lacking devops chain&lt;/li&gt;
&lt;li&gt;Maven&lt;/li&gt;
&lt;li&gt;Regulations&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;story&quot; style=&quot;text-align: left;&quot;&gt;
In the end Shirish wanted to highlight the recent &lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span class=&quot;story-title&quot; id=&quot;title-107094788&quot;&gt;&lt;a href=&quot;https://it.slashdot.org/story/19/03/05/1524251/all-intel-chips-open-to-new-spoiler-non-spectre-attack&quot;&gt;All Intel Chips Open To New &#39;Spoiler&#39; Non-Spectre Attack&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;story&quot; style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
Some clicks :)&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjve2USvJkwBrke1ho8v2eA4j7YlNgWSspI1SBnlWNUo_5gAvLc4iNgGbTUPm2TnEG2W1rlant1WJ9TOzu6MUvT-mj1cpGAZtE9lzpj15EtZXAUVb8oltaHad__hgcS-UGwsx3wvyIsjUk/s1600/4.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;960&quot; data-original-width=&quot;1280&quot; height=&quot;150&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjve2USvJkwBrke1ho8v2eA4j7YlNgWSspI1SBnlWNUo_5gAvLc4iNgGbTUPm2TnEG2W1rlant1WJ9TOzu6MUvT-mj1cpGAZtE9lzpj15EtZXAUVb8oltaHad__hgcS-UGwsx3wvyIsjUk/s200/4.jpg&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6060rnvaGPJD_TKPuf6ZqmuX2vY9HTzDNgBEvAuoK4gbJIIakfVj5cz7m9BM5AQPNl29fs4x7zmpgVWQ5T1ZPi4fivRp5GRtPfnzs7jT0lVaBXiVbNbXhvGrp__3yGpo0uqvHqlxukiI/s1600/5.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;960&quot; data-original-width=&quot;1280&quot; height=&quot;150&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6060rnvaGPJD_TKPuf6ZqmuX2vY9HTzDNgBEvAuoK4gbJIIakfVj5cz7m9BM5AQPNl29fs4x7zmpgVWQ5T1ZPi4fivRp5GRtPfnzs7jT0lVaBXiVbNbXhvGrp__3yGpo0uqvHqlxukiI/s200/5.jpg&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqZPM6SR0jlm4krFLab779wMbhpWmlebxl4FEc8kDqLRZJNSGLhKX7glc_WnlO7GIw43kgnaBhFp_DQ1yUnpqQ3u8BvD29JmU51vjm3rN_RiSca3cp_uAujCM15mKwZ8y8nHKKIKXITcg/s1600/3.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1152&quot; data-original-width=&quot;864&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqZPM6SR0jlm4krFLab779wMbhpWmlebxl4FEc8kDqLRZJNSGLhKX7glc_WnlO7GIw43kgnaBhFp_DQ1yUnpqQ3u8BvD29JmU51vjm3rN_RiSca3cp_uAujCM15mKwZ8y8nHKKIKXITcg/s200/3.jpg&quot; width=&quot;150&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyJ8RI4Wef59sk7gWJ7IFShrxqgs7eer1coyQrrl2wnCR-LU2WPVQ_bdDGIfNTry_P2ua1ZQDNE7Co6K3vhsw0KQYTaT8VQhBPbeFfAPw7pE_wzkCjz2Hx-sqTgkSWfq5LA50M3epkhgU/s1600/6.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;960&quot; data-original-width=&quot;1280&quot; height=&quot;150&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyJ8RI4Wef59sk7gWJ7IFShrxqgs7eer1coyQrrl2wnCR-LU2WPVQ_bdDGIfNTry_P2ua1ZQDNE7Co6K3vhsw0KQYTaT8VQhBPbeFfAPw7pE_wzkCjz2Hx-sqTgkSWfq5LA50M3epkhgU/s200/6.jpg&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinR-93beIwCTDznmc8uT-FdfAqfdIthyphenhyphen77owiM1aZ2Br3XAyRSoqauGlQAtlmqQ4OS5TJYXG_a0bILqwqlINMUKx5DP7WAYFFV8swQ5rhC78nDeJK-3TGGo2vFSdyDOA5utPLbavfGNwE/s1600/7.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;960&quot; data-original-width=&quot;1280&quot; height=&quot;150&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinR-93beIwCTDznmc8uT-FdfAqfdIthyphenhyphen77owiM1aZ2Br3XAyRSoqauGlQAtlmqQ4OS5TJYXG_a0bILqwqlINMUKx5DP7WAYFFV8swQ5rhC78nDeJK-3TGGo2vFSdyDOA5utPLbavfGNwE/s200/7.jpg&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh56_n9Zrnm-DBHf_a3016UeTKpeur0JbUnSy38cOEIk8ITexoKQ5Wjr7zXqdr1M26HD-G8DCE0-lacRpugdiGZs0YT_kEnqavXTE6MlSwVcU1AI1IV0V8RdP2VAlP8fDRcU7bGf-fUoNc/s1600/9.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;960&quot; data-original-width=&quot;1280&quot; height=&quot;150&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh56_n9Zrnm-DBHf_a3016UeTKpeur0JbUnSy38cOEIk8ITexoKQ5Wjr7zXqdr1M26HD-G8DCE0-lacRpugdiGZs0YT_kEnqavXTE6MlSwVcU1AI1IV0V8RdP2VAlP8fDRcU7bGf-fUoNc/s200/9.jpg&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTkjHzwNYH1ehsAtMMD9UMAykLhQrpFyPWrQF1zCFSfL4Vs2aUQyNLj2umwltiBSTXxBtYrrYlC-rJcgyqFIhg99nqU1pnjukHy0Sue8V5vN0VNTNaL1mz2M37NQMfDaoZmd1FwmOW4BI/s1600/10.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1280&quot; data-original-width=&quot;960&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTkjHzwNYH1ehsAtMMD9UMAykLhQrpFyPWrQF1zCFSfL4Vs2aUQyNLj2umwltiBSTXxBtYrrYlC-rJcgyqFIhg99nqU1pnjukHy0Sue8V5vN0VNTNaL1mz2M37NQMfDaoZmd1FwmOW4BI/s200/10.jpg&quot; width=&quot;150&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwGMsWnkMBQMjR3fKIGG9MYz6qsj6sPNmXN6-U6eY_TXzgtw94VSSpTG4hV63AgZkX1As43da4O0V9e0H2lbdOiXjlupIG2OXHNeyX-yzOHM4KtmaiqPma_DsoVNf-hiKzMR6MSvA6BQU/s1600/11.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1280&quot; data-original-width=&quot;960&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwGMsWnkMBQMjR3fKIGG9MYz6qsj6sPNmXN6-U6eY_TXzgtw94VSSpTG4hV63AgZkX1As43da4O0V9e0H2lbdOiXjlupIG2OXHNeyX-yzOHM4KtmaiqPma_DsoVNf-hiKzMR6MSvA6BQU/s200/11.jpg&quot; width=&quot;150&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgL7N2UfseXiXSL2aVKyHGrQPK30yMwoXgU00Gwo916kMcmBlxrumQ8s082rL-kA87cLGwf8GSPPrW0cNBd2hn_umFhflFZ1Ucp4KD3Xuog9dLspotLwWeCwlaqpTkmqRba4qOloLww8Os/s1600/12.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1280&quot; data-original-width=&quot;960&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgL7N2UfseXiXSL2aVKyHGrQPK30yMwoXgU00Gwo916kMcmBlxrumQ8s082rL-kA87cLGwf8GSPPrW0cNBd2hn_umFhflFZ1Ucp4KD3Xuog9dLspotLwWeCwlaqpTkmqRba4qOloLww8Os/s200/12.jpg&quot; width=&quot;150&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlX-swB5izmSQ-BIow_8KtdVg9UwvwQlcBU2KtLu4KXo599GIO4pUhvONXNrBdYm3KjOIl8gBDHVpYtGOEy-zvEs1eBJverl_UkchnE7WuIDASUCRVoYp2uiU25pRqWxlk1nHx0FZLNXs/s1600/13.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;960&quot; data-original-width=&quot;1280&quot; height=&quot;150&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlX-swB5izmSQ-BIow_8KtdVg9UwvwQlcBU2KtLu4KXo599GIO4pUhvONXNrBdYm3KjOIl8gBDHVpYtGOEy-zvEs1eBJverl_UkchnE7WuIDASUCRVoYp2uiU25pRqWxlk1nHx0FZLNXs/s200/13.jpg&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3XL-o1kqetlKLiM_Quarc8LJjRdx8n86mWvI7jYI5vmvxw4joAOBmCTVYcl9hZD5FWThMNHUIsU8RM0vZOKypaZN7S9ya0QMSyMajnj9-Grm67RGYk3LUW3iuciEnAnKiYA4Lk5YQTmI/s1600/14.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;960&quot; data-original-width=&quot;1280&quot; height=&quot;150&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3XL-o1kqetlKLiM_Quarc8LJjRdx8n86mWvI7jYI5vmvxw4joAOBmCTVYcl9hZD5FWThMNHUIsU8RM0vZOKypaZN7S9ya0QMSyMajnj9-Grm67RGYk3LUW3iuciEnAnKiYA4Lk5YQTmI/s200/14.jpg&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJU36c71xNZSdRcITtjd5xWdWkZgjfCWUZJ4NU-2scixSMypcb0O-B2Tk3_YyP1gnggcotfE4J4I7HLBsNq1fWOCJzAsNwaQ0VFZI2gHVQ0O_6RdqaKwkYyzC67ZLlMOAb38uIp261t0g/s1600/index2.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;864&quot; data-original-width=&quot;1152&quot; height=&quot;150&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJU36c71xNZSdRcITtjd5xWdWkZgjfCWUZJ4NU-2scixSMypcb0O-B2Tk3_YyP1gnggcotfE4J4I7HLBsNq1fWOCJzAsNwaQ0VFZI2gHVQ0O_6RdqaKwkYyzC67ZLlMOAb38uIp261t0g/s200/index2.jpg&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFz1fLpJH14OAieet-iOnCNbFYFCbvcLiVuPGcI8xGIM5CC_EH4tgd47kM_3TzRtkb7FiE_GAyX0uBx28ra1aNThfIEZT0joytkTTv_TTPjUf_pBuTKA2VsMPpUBrNj69J4eF011nG6OM/s1600/index.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;864&quot; data-original-width=&quot;1152&quot; height=&quot;150&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFz1fLpJH14OAieet-iOnCNbFYFCbvcLiVuPGcI8xGIM5CC_EH4tgd47kM_3TzRtkb7FiE_GAyX0uBx28ra1aNThfIEZT0joytkTTv_TTPjUf_pBuTKA2VsMPpUBrNj69J4eF011nG6OM/s200/index.jpg&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://roshannagekar.blogspot.com/feeds/611020238347100221/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2838270249296465765/611020238347100221?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2838270249296465765/posts/default/611020238347100221'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2838270249296465765/posts/default/611020238347100221'/><link rel='alternate' type='text/html' href='http://roshannagekar.blogspot.com/2019/03/devsecops-pune-meetup-4.html' title='DevSecOps Pune Meetup 4'/><author><name>Roshan Nagekar</name><uri>http://www.blogger.com/profile/08009772289480467450</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJL9wvMH0BJhpR9oPa9CvRZ1JAi_KSY80-3M4SAeP6cL33XhEkxo1P_Qy6Cc6noemJ7DS-GSTB70pfovak8nztrnZxTX2Uq9WVtpfoEiSygkyAJuXB9tdx8ERRhdQ8w2AS1YX5MMri87I/s72-c/IMG_20190112_092119.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2838270249296465765.post-5263696721120092674</id><published>2019-02-20T13:36:00.002-08:00</published><updated>2019-02-20T20:08:25.572-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="envoy"/><category scheme="http://www.blogger.com/atom/ns#" term="load balancer"/><category scheme="http://www.blogger.com/atom/ns#" term="proxy"/><category scheme="http://www.blogger.com/atom/ns#" term="source build"/><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu"/><title type='text'>Source build Envoy proxy on Ubuntu 18.04</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;sudo apt-get update&lt;br /&gt;sudo apt-get install openjdk-8-jdk build-essential autoconf libtool cmake ninja-build&lt;br /&gt;echo &quot;deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8&quot; | sudo tee /etc/apt/sources.list.d/bazel.list&lt;br /&gt;curl https://bazel.build/bazel-release.pub.gpg | sudo apt-key add -&lt;br /&gt;sudo apt-get update &amp;amp;&amp;amp; sudo apt-get install bazel&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;wget https://dl.google.com/go/go1.11.5.linux-amd64.tar.gz&lt;br /&gt;tar -xvf go1.11.5.linux-amd64.tar.gz&lt;br /&gt;sudo chown -R root:root ./go&lt;br /&gt;sudo mv go /usr/local&lt;br /&gt;echo &quot;export GOPATH=$HOME/go&quot; &amp;gt;&amp;gt; ~/.profile&lt;br /&gt;echo &quot;export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin&quot; &amp;gt;&amp;gt; ~/.profile&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp;git clone https://github.com/envoyproxy/envoy.git&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;cd envoy/&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;bazel build --package_path %workspace%:/home/&amp;lt;user&amp;gt;/envoy/ //source/exe:envoy-static&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;RELAX, ITS GOING TO TAKE LONG TIME&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To generate the example configurations run the following from the root of the repo:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;mkdir -p generated/configs&lt;br /&gt;bazel build //configs:example_configs&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;RELAX, ITS GOING TO TAKE LONG TIME&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
I wrote an Ansible playbook too for this&lt;b&gt;.&lt;/b&gt; I will publish it later on Github&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://roshannagekar.blogspot.com/feeds/5263696721120092674/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2838270249296465765/5263696721120092674?isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2838270249296465765/posts/default/5263696721120092674'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2838270249296465765/posts/default/5263696721120092674'/><link rel='alternate' type='text/html' href='http://roshannagekar.blogspot.com/2019/02/source-build-envoy-proxy-on-ubuntu-1804.html' title='Source build Envoy proxy on Ubuntu 18.04'/><author><name>Roshan Nagekar</name><uri>http://www.blogger.com/profile/08009772289480467450</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2838270249296465765.post-6001432070330174353</id><published>2019-02-20T13:18:00.000-08:00</published><updated>2019-02-20T13:18:00.622-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="hop"/><category scheme="http://www.blogger.com/atom/ns#" term="rsync"/><category scheme="http://www.blogger.com/atom/ns#" term="scp"/><category scheme="http://www.blogger.com/atom/ns#" term="SSH"/><category scheme="http://www.blogger.com/atom/ns#" term="ssh tunnel"/><title type='text'>Easily SCP/Rsync through bastion host or SCP/Rsync through multiple hops</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Often we work in environment where we need to copy files or directories from a local system to another server that can be accessed only through a Bastion host. In such cases, typically we transfer from local machine to Bastion and from Bastion to the intended server. This is time consuming, repetitive and unreliable too. There are many ways you can make this automated. I found a way to get this done through SSH tunneling. Here&#39;s how it works:&lt;br /&gt;
&lt;br /&gt;
There are 3 machines involved here:&lt;br /&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;localhost&lt;/li&gt;
&lt;li&gt;Bastion host&lt;/li&gt;
&lt;li&gt;Intended server&lt;/li&gt;
&lt;/ol&gt;
&lt;br /&gt;
1. Create an SSH tunnel from localhost to the &lt;b&gt;intended &lt;/b&gt;host through bastion. The tunnel will be created from port 1234 at localhost. You may choose any other port.&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;&quot;&gt;ssh -L 1234:&amp;lt;intended_server&amp;gt;:22 &amp;lt;user&amp;gt;@&amp;lt;bastion-host&amp;gt; cat -&lt;/span&gt;&lt;br /&gt;
2. In a new tab initiate the file/directory transfer using the tunnel port&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;&quot;&gt;scp -P 1234 &amp;lt;file_to_transfer&amp;gt; &amp;lt;user_of_intended_server&amp;gt;@127.0.0.1:~/&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
As I did this, I realized SCP is very slow in getting the transfer done due to its linear and sequential file transfer behavior. Hence, I used Rsync which made it pretty fast due to its delta based transfer algorithm&lt;br /&gt;
&lt;br /&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;div id=&quot;vt100&quot;&gt;
&lt;pre&gt;&lt;span class=&quot;od&quot;&gt;rsync -avz -e &quot;ssh -p 1234&quot; &amp;lt;file_to_transfer&amp;gt; &amp;lt;user_of_intended_server&amp;gt;@127.0.0.1:~/&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;style type=&quot;text/css&quot;&gt;
  body, pre { margin: 0; padding: 0; }
  pre { font-family: inherit; }
  #vt100 {
    float: left;
    border: 0px solid;
    padding: 1px;
    line-height: 116%;
    font-size: 9pt;
    font-family: &#39;Lucida Console&#39;, &#39;Lucida Console &#39;, &#39;Consolas&#39;;
    color: #BFBFBF;
    background-color: #000000;
    }
  .bd { font-weight: bold }
  .it { font-style: italic }
  .ul { text-decoration-line: underline }
  .st { text-decoration-line: line-through }
  .lu { text-decoration-line: line-through underline }
  .fg-color0 { color: #000000 } .bg-color0 { background-color: #000000 }
  .fg-color1 { color: #BF0000 } .bg-color1 { background-color: #BF0000 }
  .fg-color2 { color: #00BF00 } .bg-color2 { background-color: #00BF00 }
  .fg-color3 { color: #BFBF00 } .bg-color3 { background-color: #BFBF00 }
  .fg-color4 { color: #0000BF } .bg-color4 { background-color: #0000BF }
  .fg-color5 { color: #BF00BF } .bg-color5 { background-color: #BF00BF }
  .fg-color6 { color: #00BFBF } .bg-color6 { background-color: #00BFBF }
  .fg-color7 { color: #BFBFBF } .bg-color7 { background-color: #BFBFBF }
  .fg-color8 { color: #404040 } .bg-color8 { background-color: #404040 }
  .fg-color9 { color: #FF4040 } .bg-color9 { background-color: #FF4040 }
  .fg-color10 { color: #40FF40 } .bg-color10 { background-color: #40FF40 }
  .fg-color11 { color: #FFFF40 } .bg-color11 { background-color: #FFFF40 }
  .fg-color12 { color: #6060FF } .bg-color12 { background-color: #6060FF }
  .fg-color13 { color: #FF40FF } .bg-color13 { background-color: #FF40FF }
  .fg-color14 { color: #40FFFF } .bg-color14 { background-color: #40FFFF }
  .fg-color15 { color: #FFFFFF } .bg-color15 { background-color: #FFFFFF }
  .cursor { background-color: #BFBFBF }
  .font10 { font-family: &#39;F25 Blackletter Typewriter&#39; } 
  &lt;/style&gt;&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://roshannagekar.blogspot.com/feeds/6001432070330174353/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2838270249296465765/6001432070330174353?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2838270249296465765/posts/default/6001432070330174353'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2838270249296465765/posts/default/6001432070330174353'/><link rel='alternate' type='text/html' href='http://roshannagekar.blogspot.com/2019/02/easily-scprsync-through-bastion-host-or.html' title='Easily SCP/Rsync through bastion host or SCP/Rsync through multiple hops'/><author><name>Roshan Nagekar</name><uri>http://www.blogger.com/profile/08009772289480467450</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2838270249296465765.post-2923467865705320467</id><published>2019-02-09T22:37:00.001-08:00</published><updated>2019-02-09T22:38:10.848-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Ansible"/><category scheme="http://www.blogger.com/atom/ns#" term="DevSecOps"/><category scheme="http://www.blogger.com/atom/ns#" term="Information Security"/><category scheme="http://www.blogger.com/atom/ns#" term="Kali Linux"/><category scheme="http://www.blogger.com/atom/ns#" term="Meetups"/><category scheme="http://www.blogger.com/atom/ns#" term="OWASP"/><title type='text'>DevSecOps Pune Meetup 3</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXSxK4GfTa4hZ-DlqOGTH-VPeJPdyf6wkD449TjUaqmHgGOV74HvLoPzGtU5A58BgdYfVTryL9fcUxn5Nb-pgN2BEpqLC0Vm9Ft3pCyk_mok7Xr7guKCb1Cn_mNG4wFx3zv4ckTkr34JM/s1600/IMG-20190209-WA0010.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;960&quot; data-original-width=&quot;1280&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXSxK4GfTa4hZ-DlqOGTH-VPeJPdyf6wkD449TjUaqmHgGOV74HvLoPzGtU5A58BgdYfVTryL9fcUxn5Nb-pgN2BEpqLC0Vm9Ft3pCyk_mok7Xr7guKCb1Cn_mNG4wFx3zv4ckTkr34JM/s320/IMG-20190209-WA0010.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
9th Feb 2019&lt;br /&gt;
&lt;br /&gt;
This is our 3rd DevSecOps meetup. I am glad to see the head count getting even better. Another Goodies sponsor added to the list. Cloudneeti Software sponsored T-shirt and Mugs to best presenter.&lt;br /&gt;
&lt;br /&gt;
For this meetup, we got an exact count again with 2-3 last minute exits. Cloudneeti Software was the venue for this meetup. We started sharp at 10.30. Surprisingly the topics discussed this time were pretty advanced and much looked out for. The following topics got discussed:&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&amp;nbsp;&lt;b&gt;Kali Linux for security&lt;/b&gt; : The topic was super hit and got discussed for pretty long hours. We spoke for a good 20 minutes on Kali Linux and only stopped because the next topics were also equally interesting. We spoke about the old distro Backtrack and how Kali got introduced. Others added their inputs as to how Kali is used by different SecOps people in industry. Overall we all agreed that Kali was a really vast topic to be just discussed and this rather needed a presentation + demo with so many tools within.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;OWASP Top 10 web app security risks&lt;/b&gt;: As we discussed Kali, we also spoke about OWASP top 10 in the same discussion and this got prolong for another 20 mins. Not all of us were aware of all OWASP top 10 attacks hence we Googled it just for making notes, however with time limitations we could only discuss the most famous SQL Injection and a little about XSS. We also concluded that this needed a bigger session.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CI/CD in DevOps Pipeline&lt;/b&gt;: DevSecOps CI/CD pipeline was discussed shortly in 1st meetup but we did not deep dive in it then. In this meetup we actually went to the depth of Jenkins, Git, SonarQube, Static code analysis, Container Image security, SecOps role to play, Vulnerable libraries being used by devs and how to resolve this. How Github has inbuilt vulnerability analysis done now and many more details. We also drew the following CI/CD architecture diagram for DevSecOps pipeline.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi60u25BZln39heWNNRcs1LT1P-s7hUIPwGwjvKFKU-6l1YtyIBbPecKPMBk1wAURP8Br3C_5XHKW-0AXcHmNVi3ruIl04syo-w6_triLkDmHHpWW0oDSqiB-Q9PmiEXGMM9ywx5QSVcAk/s1600/IMG-20190209-WA0009.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;960&quot; data-original-width=&quot;1280&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi60u25BZln39heWNNRcs1LT1P-s7hUIPwGwjvKFKU-6l1YtyIBbPecKPMBk1wAURP8Br3C_5XHKW-0AXcHmNVi3ruIl04syo-w6_triLkDmHHpWW0oDSqiB-Q9PmiEXGMM9ywx5QSVcAk/s320/IMG-20190209-WA0009.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;b&gt;Ansible secure key rotation&lt;/b&gt;: This was more of a question to the forum as to how this could be done since Chef and Puppet use clients and use their own keys for security, while Ansible uses SSH. We agreed to the fact that the keys must get rotated and many companies do follow this. Ansible&#39;s authorized_keys module helps you to rotate keys was the perfect answer suggested.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Security Patching at scale in cloud&lt;/b&gt;: This was again a question and the answer was many companies did this using cloud native tools to create a golden images and other tools to get into the image to verify if the images were CIS compliant this is not just for images but also for Cloud environment and resources in general. Once again Prowler was discussed to evaluate the cloud environment.&lt;/li&gt;
&lt;/ul&gt;
Takeaways from this session for speakers to prepare were:&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&amp;nbsp;Kali Linux hands on demo&lt;/li&gt;
&lt;li&gt;OWASP Top 10 risks&lt;/li&gt;
&lt;li&gt;CI/CD in DevSecOps&lt;/li&gt;
&lt;/ul&gt;
A few topics that did not get discussed were:&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Metasploit for Pentesting&lt;/li&gt;
&lt;li&gt;GDPR automation&lt;/li&gt;
&lt;li&gt;Deploying Software securely&lt;/li&gt;
&lt;li&gt;Cloud security trends 2018-19&lt;/li&gt;
&lt;/ul&gt;
An important Topic that Budhram did put forth as to what minimum qualifications and expertise do companies look for in a fresher candidate to call him an eligible candidate for DevOps Engineering further. This was a good debate cum discussion that we all spoke about in the end. &lt;br /&gt;
&lt;br /&gt;
This turned out to be a long event in spite of small number of 
attendees. Ashish, Budhram, Shrikant and Dhiru got goodies to keep discussion more happening
 and actively participating in all topics as well. Some 
others got stickers.&lt;br /&gt;
&lt;br /&gt;
Some clicks :)&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPNEb7O85IhgBP2oDUpLMixRpqGMcychOmnC2oS18YHMqJo0k9pToD5nzCfva9UQTzPwf5nDVb5K8WLCfvfy7RV6TaEklqt8NEaAs7uNMCQ4bhwMjN4pihqCuZNLWri4DeHjqCd_ovK0o/s1600/IMG-20190209-WA0011.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;960&quot; data-original-width=&quot;1280&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPNEb7O85IhgBP2oDUpLMixRpqGMcychOmnC2oS18YHMqJo0k9pToD5nzCfva9UQTzPwf5nDVb5K8WLCfvfy7RV6TaEklqt8NEaAs7uNMCQ4bhwMjN4pihqCuZNLWri4DeHjqCd_ovK0o/s320/IMG-20190209-WA0011.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibWCgiUznLBsZkqGcemKxKk489BhdvU5CTabi0cXD4EDWlv8LVJPsPcrHGC2rLtZmYj42tdQnWcundOOip1uurOO6RgycyCkur0JUJvVwnL2dA9N1mH4DunskPXBryAcULhZNkJcjNffk/s1600/IMG-20190209-WA0012.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;960&quot; data-original-width=&quot;1280&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibWCgiUznLBsZkqGcemKxKk489BhdvU5CTabi0cXD4EDWlv8LVJPsPcrHGC2rLtZmYj42tdQnWcundOOip1uurOO6RgycyCkur0JUJvVwnL2dA9N1mH4DunskPXBryAcULhZNkJcjNffk/s320/IMG-20190209-WA0012.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhutprx3AU2zreBsUr9bqEiloyWt8s9Yglp66D0tOxxydDFlLrKBSfLJjgbdyn86P1toyIY9fLf3av0NdEy5SNVAcLl3Z4SBlyEwe8qcyLjXQ7klGeQ81Z9EjO1nrOx3q54wQhfMsrshhY/s1600/IMG-20190209-WA0015.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;960&quot; data-original-width=&quot;1280&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhutprx3AU2zreBsUr9bqEiloyWt8s9Yglp66D0tOxxydDFlLrKBSfLJjgbdyn86P1toyIY9fLf3av0NdEy5SNVAcLl3Z4SBlyEwe8qcyLjXQ7klGeQ81Z9EjO1nrOx3q54wQhfMsrshhY/s320/IMG-20190209-WA0015.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0LDRkA3qk8x-B0Go7O_xh9Re5bHLEuBiinR_MDn6bvgjroA4Si0Az9sKAeCYIQNWqXpiyVcn8hMI4DNYslL19y-IFVkOHJeZs5zFBYeQpZB4chadl1u6NgAX9ZEM2nUUDeA-Ux6DOKVc/s1600/IMG_20190209_125739.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1200&quot; data-original-width=&quot;1600&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0LDRkA3qk8x-B0Go7O_xh9Re5bHLEuBiinR_MDn6bvgjroA4Si0Az9sKAeCYIQNWqXpiyVcn8hMI4DNYslL19y-IFVkOHJeZs5zFBYeQpZB4chadl1u6NgAX9ZEM2nUUDeA-Ux6DOKVc/s320/IMG_20190209_125739.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://roshannagekar.blogspot.com/feeds/2923467865705320467/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2838270249296465765/2923467865705320467?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2838270249296465765/posts/default/2923467865705320467'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2838270249296465765/posts/default/2923467865705320467'/><link rel='alternate' type='text/html' href='http://roshannagekar.blogspot.com/2019/02/devsecops-pune-meetup-3.html' title='DevSecOps Pune Meetup 3'/><author><name>Roshan Nagekar</name><uri>http://www.blogger.com/profile/08009772289480467450</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXSxK4GfTa4hZ-DlqOGTH-VPeJPdyf6wkD449TjUaqmHgGOV74HvLoPzGtU5A58BgdYfVTryL9fcUxn5Nb-pgN2BEpqLC0Vm9Ft3pCyk_mok7Xr7guKCb1Cn_mNG4wFx3zv4ckTkr34JM/s72-c/IMG-20190209-WA0010.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2838270249296465765.post-2842693267830039493</id><published>2019-02-09T19:55:00.000-08:00</published><updated>2019-02-10T17:25:42.284-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Ansible"/><category scheme="http://www.blogger.com/atom/ns#" term="SSH"/><category scheme="http://www.blogger.com/atom/ns#" term="ssh-copy-id"/><category scheme="http://www.blogger.com/atom/ns#" term="ssh-keyscan"/><category scheme="http://www.blogger.com/atom/ns#" term="Vagrant"/><title type='text'>Copying ssh keys easily</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
I use VMs/Vagrant a lot in my day work for all sysadmin/devops automation. One of the problems that I always face with the systems is to authorize my server for the 1st time with my master host. If I am using 10 VMs I need to authorize them 10 times? I wrote a small script to automate this process:&lt;br /&gt;
&lt;br /&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Create a &quot;list&quot; file and add all IPs and hostnames for the VMs in it.&lt;/li&gt;
&lt;li&gt;Create a &quot;password&quot; file to write your SSH password in it, you may choose to write the password in the bash, however I feel this gives me the flexibility to add the bash to my source code if need by putting password file in a.gitignore&lt;/li&gt;
&lt;li&gt;Next create a shell script that will read the IP addresses and the hostnames from the &quot;list&quot; file and password/s from the password file(I generally keep the same password for all VMs for simplicity)&lt;/li&gt;
&lt;li&gt;Remember 2 commands are useful here ssh-copy-ip and ssh-keyscan. Here&#39;s how you use them&lt;span style=&quot;color: #bfbfbf;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;lucida console&amp;quot; , &amp;quot;lucida console &amp;quot; , &amp;quot;consolas&amp;quot;;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;color: #bfbfbf;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;lucida console&amp;quot; , &amp;quot;lucida console &amp;quot; , &amp;quot;consolas&amp;quot;;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #bfbfbf;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;lucida console&amp;quot; , &amp;quot;lucida console &amp;quot; , &amp;quot;consolas&amp;quot;;&quot;&gt;
  
  
  
  
  
  
  



  &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;div id=&quot;vt100&quot;&gt;
&lt;pre&gt;&lt;span class=&quot;od&quot;&gt;    ssh-keyscan -H &amp;lt;IP&amp;gt; &amp;gt;&amp;gt; ~/.ssh/known_hosts                                                                                                                                &lt;/span&gt;
&lt;span class=&quot;ev&quot;&gt;    sshpass -f &amp;lt;password&amp;gt; ssh-copy-id -i ~/.ssh/id_rsa.pub &amp;lt;USER&amp;gt;@&amp;lt;IP&amp;gt;                                                                                                      &lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;color: #bfbfbf;&quot;&gt;The ssh-keyscan command command is for gathering the public ssh host key of a VM host specified. After collecting the publich ssh-key it adds it to your localhost. You can verify this by checking the contents of &quot;~/.ssh/known_hosts&quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;color: #bfbfbf;&quot;&gt;The ssh-copy-id command copies the public key of your default identity (otherwise use -i identity_file for other identities) to the remote host. You can verify this by checking the content on ~/.ssh/authorized_keys in the VM host.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;color: #bfbfbf;&quot;&gt;The final script looks like this with a loop:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #bfbfbf;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;lucida console&amp;quot; , &amp;quot;lucida console &amp;quot; , &amp;quot;consolas&amp;quot;;&quot;&gt;
  
  
  
  
  
  
  



  &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;div id=&quot;vt100&quot;&gt;
&lt;pre&gt;&lt;span class=&quot;od&quot;&gt;#!/bin/bash                                                                                                                                                                 &lt;/span&gt;
&lt;span class=&quot;ev&quot;&gt;user=&quot;vagrant&quot;                                                                                                                                                              &lt;/span&gt;
&lt;span class=&quot;od&quot;&gt;for ip in `cat ./list`; do                                                                                                                                                  &lt;/span&gt;
&lt;span class=&quot;ev&quot;&gt;    ssh-keyscan -H $ip &amp;gt;&amp;gt; ~/.ssh/known_hosts                                                                                                                                &lt;/span&gt;
&lt;span class=&quot;od&quot;&gt;    sshpass -f password.txt ssh-copy-id -i ~/.ssh/id_rsa.pub $user@$ip                                                                                                      &lt;/span&gt;
&lt;span class=&quot;ev&quot;&gt;done &lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;span style=&quot;color: #bfbfbf;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;lucida console&amp;quot; , &amp;quot;lucida console &amp;quot; , &amp;quot;consolas&amp;quot;;&quot;&gt;&lt;style type=&quot;text/css&quot;&gt;
  body, pre { margin: 0; padding: 0; }
  pre { font-family: inherit; }
  #vt100 {
    float: left;
    border: 0px solid;
    padding: 1px;
    line-height: 111%;
    font-size: 9pt;
    font-family: &#39;Lucida Console&#39;, &#39;Lucida Console &#39;, &#39;Consolas&#39;;
    color: #BFBFBF;
    background-color: #000000;
    }
  .bd { font-weight: bold }
  .it { font-style: italic }
  .ul { text-decoration-line: underline }
  .st { text-decoration-line: line-through }
  .lu { text-decoration-line: line-through underline }
  .fg-color0 { color: #000000 } .bg-color0 { background-color: #000000 }
  .fg-color1 { color: #BF0000 } .bg-color1 { background-color: #BF0000 }
  .fg-color2 { color: #00BF00 } .bg-color2 { background-color: #00BF00 }
  .fg-color3 { color: #BFBF00 } .bg-color3 { background-color: #BFBF00 }
  .fg-color4 { color: #0000BF } .bg-color4 { background-color: #0000BF }
  .fg-color5 { color: #BF00BF } .bg-color5 { background-color: #BF00BF }
  .fg-color6 { color: #00BFBF } .bg-color6 { background-color: #00BFBF }
  .fg-color7 { color: #BFBFBF } .bg-color7 { background-color: #BFBFBF }
  .fg-color8 { color: #404040 } .bg-color8 { background-color: #404040 }
  .fg-color9 { color: #FF4040 } .bg-color9 { background-color: #FF4040 }
  .fg-color10 { color: #40FF40 } .bg-color10 { background-color: #40FF40 }
  .fg-color11 { color: #FFFF40 } .bg-color11 { background-color: #FFFF40 }
  .fg-color12 { color: #6060FF } .bg-color12 { background-color: #6060FF }
  .fg-color13 { color: #FF40FF } .bg-color13 { background-color: #FF40FF }
  .fg-color14 { color: #40FFFF } .bg-color14 { background-color: #40FFFF }
  .fg-color15 { color: #FFFFFF } .bg-color15 { background-color: #FFFFFF }
  .cursor { background-color: #BFBFBF }
  .font10 { font-family: &#39;F25 Blackletter Typewriter&#39; } 
  &lt;/style&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #bfbfbf;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;lucida console&amp;quot; , &amp;quot;lucida console &amp;quot; , &amp;quot;consolas&amp;quot;;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #bfbfbf;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;lucida console&amp;quot; , &amp;quot;lucida console &amp;quot; , &amp;quot;consolas&amp;quot;;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;color: #bfbfbf;&quot;&gt;That&#39;s how my &quot;list&quot; file looks like:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #bfbfbf;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;lucida console&amp;quot; , &amp;quot;lucida console &amp;quot; , &amp;quot;consolas&amp;quot;;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #bfbfbf;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;lucida console&amp;quot; , &amp;quot;lucida console &amp;quot; , &amp;quot;consolas&amp;quot;;&quot;&gt;
  
  
  
  
  
  
  



  &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;div id=&quot;vt100&quot;&gt;
&lt;pre&gt;&lt;span class=&quot;od&quot;&gt;consul-server1                                                                                                                                                              &lt;/span&gt;
&lt;span class=&quot;ev&quot;&gt;consul-server2                                                                                                                                                              &lt;/span&gt;
&lt;span class=&quot;od&quot;&gt;bootstrap-server1                                                                                                                                                           &lt;/span&gt;
&lt;span class=&quot;ev&quot;&gt;client1                                                                                                                                                                     &lt;/span&gt;
&lt;span class=&quot;od&quot;&gt;client2                                                                                                                                                                     &lt;/span&gt;
&lt;span class=&quot;ev&quot;&gt;client3                                                                                                                                                                     &lt;/span&gt;
&lt;span class=&quot;od&quot;&gt;client4                                                                                                                                                                     &lt;/span&gt;
&lt;span class=&quot;ev&quot;&gt;client5                                                                                                                                                                     &lt;/span&gt;
&lt;span class=&quot;od&quot;&gt;192.168.3.111                                                                                                                                                               &lt;/span&gt;
&lt;span class=&quot;ev&quot;&gt;192.168.3.112                                                                                                                                                               &lt;/span&gt;
&lt;span class=&quot;od&quot;&gt;192.168.3.121                                                                                                                                                               &lt;/span&gt;
&lt;span class=&quot;ev&quot;&gt;192.168.3.151                                                                                                                                                               &lt;/span&gt;
&lt;span class=&quot;od&quot;&gt;192.168.3.152                                                                                                                                                               &lt;/span&gt;
&lt;span class=&quot;ev&quot;&gt;192.168.3.153                                                                                                                                                               &lt;/span&gt;
&lt;span class=&quot;od&quot;&gt;192.168.3.154                                                                                                                                                               &lt;/span&gt;
&lt;span class=&quot;ev&quot;&gt;192.168.3.155                                                                                                                                                               &lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;span style=&quot;color: #bfbfbf;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;lucida console&amp;quot; , &amp;quot;lucida console &amp;quot; , &amp;quot;consolas&amp;quot;;&quot;&gt;&lt;style type=&quot;text/css&quot;&gt; &lt;/style&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #bfbfbf;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;lucida console&amp;quot; , &amp;quot;lucida console &amp;quot; , &amp;quot;consolas&amp;quot;;&quot;&gt;&lt;style type=&quot;text/css&quot;&gt;ibody, pre { margin: 0; padding: 0; }
  pre { font-family: inherit; }
  #vt100 {
    float: left;
    border: 0px solid;
    padding: 1px;
    line-height: 111%;
    font-size: 9pt;
    font-family: &#39;Lucida Console&#39;, &#39;Lucida Console &#39;, &#39;Consolas&#39;;
    color: #BFBFBF;
    background-color: #000000;
    }
  .bd { font-weight: bold }
  .it { font-style: italic }
  .ul { text-decoration-line: underline }
  .st { text-decoration-line: line-through }
  .lu { text-decoration-line: line-through underline }
  .fg-color0 { color: #000000 } .bg-color0 { background-color: #000000 }
  .fg-color1 { color: #BF0000 } .bg-color1 { background-color: #BF0000 }
  .fg-color2 { color: #00BF00 } .bg-color2 { background-color: #00BF00 }
  .fg-color3 { color: #BFBF00 } .bg-color3 { background-color: #BFBF00 }
  .fg-color4 { color: #0000BF } .bg-color4 { background-color: #0000BF }
  .fg-color5 { color: #BF00BF } .bg-color5 { background-color: #BF00BF }
  .fg-color6 { color: #00BFBF } .bg-color6 { background-color: #00BFBF }
  .fg-color7 { color: #BFBFBF } .bg-color7 { background-color: #BFBFBF }
  .fg-color8 { color: #404040 } .bg-color8 { background-color: #404040 }
  .fg-color9 { color: #FF4040 } .bg-color9 { background-color: #FF4040 }
  .fg-color10 { color: #40FF40 } .bg-color10 { background-color: #40FF40 }
  .fg-color11 { color: #FFFF40 } .bg-color11 { background-color: #FFFF40 }
  .fg-color12 { color: #6060FF } .bg-color12 { background-color: #6060FF }
  .fg-color13 { color: #FF40FF } .bg-color13 { background-color: #FF40FF }
  .fg-color14 { color: #40FFFF } .bg-color14 { background-color: #40FFFF }
  .fg-color15 { color: #FFFFFF } .bg-color15 { background-color: #FFFFFF }
  .cursor { background-color: #BFBFBF }
  .font10 { font-family: &#39;F25 Blackletter Typewriter&#39; }
  &lt;/style&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;color: #bfbfbf;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;color: #bfbfbf;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;I purposely add IP as well as hostname as I keep using them interchangeably. I also came to know about ansible authorized_keys module that does the ssh-copy-id task:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;color: #bfbfbf;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;- name: Set authorized key for user ubuntu copying it from current user&lt;br /&gt;&amp;nbsp; authorized_key:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; user: ubuntu&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; state: present&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; key: &quot;{{ lookup(&#39;file&#39;, lookup(&#39;env&#39;,&#39;HOME&#39;) + &#39;/.ssh/id_rsa.pub&#39;) }}&quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;color: #bfbfbf;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;However, you will still need the the ssh-keyscan here. This script goes handy for ops who keep destroying their local environment and use a new one.This is available on Github: https://github.com/iamrawtion/ansible-autossh&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://roshannagekar.blogspot.com/feeds/2842693267830039493/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2838270249296465765/2842693267830039493?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2838270249296465765/posts/default/2842693267830039493'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2838270249296465765/posts/default/2842693267830039493'/><link rel='alternate' type='text/html' href='http://roshannagekar.blogspot.com/2019/02/one-click-ansible-authorization-for.html' title='Copying ssh keys easily'/><author><name>Roshan Nagekar</name><uri>http://www.blogger.com/profile/08009772289480467450</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2838270249296465765.post-6778474204239070531</id><published>2019-01-20T05:49:00.001-08:00</published><updated>2019-02-09T19:57:30.782-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AWS"/><category scheme="http://www.blogger.com/atom/ns#" term="Bulk tagging"/><category scheme="http://www.blogger.com/atom/ns#" term="Cloud Computing"/><category scheme="http://www.blogger.com/atom/ns#" term="Standard"/><category scheme="http://www.blogger.com/atom/ns#" term="Tags"/><title type='text'>AWS Tagger</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;o:OfficeDocumentSettings&gt;
  &lt;o:AllowPNG/&gt;
 &lt;/o:OfficeDocumentSettings&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:WordDocument&gt;
  &lt;w:View&gt;Normal&lt;/w:View&gt;
  &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;
  &lt;w:TrackMoves/&gt;
  &lt;w:TrackFormatting/&gt;
  &lt;w:PunctuationKerning/&gt;
  &lt;w:ValidateAgainstSchemas/&gt;
  &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;
  &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;
  &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;
  &lt;w:DoNotPromoteQF/&gt;
  &lt;w:LidThemeOther&gt;EN-US&lt;/w:LidThemeOther&gt;
  &lt;w:LidThemeAsian&gt;X-NONE&lt;/w:LidThemeAsian&gt;
  &lt;w:LidThemeComplexScript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;
  &lt;w:Compatibility&gt;
   &lt;w:BreakWrappedTables/&gt;
   &lt;w:SnapToGridInCell/&gt;
   &lt;w:WrapTextWithPunct/&gt;
   &lt;w:UseAsianBreakRules/&gt;
   &lt;w:DontGrowAutofit/&gt;
   &lt;w:SplitPgBreakAndParaMark/&gt;
   &lt;w:EnableOpenTypeKerning/&gt;
   &lt;w:DontFlipMirrorIndents/&gt;
   &lt;w:OverrideTableStyleHps/&gt;
  &lt;/w:Compatibility&gt;
  &lt;m:mathPr&gt;
   &lt;m:mathFont m:val=&quot;Cambria Math&quot;/&gt;
   &lt;m:brkBin m:val=&quot;before&quot;/&gt;
   &lt;m:brkBinSub m:val=&quot;&amp;#45;-&quot;/&gt;
   &lt;m:smallFrac m:val=&quot;off&quot;/&gt;
   &lt;m:dispDef/&gt;
   &lt;m:lMargin m:val=&quot;0&quot;/&gt;
   &lt;m:rMargin m:val=&quot;0&quot;/&gt;
   &lt;m:defJc m:val=&quot;centerGroup&quot;/&gt;
   &lt;m:wrapIndent m:val=&quot;1440&quot;/&gt;
   &lt;m:intLim m:val=&quot;subSup&quot;/&gt;
   &lt;m:naryLim m:val=&quot;undOvr&quot;/&gt;
  &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:LatentStyles DefLockedState=&quot;false&quot; DefUnhideWhenUsed=&quot;false&quot;
  DefSemiHidden=&quot;false&quot; DefQFormat=&quot;false&quot; DefPriority=&quot;99&quot;
  LatentStyleCount=&quot;371&quot;&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;0&quot; QFormat=&quot;true&quot; Name=&quot;Normal&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; QFormat=&quot;true&quot; Name=&quot;heading 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; QFormat=&quot;true&quot; Name=&quot;heading 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; QFormat=&quot;true&quot; Name=&quot;heading 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; QFormat=&quot;true&quot; Name=&quot;heading 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; QFormat=&quot;true&quot; Name=&quot;heading 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; QFormat=&quot;true&quot; Name=&quot;heading 7&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; QFormat=&quot;true&quot; Name=&quot;heading 8&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; QFormat=&quot;true&quot; Name=&quot;heading 9&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;index 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;index 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;index 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;index 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;index 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;index 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;index 7&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;index 8&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;index 9&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; Name=&quot;toc 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; Name=&quot;toc 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; Name=&quot;toc 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; Name=&quot;toc 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; Name=&quot;toc 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; Name=&quot;toc 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; Name=&quot;toc 7&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; Name=&quot;toc 8&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; Name=&quot;toc 9&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Normal Indent&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;footnote text&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;annotation text&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;header&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;footer&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;index heading&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;35&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; QFormat=&quot;true&quot; Name=&quot;caption&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;table of figures&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;envelope address&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;envelope return&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;footnote reference&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;annotation reference&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;line number&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;page number&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;endnote reference&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;endnote text&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;table of authorities&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;macro&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;toa heading&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;List&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;List Bullet&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;List Number&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;List 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;List 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;List 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;List 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;List Bullet 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;List Bullet 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;List Bullet 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;List Bullet 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;List Number 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;List Number 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;List Number 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;List Number 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;10&quot; QFormat=&quot;true&quot; Name=&quot;Title&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Closing&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Signature&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;1&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; Name=&quot;Default Paragraph Font&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Body Text&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Body Text Indent&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;List Continue&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;List Continue 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;List Continue 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;List Continue 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;List Continue 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Message Header&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;11&quot; QFormat=&quot;true&quot; Name=&quot;Subtitle&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Salutation&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Date&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Body Text First Indent&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Body Text First Indent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Note Heading&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Body Text 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Body Text 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Body Text Indent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Body Text Indent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Block Text&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Hyperlink&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;FollowedHyperlink&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;22&quot; QFormat=&quot;true&quot; Name=&quot;Strong&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;20&quot; QFormat=&quot;true&quot; Name=&quot;Emphasis&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Document Map&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Plain Text&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;E-mail Signature&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;HTML Top of Form&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;HTML Bottom of Form&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Normal (Web)&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;HTML Acronym&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;HTML Address&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;HTML Cite&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;HTML Code&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;HTML Definition&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;HTML Keyboard&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;HTML Preformatted&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;HTML Sample&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;HTML Typewriter&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;HTML Variable&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Normal Table&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;annotation subject&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;No List&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Outline List 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Outline List 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Outline List 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Simple 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Simple 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Simple 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Classic 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Classic 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Classic 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Classic 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Colorful 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Colorful 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Colorful 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Columns 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Columns 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Columns 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Columns 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Columns 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Grid 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Grid 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Grid 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Grid 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Grid 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Grid 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Grid 7&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Grid 8&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table List 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table List 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table List 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table List 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table List 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table List 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table List 7&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table List 8&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table 3D effects 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table 3D effects 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table 3D effects 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Contemporary&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Elegant&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Professional&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Subtle 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Subtle 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Web 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Web 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Web 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Balloon Text&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;Table Grid&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Theme&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; Name=&quot;Placeholder Text&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;1&quot; QFormat=&quot;true&quot; Name=&quot;No Spacing&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; Name=&quot;Light Shading&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; Name=&quot;Light List&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; Name=&quot;Light Grid&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; Name=&quot;Medium Shading 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; Name=&quot;Medium Shading 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; Name=&quot;Medium List 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; Name=&quot;Medium List 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; Name=&quot;Medium Grid 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; Name=&quot;Medium Grid 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; Name=&quot;Medium Grid 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; Name=&quot;Dark List&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; Name=&quot;Colorful Shading&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; Name=&quot;Colorful List&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; Name=&quot;Colorful Grid&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; Name=&quot;Light Shading Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; Name=&quot;Light List Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; Name=&quot;Light Grid Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; Name=&quot;Medium Shading 1 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; Name=&quot;Medium Shading 2 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; Name=&quot;Medium List 1 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; Name=&quot;Revision&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;34&quot; QFormat=&quot;true&quot;
   Name=&quot;List Paragraph&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;29&quot; QFormat=&quot;true&quot; Name=&quot;Quote&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;30&quot; QFormat=&quot;true&quot;
   Name=&quot;Intense Quote&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; Name=&quot;Medium List 2 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; Name=&quot;Medium Grid 1 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; Name=&quot;Medium Grid 2 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; Name=&quot;Medium Grid 3 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; Name=&quot;Dark List Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; Name=&quot;Colorful Shading Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; Name=&quot;Colorful List Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; Name=&quot;Colorful Grid Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; Name=&quot;Light Shading Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; Name=&quot;Light List Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; Name=&quot;Light Grid Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; Name=&quot;Medium Shading 1 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; Name=&quot;Medium Shading 2 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; Name=&quot;Medium List 1 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; Name=&quot;Medium List 2 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; Name=&quot;Medium Grid 1 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; Name=&quot;Medium Grid 2 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; Name=&quot;Medium Grid 3 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; Name=&quot;Dark List Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; Name=&quot;Colorful Shading Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; Name=&quot;Colorful List Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; Name=&quot;Colorful Grid Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; Name=&quot;Light Shading Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; Name=&quot;Light List Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; Name=&quot;Light Grid Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; Name=&quot;Medium Shading 1 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; Name=&quot;Medium Shading 2 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; Name=&quot;Medium List 1 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; Name=&quot;Medium List 2 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; Name=&quot;Medium Grid 1 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; Name=&quot;Medium Grid 2 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; Name=&quot;Medium Grid 3 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; Name=&quot;Dark List Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; Name=&quot;Colorful Shading Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; Name=&quot;Colorful List Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; Name=&quot;Colorful Grid Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; Name=&quot;Light Shading Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; Name=&quot;Light List Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; Name=&quot;Light Grid Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; Name=&quot;Medium Shading 1 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; Name=&quot;Medium Shading 2 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; Name=&quot;Medium List 1 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; Name=&quot;Medium List 2 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; Name=&quot;Medium Grid 1 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; Name=&quot;Medium Grid 2 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; Name=&quot;Medium Grid 3 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; Name=&quot;Dark List Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; Name=&quot;Colorful Shading Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; Name=&quot;Colorful List Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; Name=&quot;Colorful Grid Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; Name=&quot;Light Shading Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; Name=&quot;Light List Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; Name=&quot;Light Grid Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; Name=&quot;Medium Shading 1 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; Name=&quot;Medium Shading 2 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; Name=&quot;Medium List 1 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; Name=&quot;Medium List 2 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; Name=&quot;Medium Grid 1 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; Name=&quot;Medium Grid 2 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; Name=&quot;Medium Grid 3 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; Name=&quot;Dark List Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; Name=&quot;Colorful Shading Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; Name=&quot;Colorful List Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; Name=&quot;Colorful Grid Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; Name=&quot;Light Shading Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; Name=&quot;Light List Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; Name=&quot;Light Grid Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; Name=&quot;Medium Shading 1 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; Name=&quot;Medium Shading 2 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; Name=&quot;Medium List 1 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; Name=&quot;Medium List 2 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; Name=&quot;Medium Grid 1 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; Name=&quot;Medium Grid 2 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; Name=&quot;Medium Grid 3 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; Name=&quot;Dark List Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; Name=&quot;Colorful Shading Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; Name=&quot;Colorful List Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; Name=&quot;Colorful Grid Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;19&quot; QFormat=&quot;true&quot;
   Name=&quot;Subtle Emphasis&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;21&quot; QFormat=&quot;true&quot;
   Name=&quot;Intense Emphasis&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;31&quot; QFormat=&quot;true&quot;
   Name=&quot;Subtle Reference&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;32&quot; QFormat=&quot;true&quot;
   Name=&quot;Intense Reference&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;33&quot; QFormat=&quot;true&quot; Name=&quot;Book Title&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;37&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; Name=&quot;Bibliography&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; QFormat=&quot;true&quot; Name=&quot;TOC Heading&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;41&quot; Name=&quot;Plain Table 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;42&quot; Name=&quot;Plain Table 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;43&quot; Name=&quot;Plain Table 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;44&quot; Name=&quot;Plain Table 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;45&quot; Name=&quot;Plain Table 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;40&quot; Name=&quot;Grid Table Light&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;46&quot; Name=&quot;Grid Table 1 Light&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;47&quot; Name=&quot;Grid Table 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;48&quot; Name=&quot;Grid Table 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;49&quot; Name=&quot;Grid Table 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;50&quot; Name=&quot;Grid Table 5 Dark&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;51&quot; Name=&quot;Grid Table 6 Colorful&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;52&quot; Name=&quot;Grid Table 7 Colorful&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;46&quot;
   Name=&quot;Grid Table 1 Light Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;47&quot; Name=&quot;Grid Table 2 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;48&quot; Name=&quot;Grid Table 3 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;49&quot; Name=&quot;Grid Table 4 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;50&quot; Name=&quot;Grid Table 5 Dark Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;51&quot;
   Name=&quot;Grid Table 6 Colorful Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;52&quot;
   Name=&quot;Grid Table 7 Colorful Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;46&quot;
   Name=&quot;Grid Table 1 Light Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;47&quot; Name=&quot;Grid Table 2 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;48&quot; Name=&quot;Grid Table 3 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;49&quot; Name=&quot;Grid Table 4 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;50&quot; Name=&quot;Grid Table 5 Dark Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;51&quot;
   Name=&quot;Grid Table 6 Colorful Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;52&quot;
   Name=&quot;Grid Table 7 Colorful Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;46&quot;
   Name=&quot;Grid Table 1 Light Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;47&quot; Name=&quot;Grid Table 2 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;48&quot; Name=&quot;Grid Table 3 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;49&quot; Name=&quot;Grid Table 4 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;50&quot; Name=&quot;Grid Table 5 Dark Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;51&quot;
   Name=&quot;Grid Table 6 Colorful Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;52&quot;
   Name=&quot;Grid Table 7 Colorful Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;46&quot;
   Name=&quot;Grid Table 1 Light Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;47&quot; Name=&quot;Grid Table 2 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;48&quot; Name=&quot;Grid Table 3 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;49&quot; Name=&quot;Grid Table 4 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;50&quot; Name=&quot;Grid Table 5 Dark Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;51&quot;
   Name=&quot;Grid Table 6 Colorful Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;52&quot;
   Name=&quot;Grid Table 7 Colorful Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;46&quot;
   Name=&quot;Grid Table 1 Light Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;47&quot; Name=&quot;Grid Table 2 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;48&quot; Name=&quot;Grid Table 3 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;49&quot; Name=&quot;Grid Table 4 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;50&quot; Name=&quot;Grid Table 5 Dark Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;51&quot;
   Name=&quot;Grid Table 6 Colorful Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;52&quot;
   Name=&quot;Grid Table 7 Colorful Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;46&quot;
   Name=&quot;Grid Table 1 Light Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;47&quot; Name=&quot;Grid Table 2 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;48&quot; Name=&quot;Grid Table 3 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;49&quot; Name=&quot;Grid Table 4 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;50&quot; Name=&quot;Grid Table 5 Dark Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;51&quot;
   Name=&quot;Grid Table 6 Colorful Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;52&quot;
   Name=&quot;Grid Table 7 Colorful Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;46&quot; Name=&quot;List Table 1 Light&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;47&quot; Name=&quot;List Table 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;48&quot; Name=&quot;List Table 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;49&quot; Name=&quot;List Table 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;50&quot; Name=&quot;List Table 5 Dark&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;51&quot; Name=&quot;List Table 6 Colorful&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;52&quot; Name=&quot;List Table 7 Colorful&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;46&quot;
   Name=&quot;List Table 1 Light Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;47&quot; Name=&quot;List Table 2 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;48&quot; Name=&quot;List Table 3 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;49&quot; Name=&quot;List Table 4 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;50&quot; Name=&quot;List Table 5 Dark Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;51&quot;
   Name=&quot;List Table 6 Colorful Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;52&quot;
   Name=&quot;List Table 7 Colorful Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;46&quot;
   Name=&quot;List Table 1 Light Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;47&quot; Name=&quot;List Table 2 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;48&quot; Name=&quot;List Table 3 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;49&quot; Name=&quot;List Table 4 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;50&quot; Name=&quot;List Table 5 Dark Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;51&quot;
   Name=&quot;List Table 6 Colorful Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;52&quot;
   Name=&quot;List Table 7 Colorful Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;46&quot;
   Name=&quot;List Table 1 Light Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;47&quot; Name=&quot;List Table 2 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;48&quot; Name=&quot;List Table 3 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;49&quot; Name=&quot;List Table 4 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;50&quot; Name=&quot;List Table 5 Dark Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;51&quot;
   Name=&quot;List Table 6 Colorful Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;52&quot;
   Name=&quot;List Table 7 Colorful Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;46&quot;
   Name=&quot;List Table 1 Light Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;47&quot; Name=&quot;List Table 2 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;48&quot; Name=&quot;List Table 3 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;49&quot; Name=&quot;List Table 4 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;50&quot; Name=&quot;List Table 5 Dark Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;51&quot;
   Name=&quot;List Table 6 Colorful Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;52&quot;
   Name=&quot;List Table 7 Colorful Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;46&quot;
   Name=&quot;List Table 1 Light Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;47&quot; Name=&quot;List Table 2 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;48&quot; Name=&quot;List Table 3 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;49&quot; Name=&quot;List Table 4 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;50&quot; Name=&quot;List Table 5 Dark Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;51&quot;
   Name=&quot;List Table 6 Colorful Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;52&quot;
   Name=&quot;List Table 7 Colorful Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;46&quot;
   Name=&quot;List Table 1 Light Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;47&quot; Name=&quot;List Table 2 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;48&quot; Name=&quot;List Table 3 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;49&quot; Name=&quot;List Table 4 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;50&quot; Name=&quot;List Table 5 Dark Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;51&quot;
   Name=&quot;List Table 6 Colorful Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;52&quot;
   Name=&quot;List Table 7 Colorful Accent 6&quot;/&gt;
 &lt;/w:LatentStyles&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 10]&gt;
&lt;style&gt;
 /* Style Definitions */
 table.MsoNormalTable
 {mso-style-name:&quot;Table Normal&quot;;
 mso-tstyle-rowband-size:0;
 mso-tstyle-colband-size:0;
 mso-style-noshow:yes;
 mso-style-priority:99;
 mso-style-parent:&quot;&quot;;
 mso-padding-alt:0in 5.4pt 0in 5.4pt;
 mso-para-margin-top:0in;
 mso-para-margin-right:0in;
 mso-para-margin-bottom:8.0pt;
 mso-para-margin-left:0in;
 line-height:107%;
 mso-pagination:widow-orphan;
 font-size:11.0pt;
 font-family:&quot;Calibri&quot;,sans-serif;
 mso-ascii-font-family:Calibri;
 mso-ascii-theme-font:minor-latin;
 mso-hansi-font-family:Calibri;
 mso-hansi-theme-font:minor-latin;
 mso-bidi-font-family:&quot;Times New Roman&quot;;
 mso-bidi-theme-font:minor-bidi;}
&lt;/style&gt;
&lt;![endif]--&gt;

&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;tahoma&amp;quot; , sans-serif; font-size: 12.0pt;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSkdewqis72w1XkzPA-m8lxPsaI_kyWYWLc4OJOuWbxorWek9ji6RIGq4lsjRQ0S1fvr2YcJg5EgHuXgK0sz7Wlcc9TMwmiTWpcTkuHsLP0vjS94X1ZE-g0u_oxJjvsq7r9-mxub2PS8Q/s1600/3814523970_56b2af4d12_z.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;425&quot; data-original-width=&quot;640&quot; height=&quot;212&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSkdewqis72w1XkzPA-m8lxPsaI_kyWYWLc4OJOuWbxorWek9ji6RIGq4lsjRQ0S1fvr2YcJg5EgHuXgK0sz7Wlcc9TMwmiTWpcTkuHsLP0vjS94X1ZE-g0u_oxJjvsq7r9-mxub2PS8Q/s320/3814523970_56b2af4d12_z.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;tahoma&amp;quot; , sans-serif; font-size: 12.0pt;&quot;&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;Image credits : &lt;a href=&quot;https://www.flickr.com/photos/jdhancock/&quot;&gt;jdhancock&lt;/a&gt;&lt;/span&gt;&lt;a href=&quot;https://www.flickr.com/photos/jdhancock/&quot;&gt; &lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;tahoma&amp;quot; , sans-serif; font-size: 12.0pt;&quot;&gt;Tagging in AWS is often not considered useful by many users. Tagging of resources in cloud and DC not only helps us identify resources but it can also do multiple other wonders that one might have never thought about. We don&#39;t tag resources in cloud for many reasons, laziness being the topmost reason.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;tahoma&amp;quot; , sans-serif; font-size: 12.0pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;tahoma&amp;quot; , sans-serif; font-size: 12.0pt;&quot;&gt;Lets see why tagging is important:&lt;/span&gt;&lt;/div&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;tahoma&amp;quot; , sans-serif; font-size: 12.0pt;&quot;&gt;Identification and Isolation: Tagging allows identification of resources as to what purpose a specific resource may have been created for. It also allows you to separate resources from each other. e.g. separating different environments.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;tahoma&amp;quot; , sans-serif; font-size: 12.0pt;&quot;&gt;&amp;nbsp;Automation: When you tag resources with certain values you can ensure that your automation scripts only addresses certain intended resources and not all. e.g execute security patches on certain systems that need to be compliant.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;tahoma&amp;quot; , sans-serif; font-size: 12.0pt;&quot;&gt;Costing: You can identify based on tags as to which resource is costly and also make business decisions based on the results received.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;tahoma&amp;quot; , sans-serif; font-size: 12.0pt;&quot;&gt;Define ownership: You can also understand based on proper tags as to who are the stakeholders for a certain resource or group of resources.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;tahoma&amp;quot; , sans-serif; font-size: 12.0pt;&quot;&gt;Versioning: Sometimes when you need certain resources to be preserved based on its state, you may also versionize them based on tagging. Although AWS provides versioning mechanism for a few services, it may not be applicable to all of them.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;span style=&quot;font-family: &amp;quot;tahoma&amp;quot; , sans-serif; font-size: 12.0pt;&quot;&gt;&amp;nbsp;In many organizations although the importance of tagging is understood a lot later. Until then its too late to start tagging and it becomes almost always a manual process to tag all the resources. Or you may need to write complex programs to identify systems and tag them as per your requirement. Thankfully, &lt;a href=&quot;https://github.com/washingtonpost/aws-tagger&quot;&gt;AWS Tagger&lt;/a&gt; comes to rescue if you have a requirement to tag your AWS resources. You may also bulk tag them to avoid a lot of manual work. So how do we do this.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;tahoma&amp;quot; , sans-serif; font-size: 12.0pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;tahoma&amp;quot; , sans-serif; font-size: 12.0pt;&quot;&gt;Its a 3 step process to Bulk tag resources:&lt;/span&gt;&lt;br /&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;tahoma&amp;quot; , sans-serif; font-size: 12.0pt;&quot;&gt;Collection : This is a simple process. Here all you need to do is, collect all the resources in a file. Hereafter you may process this data. AWS Tagger heavily depends of resource ID&#39;s of all the resources you create. Resource ID&#39;s are further used to implement all the tags. To get the resource ID&#39;s for all the resources, simply login to your AWS account and navigate to https://resources.console.aws.amazon.com/r/tags . On this page, you are given a field to enter the region for the resource you want to choose and all choose the types of resource. Choose &quot;All resource types&quot; here and click on &quot;Find Resources&quot; button. Click on the &quot;Download&quot; button to download the CSV data generated.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;tahoma&amp;quot; , sans-serif; font-size: 12.0pt;&quot;&gt;Identification and filtering: I recommend this step particularly to filter the data so that AWS Tagger can act on individual resources. Here you may use your excel skills to separate data based on resource types.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;tahoma&amp;quot; , sans-serif; font-size: 12.0pt;&quot;&gt;Tagging: Once the resources are separated, you may start executing AWS Tagger scripts as per the &lt;a href=&quot;https://github.com/washingtonpost/aws-tagger/blob/master/README.md&quot;&gt;documentation&lt;/a&gt; provided on their Github page. &lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://roshannagekar.blogspot.com/feeds/6778474204239070531/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2838270249296465765/6778474204239070531?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2838270249296465765/posts/default/6778474204239070531'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2838270249296465765/posts/default/6778474204239070531'/><link rel='alternate' type='text/html' href='http://roshannagekar.blogspot.com/2019/01/aws-tagger.html' title='AWS Tagger'/><author><name>Roshan Nagekar</name><uri>http://www.blogger.com/profile/08009772289480467450</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSkdewqis72w1XkzPA-m8lxPsaI_kyWYWLc4OJOuWbxorWek9ji6RIGq4lsjRQ0S1fvr2YcJg5EgHuXgK0sz7Wlcc9TMwmiTWpcTkuHsLP0vjS94X1ZE-g0u_oxJjvsq7r9-mxub2PS8Q/s72-c/3814523970_56b2af4d12_z.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2838270249296465765.post-891107759179910913</id><published>2019-01-18T19:27:00.001-08:00</published><updated>2019-02-09T19:58:20.322-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Devops"/><category scheme="http://www.blogger.com/atom/ns#" term="DevSecOps"/><category scheme="http://www.blogger.com/atom/ns#" term="Information Security"/><category scheme="http://www.blogger.com/atom/ns#" term="Meetups"/><category scheme="http://www.blogger.com/atom/ns#" term="SecOps"/><title type='text'>DevSecOps Pune Meetup 2</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
For the 2nd DevSecOps meetup, we already had our first swag sponsor. For DevOps Pune, I received swags from Docker and Ansible. Hashicorp was also planning to send a few.&lt;br /&gt;
&lt;br /&gt;
With DevSecOps our 1st swag sponsor was &lt;a href=&quot;https://polyverse.io/&quot;&gt;Polyverse &lt;/a&gt;:) I couldn&#39;t resist posting these.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvy1sH1jsAkoV6WY3S23Y4B_9QXsaupA8BKO91obfWaSTNR54oZSacCR4LvFmkLAK597Bq-PCNQYj1eCBr5qEPzIkYqhPQZMFGCS-L6LFnPU_O30elVV3HgRocsWG7XXalMZpdoEoyZls/s1600/02_1.jpeg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1200&quot; data-original-width=&quot;1600&quot; height=&quot;480&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvy1sH1jsAkoV6WY3S23Y4B_9QXsaupA8BKO91obfWaSTNR54oZSacCR4LvFmkLAK597Bq-PCNQYj1eCBr5qEPzIkYqhPQZMFGCS-L6LFnPU_O30elVV3HgRocsWG7XXalMZpdoEoyZls/s640/02_1.jpeg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
For this meetup, I changed the RSVP format to get an exact count. I was expecting to start soon at a bigger location. We couldn&#39;t risk wasting of resources. Lean coffee needs logistics to take care of and hence needs to be addressed really well. Everyone who RSVP&#39; at the meetup page was informed to Call/SMS/WhatsApp the organizers to book a slot. So the Meetup page RSVP meant nothing.&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;a href=&quot;https://www.qualys.com/&quot;&gt;Qualys&lt;/a&gt; Pune, was our venue, logistics and refreshment sponsor this time. When I 1st told them about the meetup, this is how the they arranged the seating :) :&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgo7uwxsHuGEoEwRwPNE2o_IaqBzQuO6wGkURca5Kvc3SPGA7FZuIp0pPbF70C1SrO-o79LXl5GRzt01x3_urM6havb0_9pnevs0pf1hiHJuldJMLl-d6EKl3acbJkSjLIdszT48g9G65s/s1600/IMG_20190112_092119.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1200&quot; data-original-width=&quot;1600&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgo7uwxsHuGEoEwRwPNE2o_IaqBzQuO6wGkURca5Kvc3SPGA7FZuIp0pPbF70C1SrO-o79LXl5GRzt01x3_urM6havb0_9pnevs0pf1hiHJuldJMLl-d6EKl3acbJkSjLIdszT48g9G65s/s320/IMG_20190112_092119.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
I told them about the format and later we changed the seating to best suit the format.&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
We had 12 RSVP and 10 attendees this time with just 1 last minute informed cancellation. That was a perfect number . We also made sure that the refreshment we take was a packed and long lasting one so we don&#39;t waste food.&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
With 10 attendees we stared pretty much on time and this time we had a huge list to discuss and the participants were from mixed domains unlike last meetup. This time we had QAs, Support Engineers, DevOps, Consultants and Developers altogether.&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
The following topics got discussed:&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Understanding PKI - Public Key Infra (How SSL Works?)&lt;/li&gt;
&lt;li&gt;CIS Benchmarking&lt;/li&gt;
&lt;li&gt;SOAR (Security, Orchestration, Automation and Response)&lt;/li&gt;
&lt;li&gt;AWS Compliance&lt;/li&gt;
&lt;li&gt;Securing serverless in Azure (Function as a Service) &lt;/li&gt;
&lt;li&gt;Debian Linux and Contributing to it&lt;/li&gt;
&lt;li&gt;Microservices with an example&lt;/li&gt;
&lt;/ul&gt;
SSL and PKI got discussed a lot since &lt;a href=&quot;https://www.linkedin.com/in/nixmaniack/&quot;&gt;Muneeb Shaikh&lt;/a&gt; really explained concepts that we were unaware of that goes behind PKI formation and how public and private keys work. A 5 minutes discussion prolonged to a good long 30 minutes with inputs from everyone.&lt;br /&gt;
&lt;br /&gt;
SOAR was a new process and concept that Rahul spoke about and worth reading for everyone. CIS compliance was a hit one this time too. We understood that it was topic worth presentation hence added to the DevOps Pune meetups Agenda. Later we spoke about AWS compliance and how Prowler could be used to ensure compliance in AWS. We also discussed importance of good naming conventions and Tagging in AWS. There was a chaos when we spoke about both serverless and microservices resulting to a debate topic that we discussed at the end of the meetup. The final closure was on Debian systems and how we would contribute to it.&lt;br /&gt;
&lt;br /&gt;
Takeaways from this session for speakers to prepare were:&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&amp;nbsp;PKI and SSL encryption&lt;/li&gt;
&lt;li&gt;Microservices&lt;/li&gt;
&lt;/ul&gt;
A few topics that did not get discussed were:&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Types of Security and importance of each&lt;/li&gt;
&lt;li&gt;GRC - Governance, Risk and Compliance&lt;/li&gt;
&lt;li&gt;Security Testing with Selenium&lt;/li&gt;
&lt;li&gt;Achieving CI/CD with Ansible&lt;/li&gt;
&lt;/ul&gt;
This turned out to be a long event in spite of small number of attendees. Muneeb got Polyverse T-Shirt to keep PKI discussion happening and also actively participating in all other topics as well. Some others got stickers.&lt;br /&gt;
&lt;br /&gt;
Some clicks :)&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLW30vwclP0J9yoU4xgz4OKBatIHtiMWRD9lTUwzpAKXHQq47-NMvAmODkiU_bBO0L1qY_Z-7h0bR7djyiOs4N7PggrNl38AJNEZHkye6VZGLRiL-_LdYatyhvtbXguvIzS01v7mHv_Gs/s1600/02_2.jpeg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;450&quot; data-original-width=&quot;600&quot; height=&quot;480&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLW30vwclP0J9yoU4xgz4OKBatIHtiMWRD9lTUwzpAKXHQq47-NMvAmODkiU_bBO0L1qY_Z-7h0bR7djyiOs4N7PggrNl38AJNEZHkye6VZGLRiL-_LdYatyhvtbXguvIzS01v7mHv_Gs/s640/02_2.jpeg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjD4irBjuoSZeVaCgweb_-QEGUFyDxlanogqctWgUIeZlUiAdOzWFxgHUpoJriVTay_XIWv3R6OxJHqarHbbVKIbT7OvtJKbM_khNZJ6AIC1Z5e9JngTVWZXrMQzkiDLEflLzGswncrbc/s1600/02_3.jpeg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;450&quot; data-original-width=&quot;600&quot; height=&quot;300&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjD4irBjuoSZeVaCgweb_-QEGUFyDxlanogqctWgUIeZlUiAdOzWFxgHUpoJriVTay_XIWv3R6OxJHqarHbbVKIbT7OvtJKbM_khNZJ6AIC1Z5e9JngTVWZXrMQzkiDLEflLzGswncrbc/s400/02_3.jpeg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj06u9Fh0RlhOv3KvbbPV1Mp6BmaGrrHlDNVTVvgxkAHkEPP0mLBxDHKXV6H90DnJr7sJjTzMiatlpeEwf2Wc9TbPQWAVv1PUYwsrOBuRhL3TN7kQaEXSjuXV3iOtzWTFTYDSpnN_O6LQE/s1600/02_6.jpeg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;450&quot; data-original-width=&quot;600&quot; height=&quot;300&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj06u9Fh0RlhOv3KvbbPV1Mp6BmaGrrHlDNVTVvgxkAHkEPP0mLBxDHKXV6H90DnJr7sJjTzMiatlpeEwf2Wc9TbPQWAVv1PUYwsrOBuRhL3TN7kQaEXSjuXV3iOtzWTFTYDSpnN_O6LQE/s400/02_6.jpeg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://roshannagekar.blogspot.com/feeds/891107759179910913/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2838270249296465765/891107759179910913?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2838270249296465765/posts/default/891107759179910913'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2838270249296465765/posts/default/891107759179910913'/><link rel='alternate' type='text/html' href='http://roshannagekar.blogspot.com/2019/01/devsecops-pune-meetup-2.html' title='DevSecOps Pune Meetup 2'/><author><name>Roshan Nagekar</name><uri>http://www.blogger.com/profile/08009772289480467450</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvy1sH1jsAkoV6WY3S23Y4B_9QXsaupA8BKO91obfWaSTNR54oZSacCR4LvFmkLAK597Bq-PCNQYj1eCBr5qEPzIkYqhPQZMFGCS-L6LFnPU_O30elVV3HgRocsWG7XXalMZpdoEoyZls/s72-c/02_1.jpeg" height="72" width="72"/><thr:total>0</thr:total></entry></feed>