{"componentChunkName":"component---src-pages-index-js","path":"/","result":{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"title":"Shipping AI-assisted code","tags":"AI","subtitle":"A checklist for the last mile","readtime":9,"path":"/Shipping-AI-assisted-code","date":"2026-09-02"},"id":"b9d904cc-5a84-5963-a980-ac11be63216f"}},{"node":{"frontmatter":{"title":"AI-generated tests are useful, but not free","tags":"AI","subtitle":"What to check before trusting a generated test suite","readtime":6,"path":"/AI-generated-tests-are-useful-but-not-free","date":"2026-06-15"},"id":"081cbe0d-c5dc-5aab-9e4d-cb2683f41be6"}},{"node":{"frontmatter":{"title":"Prompt patterns for refactoring legacy code","tags":"AI","subtitle":"Make the model explain the code before it changes it","readtime":8,"path":"/Prompt-patterns-for-refactoring-legacy-code","date":"2026-03-07"},"id":"442cc1ae-e757-50f7-b460-c0f06807238d"}},{"node":{"frontmatter":{"title":"Using a local LLM as a pair programmer","tags":"AI","subtitle":"A workflow for small, reviewable changes","readtime":7,"path":"/Using-a-local-LLM-as-a-pair-programmer","date":"2026-01-18"},"id":"f47dfe05-7145-5933-9666-5a87067e0e7a"}},{"node":{"frontmatter":{"title":"Asynchronicity in JavaScript","tags":"JavaScript","subtitle":"A guide how to write async code in JS","readtime":12,"path":"/Asynchronicity-in-JavaScript","date":"2020-05-26"},"id":"5096279f-6536-530a-82d8-b587926e5426"}},{"node":{"frontmatter":{"title":"IIFE (Immediately Invoked Function Expression) in JavaScript","tags":"JavaScript","subtitle":"In 3 minutes","readtime":3,"path":"/IIFE-in-JS","date":"2020-05-24"},"id":"57d3e265-08af-58d0-96e8-35e1ced73c46"}},{"node":{"frontmatter":{"title":"Understanding JavaScript iterators","tags":"JavaScript","subtitle":"Explained","readtime":10,"path":"/Understanding-JavaScript-iterators","date":"2020-05-08"},"id":"1c4ed7e7-c3d5-54a0-96ac-495805d76465"}},{"node":{"frontmatter":{"title":"How to use image title in Gatsby Markdown","tags":"Gatsby","subtitle":"With the gatsby-remark-images plugin","readtime":5,"path":"/How-to-use-image-title-in-Gatsby-markdown","date":"2020-05-07"},"id":"8183345e-5773-5ac6-981d-0ce529fb3439"}},{"node":{"frontmatter":{"title":"How to deploy your Django application to Heroku","tags":"Django","subtitle":"A small and straightforward guide","readtime":10,"path":"/How-to-deploy-your-Django-application-to-Heroku","date":"2020-04-29"},"id":"648e3a95-f52f-5a70-b541-ee088cb4aa14"}},{"node":{"frontmatter":{"title":"All you need to know about permissions in Django REST Framework","tags":"Django","subtitle":"As a web developer","readtime":12,"path":"/All-you-need-to-know-about-permissions-in-Django-REST-Framework","date":"2020-02-17"},"id":"19eba8ef-1e6c-5379-ace8-c826482a7f36"}}]},"file":{"childImageSharp":{"fixed":{"base64":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAsSAAALEgHS3X78AAAB8klEQVQ4y52UQS8DQRTH5ys4oijdboNwcxAkkoaDI3GqKtsNSiJpiFAkEolPwMGxiYTGyTfwVRwa6Wy3tE30UPZ5b3ZXZ9uqrSb/TGffzm/+8/bNYwx/Yc3oC2s8G04a7yhAWY6gnRRNimtGBZVTNB5kApZEWNJ4iex+ggQDnxLvRlJ1+l9AKQTMOrCatKv1Bxhj3I1bSpLXHMYja3PMbh2SvsL6G83zrOmY3cAccXmtxZphmFwp+byrXAogLmrkwgGEnFHVfUNdMxZrDhJsbNuA4Q0OgTiHiN6dWw9QRQ0lOMwdmnD1UIXoiQm9sQKENrlvKPMWrL2A3M0fmXCarUDqugyjW400/AtIi3tWC7CQMeH++QNmD0zhXG25MbwzUMDweBM7Bpxlq3BxV4XJlAHBhJ1LkuqOfoG0eAYdrVy+QV+Mi+MThBzSvD9mj4PrjbzKYOa5QlIOA2s2iESbLJ2XIH1bhr2bMo4VWMYN6b2WOmxMuKew5RocwTRM7RdhMVOC6LEpxul08efr/9ShA+x49WTXA3FbVJ/k2i1m2RABK96Lzn+FqpIkmC29hF2Kv1JzzYl+pon29eWnwTbFLQRh+6pT432ijxKk5ij6md2C/HcccojOCIacd5yPu11bwQeP6DKv+OqLXI6/op7wmYB9AzRoxUSjKUB/AAAAAElFTkSuQmCC","width":150,"height":150,"src":"/static/4facc9f34b25c2c0bc4b1e6d699f5901/92ab1/icon.png","srcSet":"/static/4facc9f34b25c2c0bc4b1e6d699f5901/92ab1/icon.png 1x,\n/static/4facc9f34b25c2c0bc4b1e6d699f5901/668a7/icon.png 1.5x,\n/static/4facc9f34b25c2c0bc4b1e6d699f5901/56e34/icon.png 2x"}}}},"pageContext":{}},"staticQueryHashes":["3587427401"]}