<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Parikshit Agnihotry</title>
    <link>https://p.agnihotry.com/</link>
    <description>Recent content on Parikshit Agnihotry</description>
    <generator>Hugo -- gohugo.io</generator>
    <lastBuildDate>Mon, 25 Oct 2021 00:00:00 -0800</lastBuildDate><atom:link href="https://p.agnihotry.com/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Hiring Software Engineers</title>
      <link>https://p.agnihotry.com/post/hiring_software_engineers/</link>
      <pubDate>Mon, 25 Oct 2021 00:00:00 -0800</pubDate>
      
      <guid>https://p.agnihotry.com/post/hiring_software_engineers/</guid>
      <description>&lt;link rel=&#34;stylesheet&#34; href=&#34;https://p.agnihotry.com/css/hugo-easy-gallery.css&#34; /&gt;
&lt;div class=&#34;box&#34; &gt;
  &lt;figure  itemprop=&#34;associatedMedia&#34; itemscope itemtype=&#34;http://schema.org/ImageObject&#34;&gt;
    &lt;div class=&#34;img&#34;&gt;
      &lt;img itemprop=&#34;thumbnail&#34; src=&#34;https://res.cloudinary.com/pagnihotry/image/upload/v1635223873/pagnihotry/hiring.jpg&#34; alt=&#34;https://res.cloudinary.com/pagnihotry/image/upload/v1635223873/pagnihotry/hiring.jpg&#34;/&gt;
    &lt;/div&gt;
    &lt;a href=&#34;https://res.cloudinary.com/pagnihotry/image/upload/v1635223873/pagnihotry/hiring.jpg&#34; itemprop=&#34;contentUrl&#34;&gt;&lt;/a&gt;
  &lt;/figure&gt;
&lt;/div&gt;

&lt;p&gt;Apart from the interview questions, there are a lot of factors to consider while interviewing software engineers. In this write-up, I try to summarize the concepts that I have learned in the past 12 years of hiring software engineers across domains, teams, and levels.&lt;/p&gt;
&lt;p&gt;The goal of this write-up is to put forward the thought process that can be used to structure the interview and read the indicators to decide if a candidate is a good fit for your organization and role.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Programming At Web Scale With Data Caching</title>
      <link>https://p.agnihotry.com/post/programming-at-web-scale-with-data-caching/</link>
      <pubDate>Fri, 06 Nov 2020 00:00:00 +0000</pubDate>
      
      <guid>https://p.agnihotry.com/post/programming-at-web-scale-with-data-caching/</guid>
      <description>&lt;link rel=&#34;stylesheet&#34; href=&#34;https://p.agnihotry.com/css/hugo-easy-gallery.css&#34; /&gt;
&lt;div class=&#34;box&#34; &gt;
  &lt;figure  itemprop=&#34;associatedMedia&#34; itemscope itemtype=&#34;http://schema.org/ImageObject&#34;&gt;
    &lt;div class=&#34;img&#34;&gt;
      &lt;img itemprop=&#34;thumbnail&#34; src=&#34;https://res.cloudinary.com/pagnihotry/image/upload/v1604986465/pagnihotry/image8.png&#34; alt=&#34;https://res.cloudinary.com/pagnihotry/image/upload/v1604986465/pagnihotry/image8.png&#34;/&gt;
    &lt;/div&gt;
    &lt;a href=&#34;https://res.cloudinary.com/pagnihotry/image/upload/v1604986465/pagnihotry/image8.png&#34; itemprop=&#34;contentUrl&#34;&gt;&lt;/a&gt;
  &lt;/figure&gt;
&lt;/div&gt;

&lt;p&gt;Caching is an important aspect of building an application that performs well at web scale. Proper caching can reduce the number of API calls, save on CPU time, make requests faster, the application more responsive, and reduce the infrastructure cost.&lt;/p&gt;
&lt;p&gt;We used one of the techniques mentioned in this article to reduce the average response times from upto 200 ms to 3 ms, reduction by a factor of 67.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Validating &#34;Sign in with Apple&#34; Authorization Code</title>
      <link>https://p.agnihotry.com/post/validating_sign_in_with_apple_authorization_code/</link>
      <pubDate>Mon, 16 Dec 2019 00:00:00 -0800</pubDate>
      
      <guid>https://p.agnihotry.com/post/validating_sign_in_with_apple_authorization_code/</guid>
      <description>&lt;link rel=&#34;stylesheet&#34; href=&#34;https://p.agnihotry.com/css/hugo-easy-gallery.css&#34; /&gt;
