{"componentChunkName":"component---src-pages-blog-post-js","path":"/work-experience/cwod-experience","webpackCompilationHash":"20608ac969729ec16e7e","result":{"data":{"markdownRemark":{"html":"<h2>TLDR</h2>\n<ul>\n<li>This externship was part of <a href=\"https://www.crio.do/crio-winter-of-doing/\">Crio Winter of Doing</a>.</li>\n<li>I built a Task Scheduler which schedules and executes Lambda functions which are deployed on API Gateway (the complete problem statement can be found <a href=\"https://www.crio.do/crio-winter-of-doing/aws\">here</a>).</li>\n</ul>\n<h2>Long version</h2>\n<p>Crio Winter of Doing was a learn-by-doing externship organized by <a href=\"https://www.crio.do/\">Crio</a>. The total duration of the externship was 6 weeks and I was shortlisted for this externship through a coding test and a mini project.\nThere were multiple companies like Groww, Cred, AWS, Jumbotail, etc. which had their problem statements for the externship.</p>\n<p>I liked the problem statement given by AWS the most since I had never worked on task scheduling and Lambda functions before. Here is the exact problem statement:</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto;  max-width: 800px;\"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/3d47ae92b61cc763df383a483f6c0f0d/28762/aws-problem-statement.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 31.087151841868828%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAGCAYAAADDl76dAAAACXBIWXMAAAsSAAALEgHS3X78AAAA6UlEQVQY042RyY6CQBCGOTpoVMQeloZuFNkEguA6GWPiycz7P9A/1W3EiwcOX6rqT9fWZbhxjaS5IK7PsHiK0VLAZBJfhMkijJ31YMzvFQw32aG9/aG5PuCkHSY8w0yWmIkS07DQj4aiihrzqAIrfogLvPoKv/pF2N7Bmxt8ii1RYOonsMIc84Ca0RafbD+hTQmiOCDIOqKFt2nA0xZh3mlNlqcesT0STyurs9aCfK99l/J0QdWZZ3s4JHhUyCfYusaSJrfllmzZ84pt+dYWNBBbVXpKXVCto0QlKJQ/cWM6jjpMNJjXH/4DNlGhtnZX5lkAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"aws problem statement\"\n        title=\"aws problem statement\"\n        src=\"/static/3d47ae92b61cc763df383a483f6c0f0d/8ff1e/aws-problem-statement.png\"\n        srcset=\"/static/3d47ae92b61cc763df383a483f6c0f0d/9ec3c/aws-problem-statement.png 200w,\n/static/3d47ae92b61cc763df383a483f6c0f0d/c7805/aws-problem-statement.png 400w,\n/static/3d47ae92b61cc763df383a483f6c0f0d/8ff1e/aws-problem-statement.png 800w,\n/static/3d47ae92b61cc763df383a483f6c0f0d/28762/aws-problem-statement.png 1113w\"\n        sizes=\"(max-width: 800px) 100vw, 800px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n  </a>\n    </span></p>\n<p>I spent the first 2 weeks planning each and every API and the overall architecture of the scheduler such that it's scalable and fault tolerant. I came across <a href=\"https://docs.celeryproject.org/en/stable/getting-started/introduction.html\">Celery</a> and <a href=\"https://www.rabbitmq.com/\">RabbitMQ</a> during this phase and I realized that both of them will allow me to schedule any Python function.</p>\n<p>So I ended up building a Flask application with a React.js frontend which would trigger a Lambda function given by the user at a given delay. The user can add/edit/delete tasks which are essentially HTTP requests for a Lambda function deployed on API Gateway.</p>","frontmatter":{"title":"Externship @ AWS | Crio Winter of Doing 2021","date":"May 23, 2021","tags":["internship","web-development"]}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"pathSlug":"/work-experience/cwod-experience"}}}