{"data":{"featured":{"edges":[{"node":{"frontmatter":{"title":"DevOps Metrics Analyzor Tool","cover":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAYAAACpUE5eAAAACXBIWXMAAA7DAAAOwwHHb6hkAAACoElEQVQ4y02SS44cRRiE60DsOQg3gBtwA8SaJUjABiRLBnZskUAtZLDH2EPbPTNuZvpdXV3V9c5656PqQ5k9MixCf/4lZVRkRHg69xlWL1DhEnl446BO71DHG9T5Hum/ZfAXyNO7C4I7xkEwyvoRFePwHzxdHOnWr+i21/SHBf3+Dd3mNYN/g4we6PdzBvuj4A4V/eNILeFkySyJrJj+R+r1VUocbMjjI1l0II99tycWxwfScIcZKmTmo+qzU2XaHNMVjzNHtxnGosvx6jQgWC0475eEm1vCzQ1ltKUuE5pG0BQRSkQMmY8sI3SbI8uQPjlgOkGfHuizAFWnyOKIp7uCXsQMVUInYvo6w6iWbvkMMfsOk2yRRUCf+bT5CdOXFzV1ghkEpk2dMtMX6CbBs15MyqJh6gtoY9rlH1x//AHRZx9S//QpbbRBVlZdihEnjAgwVYgpj5jygMl3mOLgvnsuMYeKsY4Zq5B09oToh89pf/2C8uuPqHdvUXV8uZjcY9KHC+IlJlthsvVlz9aPhC4xwWQGyt+/Z/PlJ2TPnpD98hX5nz/Sp3ukODEURwYRuqdpq7iJ0fUZWYVIEbrpmXyP9ueY8Bbt/0352zdUdzPE4QZx/xxpyc4r+iKgqzO6ImBsIkbdurpYG9oyorPB1TGeTrfI3SukP0durxibBMzA1OWMTYzZvaTfXKHtvpmhX36Lmj913o3NGdNlLpCxS51ib+wuXbLJ6WiJPlw7xTq8RYV3zuj86mfa7V8M4YJ+94LhOEfFS3S+QbeJ66e1xAbnPJxsIF2OStbI+AEZrxxUumWSDcViRrW9ZhhqVyvZFYxSXKpSxyhxQltYD9+nbPvlYM/i/Zy6ElUnLgjXuTZxT1NViKoiRyaTFdKKSdb8CzC5zwKDPMwXAAAAAElFTkSuQmCC"},"images":{"fallback":{"src":"/static/d43dd3f73a1a49e64e0b41c43ff1db19/42837/MR-Tool-Image.png","srcSet":"/static/d43dd3f73a1a49e64e0b41c43ff1db19/1ac8f/MR-Tool-Image.png 175w,\n/static/d43dd3f73a1a49e64e0b41c43ff1db19/49a0b/MR-Tool-Image.png 350w,\n/static/d43dd3f73a1a49e64e0b41c43ff1db19/42837/MR-Tool-Image.png 700w","sizes":"(min-width: 700px) 700px, 100vw"},"sources":[{"srcSet":"/static/d43dd3f73a1a49e64e0b41c43ff1db19/f0c3a/MR-Tool-Image.avif 175w,\n/static/d43dd3f73a1a49e64e0b41c43ff1db19/db5c7/MR-Tool-Image.avif 350w,\n/static/d43dd3f73a1a49e64e0b41c43ff1db19/e6226/MR-Tool-Image.avif 700w","type":"image/avif","sizes":"(min-width: 700px) 700px, 100vw"},{"srcSet":"/static/d43dd3f73a1a49e64e0b41c43ff1db19/f74b7/MR-Tool-Image.webp 175w,\n/static/d43dd3f73a1a49e64e0b41c43ff1db19/a011c/MR-Tool-Image.webp 350w,\n/static/d43dd3f73a1a49e64e0b41c43ff1db19/54028/MR-Tool-Image.webp 700w","type":"image/webp","sizes":"(min-width: 700px) 700px, 100vw"}]},"width":700,"height":443}}},"tech":["Python","R","Pandas","NumPy","GitLab CI"],"github":null,"gitlab":"https://gitlab.com/ets-devops/merge-requests/mr-analysis-tool","external":"https://gitlab.com/ets-devops/merge-requests/mr-analysis-tool","cta":null},"html":"<p>The Merge Request Analysis Tool mines GitLab repositories to extract and analyze merge request data and CI/CD workflow metrics. It helps teams measure delivery performance—such as review time and merge lead time—to improve development efficiency and DevOps processes.</p>"}},{"node":{"frontmatter":{"title":"Cloud-Native Static Website\nusing AWS, IaC, and GitHub Actions Workflows","cover":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAIAAAAmMtkJAAAACXBIWXMAAAsTAAALEwEAmpwYAAACxElEQVQozx3SW2/TVgAAYP/B/YRNGhrSeEZCSDz0BaFJaBKIDQEShQ6kUZWOFUgrlTbEhTRNnIvjxHYc2zm+Ht+Or8c+9omHNInX7/ljSGI0uUMxLCLdlAe2fGlJfWc1AMIXT59Bderrs8xXSWwU/FElHzeZQ8uAYlgnBkMipUYqzaw6c4sQYARwCHBk4MioEqdK7CpxSOZVLm88/8nbv94EYlv6JJTqUGJIIGI4x96SRMoWuy2GLXbb3P2vQlvsbQunSQBN9CwAi4tDoXeQBqBGaukvSagwNVIbpNShWPkCzQyaGdvCaWnUNtE2t5sEtIX1rbRyX0GOEjur3JPrSG7QiiYaU0DB00bOmst9leYOLawaSnFnN7/6uC3hN+Lbq6lw9oGiNQ5XIZjE9gI5y9DgY1tgykBizzsvd5/t7NxB+pCiRcDua7/+4N67QZxR7Yx27/9+//ovyukrU/qynrOb5QCIQ1NkOfYfJrW4t2/27t3d+fnaj77cJWa/sKbzx3eNk9c1nFQb9t3e899u3lb6HTA//TQZv+4NzmY8L3JXvX+Z1OSOD18eHfw1Zt9DdUTjdeKpitA39SWO9Lb0fUtWha9N7k36nZ0XfzztHHTZwxd/3jp684jBUPK0GdAUBLUYajVSKzjNZ3/n4vvSuKzMK7w6Sbg94o5dmVVGncsPTz+/fcj39sVhh/G12btXH1fT7oLrekBoY4mAXjjaM88emudPrO4T6/xBJhw07rBNdQAugDwwxAFNTYpkJjGufH2q8D1hcJJCufSEOlarDDpAtrSlqYmBqzU4pKmBQ+W4e2queQ9IRaAXFsdk5hhDHm1GvnLxfcsiBZfY5evUIqldoU3hzgtriF2+cPlIm6HNGIFJDEapwTGJyWXOvApWBKmltyjgAnsSiQHNIS28JrMJ2lSR2qT2d3HrxKjjDfalwuX/B4xglefuwGYaAAAAAElFTkSuQmCC"},"images":{"fallback":{"src":"/static/b9bc92bcb3900ddbd409c8a8c37b0024/3e1ab/demo.png","srcSet":"/static/b9bc92bcb3900ddbd409c8a8c37b0024/57a76/demo.png 175w,\n/static/b9bc92bcb3900ddbd409c8a8c37b0024/f00e6/demo.png 350w,\n/static/b9bc92bcb3900ddbd409c8a8c37b0024/3e1ab/demo.png 700w,\n/static/b9bc92bcb3900ddbd409c8a8c37b0024/35a97/demo.png 1400w","sizes":"(min-width: 700px) 700px, 100vw"},"sources":[{"srcSet":"/static/b9bc92bcb3900ddbd409c8a8c37b0024/50167/demo.avif 175w,\n/static/b9bc92bcb3900ddbd409c8a8c37b0024/5a8a9/demo.avif 350w,\n/static/b9bc92bcb3900ddbd409c8a8c37b0024/bc4f6/demo.avif 700w,\n/static/b9bc92bcb3900ddbd409c8a8c37b0024/44296/demo.avif 1400w","type":"image/avif","sizes":"(min-width: 700px) 700px, 100vw"},{"srcSet":"/static/b9bc92bcb3900ddbd409c8a8c37b0024/81b0f/demo.webp 175w,\n/static/b9bc92bcb3900ddbd409c8a8c37b0024/bfc62/demo.webp 350w,\n/static/b9bc92bcb3900ddbd409c8a8c37b0024/74bac/demo.webp 700w,\n/static/b9bc92bcb3900ddbd409c8a8c37b0024/67855/demo.webp 1400w","type":"image/webp","sizes":"(min-width: 700px) 700px, 100vw"}]},"width":700,"height":467}}},"tech":["Terraform","AWS S3","CloudFront","Route 53","GitHub Actions"],"github":"https://github.com/BehnamMashari/portfolio/","gitlab":"","external":"https://behnammashari.com","cta":null},"html":"<p>A static website deployed and managed entirely through Infrastructure as Code using Terraform, AWS S3, CloudFront, and Route 53. Automated CI/CD pipelines via GitHub Actions handle seamless builds and deployments, ensuring fast, secure, and globally distributed content delivery with custom domain support and HTTPS out of the box.</p>"}},{"node":{"frontmatter":{"title":"Serverless Backend on AWS","cover":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAIAAAAmMtkJAAAACXBIWXMAAAsTAAALEwEAmpwYAAACw0lEQVQozxXQyW7bRgAAUH5kP6BA0UM/oJcgQC5NDqlQFEmNtM5iowkcOZEsW7YWiuRwEUlxmxluw1WkKC4yay120OZe5A8eHgXlsW+CPDDKBDWZc5t7bRFsy+iuDPdNcr9JD5t0X6fbMmoLv17aRWRmRA9tGcpTCi9o3wK2xoZ4nhFjV0WHJr2/XT60+X+76uu+emiz+036pc33dfLPOtzkfkY0AgVHZ6kACXOmz1y81rlPULzMfbVd+YfbZW4D0O0IvRdNon+5y+9vk4e7onLByrqpVyTCYgABFSKhd/Lrycsnp0e/vP/zmTI+XRF1W4WTv591n/9w3vnRmLz14Tyw+LaM7WGH/+P7BIPAZCKLpXyDUdneq87j49+fjM5fudp0W7pfD1XmKfK0q3O9KrHWMapS1CxtRxqoo9MUg4LIkUVTrjYVRx/O3vxmgAtPnxWhsSKqTb+uE3PXJO2aPGyCQ+XtSndbkXbl7utoV/oVEZeYo5B0KVy/E0fvkXQFxUHmyRrXvzl+tGDP/90V24pYsxNt9JcNzgoXZI6gTU60yVuT62auRNny0FOvAu06MukYMk1iZK609GTPYK4/HiWYjyC7YLpI6Neh4inDs6PHH48eDc9ehAhQrj5D0qD/7mn3+On5m+cm318TaROreD74+afvLk47hS8VRK7jRR2rTaRkNheadATZwOIo12CIydrytTT+QPRxm+pNCrdrvww1rNKexjSpUaewTGCTmmWglKFaEDW2Rd9kKVejPX1GTDbBIMXsyuVV7lKc9vjxZ2k2AKNPCnMhTroqN8gcPsHc0p2HiPdNxlFuKKhMnMXUUUfEoBMMcl/5Fh5oocWFFkcMOobsEjEpZmPERJCLkOBbwNFmSBlRCjfQhCtDvMLK2NFoYoEAghDxEWJi9I2TYC7BXIz5AAHPZB19BuWJIQ41/vJ/QMdiv+5Wt5kAAAAASUVORK5CYII="},"images":{"fallback":{"src":"/static/e37c64607a660f6a55f46035b2d22d0c/3e1ab/demo.png","srcSet":"/static/e37c64607a660f6a55f46035b2d22d0c/57a76/demo.png 175w,\n/static/e37c64607a660f6a55f46035b2d22d0c/f00e6/demo.png 350w,\n/static/e37c64607a660f6a55f46035b2d22d0c/3e1ab/demo.png 700w,\n/static/e37c64607a660f6a55f46035b2d22d0c/35a97/demo.png 1400w","sizes":"(min-width: 700px) 700px, 100vw"},"sources":[{"srcSet":"/static/e37c64607a660f6a55f46035b2d22d0c/50167/demo.avif 175w,\n/static/e37c64607a660f6a55f46035b2d22d0c/5a8a9/demo.avif 350w,\n/static/e37c64607a660f6a55f46035b2d22d0c/bc4f6/demo.avif 700w,\n/static/e37c64607a660f6a55f46035b2d22d0c/44296/demo.avif 1400w","type":"image/avif","sizes":"(min-width: 700px) 700px, 100vw"},{"srcSet":"/static/e37c64607a660f6a55f46035b2d22d0c/81b0f/demo.webp 175w,\n/static/e37c64607a660f6a55f46035b2d22d0c/bfc62/demo.webp 350w,\n/static/e37c64607a660f6a55f46035b2d22d0c/74bac/demo.webp 700w,\n/static/e37c64607a660f6a55f46035b2d22d0c/67855/demo.webp 1400w","type":"image/webp","sizes":"(min-width: 700px) 700px, 100vw"}]},"width":700,"height":467}}},"tech":["AWS Lambda","API Gateway","DynamoDB","SES","Terraform","Python"],"github":"https://github.com/BehnamMashari/portfolio-infra","gitlab":"","external":"https://behnammashari.com","cta":""},"html":"<p>A fully serverless backend powering this portfolio, built and managed with Terraform. Includes a real-time visitor counter backed by DynamoDB with atomic increment operations, and a contact form that delivers messages directly to my inbox via Amazon SES. All infrastructure is provisioned as code — Lambda functions, API Gateway HTTP API with CORS and rate-limiting throttle rules, IAM roles, and CI/CD via GitHub Actions.</p>"}}]}}}