&lt;div class=&#34;box&#34; &gt;
  &lt;figure  itemprop=&#34;associatedMedia&#34; itemscope itemtype=&#34;http://schema.org/ImageObject&#34;&gt;
    &lt;div class=&#34;img&#34;&gt;
      &lt;img itemprop=&#34;thumbnail&#34; src=&#34;https://res.cloudinary.com/pagnihotry/image/upload/v1576343105/pagnihotry/sign-in-with-apple.jpg&#34; alt=&#34;https://res.cloudinary.com/pagnihotry/image/upload/v1576343105/pagnihotry/sign-in-with-apple.jpg&#34;/&gt;
    &lt;/div&gt;
    &lt;a href=&#34;https://res.cloudinary.com/pagnihotry/image/upload/v1576343105/pagnihotry/sign-in-with-apple.jpg&#34; itemprop=&#34;contentUrl&#34;&gt;&lt;/a&gt;
  &lt;/figure&gt;
&lt;/div&gt;

&lt;p&gt;Sign in with Apple launched earlier this year. Developers can use it to have users log in using their Apple accounts. This post outlines validating the &lt;code&gt;authorizationCode&lt;/code&gt; received after the user signs in with Apple, generating JWT ES256 signature, verifying JWT signature using RS256 and using the refresh token to get an access token from Apple with implementation details and code samples in Golang.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Creating Custom AWS Lambda Runtime using Lambda Layer</title>
      <link>https://p.agnihotry.com/post/php_aws_lambda_runtime/</link>
      <pubDate>Sun, 02 Dec 2018 00:00:00 -0800</pubDate>
      
      <guid>https://p.agnihotry.com/post/php_aws_lambda_runtime/</guid>
      <description>&lt;link rel=&#34;stylesheet&#34; href=&#34;https://p.agnihotry.com/css/hugo-easy-gallery.css&#34; /&gt;
&lt;div class=&#34;box&#34; &gt;
  &lt;figure  itemprop=&#34;associatedMedia&#34; itemscope itemtype=&#34;http://schema.org/ImageObject&#34;&gt;
    &lt;div class=&#34;img&#34;&gt;
      &lt;img itemprop=&#34;thumbnail&#34; src=&#34;https://res.cloudinary.com/pagnihotry/image/upload/v1543856553/pagnihotry/php-aws-lambda.jpg&#34; alt=&#34;https://res.cloudinary.com/pagnihotry/image/upload/v1543856553/pagnihotry/php-aws-lambda.jpg&#34;/&gt;
    &lt;/div&gt;
    &lt;a href=&#34;https://res.cloudinary.com/pagnihotry/image/upload/v1543856553/pagnihotry/php-aws-lambda.jpg&#34; itemprop=&#34;contentUrl&#34;&gt;&lt;/a&gt;
  &lt;/figure&gt;
&lt;/div&gt;

&lt;p&gt;Over the weekend, I spent some time experimenting with the new Runtime API and Lambda Layer that AWS announced last week. The goal was to create a custom runtime that I could use to start writing Lambda functions in PHP. Following is a brief summary of what I learned in the process and steps to create your own custom runtime.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>The Free Stack - Running your application for free on AWS</title>
      <link>https://p.agnihotry.com/post/the_free_stack_aws/</link>
      <pubDate>Mon, 23 Jul 2018 00:00:00 -0800</pubDate>
      
      <guid>https://p.agnihotry.com/post/the_free_stack_aws/</guid>
      <description>&lt;link rel=&#34;stylesheet&#34; href=&#34;https://p.agnihotry.com/css/hugo-easy-gallery.css&#34; /&gt;
&lt;div class=&#34;box&#34; &gt;
  &lt;figure  itemprop=&#34;associatedMedia&#34; itemscope itemtype=&#34;http://schema.org/ImageObject&#34;&gt;
    &lt;div class=&#34;img&#34;&gt;
      &lt;img itemprop=&#34;thumbnail&#34; src=&#34;https://res.cloudinary.com/pagnihotry/image/upload/v1532367462/pagnihotry/AWS_logo.png&#34; alt=&#34;https://res.cloudinary.com/pagnihotry/image/upload/v1532367462/pagnihotry/AWS_logo.png&#34;/&gt;
    &lt;/div&gt;
    &lt;a href=&#34;https://res.cloudinary.com/pagnihotry/image/upload/v1532367462/pagnihotry/AWS_logo.png&#34; itemprop=&#34;contentUrl&#34;&gt;&lt;/a&gt;
  &lt;/figure&gt;
&lt;/div&gt;

&lt;p&gt;We live in interesting times. The cloud offerings from Amazon, Google and Microsoft have led to a situation where world-class infrastructure is available to startups and solopreneurs for very cheap, and most of the times, they can even get started for free.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Understanding the context package in golang</title>
      <link>https://p.agnihotry.com/post/understanding_the_context_package_in_golang/</link>
      <pubDate>Thu, 31 May 2018 06:00:00 -0800</pubDate>
      
      <guid>https://p.agnihotry.com/post/understanding_the_context_package_in_golang/</guid>
      <description>&lt;link rel=&#34;stylesheet&#34; href=&#34;https://p.agnihotry.com/css/hugo-easy-gallery.css&#34; /&gt;
&lt;div class=&#34;box&#34; &gt;
  &lt;figure  itemprop=&#34;associatedMedia&#34; itemscope itemtype=&#34;http://schema.org/ImageObject&#34;&gt;
    &lt;div class=&#34;img&#34;&gt;
      &lt;img itemprop=&#34;thumbnail&#34; src=&#34;https://res.cloudinary.com/pagnihotry/image/upload/v1532622064/pagnihotry/Go-Logo_Blue-trimmed.jpg&#34; alt=&#34;https://res.cloudinary.com/pagnihotry/image/upload/v1532622064/pagnihotry/Go-Logo_Blue-trimmed.jpg&#34;/&gt;
    &lt;/div&gt;
    &lt;a href=&#34;https://res.cloudinary.com/pagnihotry/image/upload/v1532622064/pagnihotry/Go-Logo_Blue-trimmed.jpg&#34; itemprop=&#34;contentUrl&#34;&gt;&lt;/a&gt;
  &lt;/figure&gt;
&lt;/div&gt;

&lt;p&gt;The context package in go can come in handy while interacting with APIs and slow processes, especially in production-grade systems that serve web requests. Where, you might want to notify all the goroutines to stop work and return. Here is a basic tutorial on how you can use it in your projects with some best practices and gotchas.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Terraform your Infrastructure!</title>
      <link>https://p.agnihotry.com/post/infrastructure_as_code_terraform/</link>
      <pubDate>Mon, 30 Apr 2018 07:48:13 -0800</pubDate>
      
      <guid>https://p.agnihotry.com/post/infrastructure_as_code_terraform/</guid>
      <description>&lt;link rel=&#34;stylesheet&#34; href=&#34;https://p.agnihotry.com/css/hugo-easy-gallery.css&#34; /&gt;
&lt;div class=&#34;box&#34; &gt;
  &lt;figure  itemprop=&#34;associatedMedia&#34; itemscope itemtype=&#34;http://schema.org/ImageObject&#34;&gt;
    &lt;div class=&#34;img&#34;&gt;
      &lt;img itemprop=&#34;thumbnail&#34; src=&#34;https://res.cloudinary.com/pagnihotry/image/upload/v1532622187/pagnihotry/tf-multicloud.jpg&#34; alt=&#34;https://res.cloudinary.com/pagnihotry/image/upload/v1532622187/pagnihotry/tf-multicloud.jpg&#34;/&gt;
    &lt;/div&gt;
    &lt;a href=&#34;https://res.cloudinary.com/pagnihotry/image/upload/v1532622187/pagnihotry/tf-multicloud.jpg&#34; itemprop=&#34;contentUrl&#34;&gt;&lt;/a&gt;
  &lt;/figure&gt;
&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;What is Terraform and why do you need it?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;If you have any resources in AWS/Google Cloud/Azure, etc. its a high likelihood that terraform can improve your workflow and make management of your cloud resources a breeze! I have used it with AWS, so, most of this post will discuss terraform in context of AWS. But, it works fine with Google Cloud, Azure, Alibaba cloud, etc.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Continuous deployment of a Static Website</title>
      <link>https://p.agnihotry.com/post/continuous_deployment_of_a_static_website/</link>
      <pubDate>Thu, 22 Feb 2018 07:48:13 -0800</pubDate>
      
      <guid>https://p.agnihotry.com/post/continuous_deployment_of_a_static_website/</guid>
      <description>I wanted to set up a blog that scales, is free and takes minimal effort from me to maintain. These days, there are multiple offerings that can be combined to achieve this. But, one of my requirements was also to be able to deploy my new posts and changes easily.
I wanted a set up where, once I make any changes, they go live immediately with little to no intervention on my part.</description>
    </item>
    
    <item>
      <title>About me</title>
      <link>https://p.agnihotry.com/page/about/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://p.agnihotry.com/page/about/</guid>
      <description>Software Engineer. Love to explore how technology can make our lives better.</description>
    </item>
    
  </channel>
</rss>
