<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Trekhleb.dev RSS Feed]]></title><description><![CDATA[Personal blog and projects by Oleksii Trekhleb]]></description><link>https://trekhleb.dev</link><generator>GatsbyJS</generator><lastBuildDate>Wed, 11 Mar 2026 08:00:40 GMT</lastBuildDate><item><title><![CDATA[Tech Jobs Radar]]></title><description><![CDATA[A snapshot of open job positions from the top tech companies around the world, offering insights into geographical trends in the tech job market.]]></description><link>https://trekhleb.dev/blog/2025/jobs-radar/</link><guid isPermaLink="false">https://trekhleb.dev/blog/2025/jobs-radar/</guid><pubDate>Sun, 12 Jan 2025 00:00:00 GMT</pubDate><content:encoded>A snapshot of open job positions from the top tech companies around the world, offering insights into geographical trends in the tech job market.</content:encoded></item><item><title><![CDATA[API Design of X (Twitter) Home Timeline]]></title><description><![CDATA[An exploration of how X's home timeline API is designed]]></description><link>https://trekhleb.dev/blog/2024/api-design-x-home-timeline/</link><guid isPermaLink="false">https://trekhleb.dev/blog/2024/api-design-x-home-timeline/</guid><pubDate>Thu, 12 Dec 2024 00:00:00 GMT</pubDate><content:encoded>An exploration of how X&apos;s home timeline API is designed</content:encoded></item><item><title><![CDATA[System Design Sketches]]></title><description><![CDATA[System design sketches for popular system design interview questions.]]></description><link>https://trekhleb.dev/blog/2024/system-design-sketches/</link><guid isPermaLink="false">https://trekhleb.dev/blog/2024/system-design-sketches/</guid><pubDate>Thu, 18 Jul 2024 00:00:00 GMT</pubDate><content:encoded>System design sketches for popular system design interview questions.</content:encoded></item><item><title><![CDATA[Micrograd TS]]></title><description><![CDATA[A TypeScript version of karpathy/micrograd. A tiny scalar-valued autograd engine and a neural net on top of it.]]></description><link>https://trekhleb.dev/blog/2023/micrograd-ts/</link><guid isPermaLink="false">https://trekhleb.dev/blog/2023/micrograd-ts/</guid><pubDate>Mon, 07 Aug 2023 00:00:00 GMT</pubDate><content:encoded>A TypeScript version of karpathy/micrograd. A tiny scalar-valued autograd engine and a neural net on top of it.</content:encoded></item><item><title><![CDATA[Observations]]></title><description><![CDATA[My subjective observations, assumptions, questions, and interpretations about the world around us. Ultimate origin, science, Creator, theories, axioms, consciousness, universe, God's sensor, good vs evil, etc. Don't take it seriously.]]></description><link>https://trekhleb.dev/blog/2023/observations/</link><guid isPermaLink="false">https://trekhleb.dev/blog/2023/observations/</guid><pubDate>Tue, 27 Jun 2023 00:00:00 GMT</pubDate><content:encoded>My subjective observations, assumptions, questions, and interpretations about the world around us. Ultimate origin, science, Creator, theories, axioms, consciousness, universe, God&apos;s sensor, good vs evil, etc. Don&apos;t take it seriously.</content:encoded></item><item><title><![CDATA[SOLID Principles Sketches]]></title><description><![CDATA[SOLID programming principles explained with minimalistic sketches and real-world examples]]></description><link>https://trekhleb.dev/blog/2022/solid-principles-sketches/</link><guid isPermaLink="false">https://trekhleb.dev/blog/2022/solid-principles-sketches/</guid><pubDate>Thu, 06 Oct 2022 00:00:00 GMT</pubDate><content:encoded>SOLID programming principles explained with minimalistic sketches and real-world examples</content:encoded></item><item><title><![CDATA[Data Structure Sketches]]></title><description><![CDATA[Basic data structures explained with minimalistic sketches]]></description><link>https://trekhleb.dev/blog/2022/data-structure-sketches/</link><guid isPermaLink="false">https://trekhleb.dev/blog/2022/data-structure-sketches/</guid><pubDate>Wed, 31 Aug 2022 00:00:00 GMT</pubDate><content:encoded>Basic data structures explained with minimalistic sketches</content:encoded></item><item><title><![CDATA[The OkSo Drawing App is Launched]]></title><description><![CDATA[The OkSo is a drawing app to express, grasp, and organize your thoughts and ideas. Draw to explain. Draw to grasp.]]></description><link>https://trekhleb.dev/blog/2022/okso/</link><guid isPermaLink="false">https://trekhleb.dev/blog/2022/okso/</guid><pubDate>Wed, 20 Jul 2022 00:00:00 GMT</pubDate><content:encoded>The OkSo is a drawing app to express, grasp, and organize your thoughts and ideas. Draw to explain. Draw to grasp.</content:encoded></item><item><title><![CDATA[Top 33 JavaScript Projects on GitHub (November 2021)]]></title><description><![CDATA[Snapshot of the 33 most starred open-sourced JavaScript repositories on GitHub as of November 2021]]></description><link>https://trekhleb.dev/blog/2021/top-33-javascript-projects-on-github/</link><guid isPermaLink="false">https://trekhleb.dev/blog/2021/top-33-javascript-projects-on-github/</guid><pubDate>Sat, 13 Nov 2021 00:00:00 GMT</pubDate><content:encoded>Snapshot of the 33 most starred open-sourced JavaScript repositories on GitHub as of November 2021</content:encoded></item><item><title><![CDATA[Self-Parking Car in 500 Lines of Code]]></title><description><![CDATA[Training the car to do self-parking using a genetic algorithm]]></description><link>https://trekhleb.dev/blog/2021/self-parking-car-evolution/</link><guid isPermaLink="false">https://trekhleb.dev/blog/2021/self-parking-car-evolution/</guid><pubDate>Tue, 28 Sep 2021 00:00:00 GMT</pubDate><content:encoded>Training the car to do self-parking using a genetic algorithm</content:encoded></item><item><title><![CDATA[Binary representation of the floating-point numbers]]></title><description><![CDATA[Anti-intuitive but yet interactive example of how the floating-point numbers like -27.156 are stored in binary format in a computer's memory]]></description><link>https://trekhleb.dev/blog/2021/binary-floating-point/</link><guid isPermaLink="false">https://trekhleb.dev/blog/2021/binary-floating-point/</guid><pubDate>Fri, 16 Jul 2021 00:00:00 GMT</pubDate><content:encoded>Anti-intuitive but yet interactive example of how the floating-point numbers like -27.156 are stored in binary format in a computer&apos;s memory</content:encoded></item><item><title><![CDATA[Content-aware image resizing in JavaScript]]></title><description><![CDATA[JavaScript implementation of so-called Seam Carving algorithm for the content-aware image resizing and objects removal. Dynamic programming approach is applied to optimize the resizing time.]]></description><link>https://trekhleb.dev/blog/2021/content-aware-image-resizing-in-javascript/</link><guid isPermaLink="false">https://trekhleb.dev/blog/2021/content-aware-image-resizing-in-javascript/</guid><pubDate>Fri, 16 Apr 2021 00:00:00 GMT</pubDate><content:encoded>JavaScript implementation of so-called Seam Carving algorithm for the content-aware image resizing and objects removal. Dynamic programming approach is applied to optimize the resizing time.</content:encoded></item><item><title><![CDATA[Gyro-web: Accessing the device orientation in JavaScript]]></title><description><![CDATA[Accessing the device orientation using React hook, and rotating a CSS 3D cube afterwards]]></description><link>https://trekhleb.dev/blog/2021/gyro-web/</link><guid isPermaLink="false">https://trekhleb.dev/blog/2021/gyro-web/</guid><pubDate>Tue, 02 Mar 2021 00:00:00 GMT</pubDate><content:encoded>Accessing the device orientation using React hook, and rotating a CSS 3D cube afterwards</content:encoded></item><item><title><![CDATA[Top 33 JavaScript Projects on GitHub (December 2020)]]></title><description><![CDATA[Snapshot of 33 most starred open-sourced JavaScript repositories on GitHub as of December]]></description><link>https://trekhleb.dev/blog/2020/top-33-javascript-projects-on-github-december/</link><guid isPermaLink="false">https://trekhleb.dev/blog/2020/top-33-javascript-projects-on-github-december/</guid><pubDate>Thu, 10 Dec 2020 00:00:00 GMT</pubDate><content:encoded>Snapshot of 33 most starred open-sourced JavaScript repositories on GitHub as of December</content:encoded></item><item><title><![CDATA[Making the Printed Links Clickable Using TensorFlow 2 Object Detection API]]></title><description><![CDATA[In this article we will start solving the issue of making the printed links (i.e. in a book or in a magazine) clickable via your smartphone camera]]></description><link>https://trekhleb.dev/blog/2020/printed-links-detection/</link><guid isPermaLink="false">https://trekhleb.dev/blog/2020/printed-links-detection/</guid><pubDate>Tue, 01 Dec 2020 00:00:00 GMT</pubDate><content:encoded>In this article we will start solving the issue of making the printed links (i.e. in a book or in a magazine) clickable via your smartphone camera</content:encoded></item><item><title><![CDATA[Generating cooking recipes using TensorFlow and LSTM Recurrent Neural Network: A step-by-step guide]]></title><description><![CDATA[I've trained a character-level LSTM RNN on ~100k recipes dataset using TensorFlow, and it suggested me to cook Cream Soda with Onions, Puff Pastry Strawberry Soup, Zucchini flavor Tea and Salmon Mousse of Beef and Stilton Salad with Jalapenos]]></description><link>https://trekhleb.dev/blog/2020/recipes-generation/</link><guid isPermaLink="false">https://trekhleb.dev/blog/2020/recipes-generation/</guid><pubDate>Thu, 18 Jun 2020 00:00:00 GMT</pubDate><content:encoded>I&apos;ve trained a character-level LSTM RNN on ~100k recipes dataset using TensorFlow, and it suggested me to cook Cream Soda with Onions, Puff Pastry Strawberry Soup, Zucchini flavor Tea and Salmon Mousse of Beef and Stilton Salad with Jalapenos</content:encoded></item><item><title><![CDATA[This is how social media could ruin your happiness]]></title><description><![CDATA[The recipe for how you can ruin your happiness and start feeling miserable using social media]]></description><link>https://trekhleb.dev/blog/2020/this-is-how-social-media-could-ruin-your-happiness/</link><guid isPermaLink="false">https://trekhleb.dev/blog/2020/this-is-how-social-media-could-ruin-your-happiness/</guid><pubDate>Thu, 11 Jun 2020 00:00:00 GMT</pubDate><content:encoded>The recipe for how you can ruin your happiness and start feeling miserable using social media</content:encoded></item><item><title><![CDATA[Interactive Machine Learning Experiments]]></title><description><![CDATA[Recognize digits and sketches. Detect objects. Classify images. Write a Shakespeare poem. All with TensorFlow 2 models demo.]]></description><link>https://trekhleb.dev/blog/2020/machine-learning-experiments/</link><guid isPermaLink="false">https://trekhleb.dev/blog/2020/machine-learning-experiments/</guid><pubDate>Tue, 05 May 2020 00:00:00 GMT</pubDate><content:encoded>Recognize digits and sketches. Detect objects. Classify images. Write a Shakespeare poem. All with TensorFlow 2 models demo.</content:encoded></item><item><title><![CDATA[I’ve open-sourced a simple Coronavirus (COVID-19) dashboard]]></title><description><![CDATA[Coronavirus (COVID-19) dashboard to show the dynamics of Сoronavirus distribution per country]]></description><link>https://trekhleb.dev/blog/2020/coronavirus-covid-19-dashboard/</link><guid isPermaLink="false">https://trekhleb.dev/blog/2020/coronavirus-covid-19-dashboard/</guid><pubDate>Mon, 23 Mar 2020 00:00:00 GMT</pubDate><content:encoded>Coronavirus (COVID-19) dashboard to show the dynamics of Сoronavirus distribution per country</content:encoded></item><item><title><![CDATA[State-of-the-Art Shitcode Principles]]></title><description><![CDATA[This a list of state-of-the-art shitcode principles your project should follow.]]></description><link>https://trekhleb.dev/blog/2020/state-of-the-art-shitcode-principles/</link><guid isPermaLink="false">https://trekhleb.dev/blog/2020/state-of-the-art-shitcode-principles/</guid><pubDate>Tue, 28 Jan 2020 00:00:00 GMT</pubDate><content:encoded>This a list of state-of-the-art shitcode principles your project should follow.</content:encoded></item><item><title><![CDATA[NanoNeuron - 7 simple JS functions that explain how machines learn]]></title><description><![CDATA[The NanoNeuron.js code example contains 7 simple JavaScript functions (which touches on model prediction, cost calculation, forward/backwards propagation, and training) that will give you a feeling of how machines can actually learn. No 3rd-party libraries, no external data-sets or dependencies, only pure and simple JavaScript functions.]]></description><link>https://trekhleb.dev/blog/2019/nano-neuron/</link><guid isPermaLink="false">https://trekhleb.dev/blog/2019/nano-neuron/</guid><pubDate>Fri, 06 Dec 2019 00:00:00 GMT</pubDate><content:encoded>The NanoNeuron.js code example contains 7 simple JavaScript functions (which touches on model prediction, cost calculation, forward/backwards propagation, and training) that will give you a feeling of how machines can actually learn. No 3rd-party libraries, no external data-sets or dependencies, only pure and simple JavaScript functions.</content:encoded></item><item><title><![CDATA[Creating React usePosition() hook for getting browser's geolocation]]></title><description><![CDATA[Decoupling of geolocation logic into React hook]]></description><link>https://trekhleb.dev/blog/2019/react-useposition-hook/</link><guid isPermaLink="false">https://trekhleb.dev/blog/2019/react-useposition-hook/</guid><pubDate>Sun, 30 Jun 2019 00:00:00 GMT</pubDate><content:encoded>Decoupling of geolocation logic into React hook</content:encoded></item><item><title><![CDATA[Technical Interview Preparation Checklist]]></title><description><![CDATA[Useful insights from recruiters that they normally send to applicants before the technical interviews]]></description><link>https://trekhleb.dev/blog/2019/technical-interview-preparation-checklist/</link><guid isPermaLink="false">https://trekhleb.dev/blog/2019/technical-interview-preparation-checklist/</guid><pubDate>Tue, 07 May 2019 00:00:00 GMT</pubDate><content:encoded>Useful insights from recruiters that they normally send to applicants before the technical interviews</content:encoded></item><item><title><![CDATA[Most Trending Jupyter Notebooks of December on GitHub]]></title><description><![CDATA[A list of 25 most trending Jupyter Notebooks on GitHub as for December, 2018]]></description><link>https://trekhleb.dev/blog/2019/most-trending-jupyter-notebooks-of-december/</link><guid isPermaLink="false">https://trekhleb.dev/blog/2019/most-trending-jupyter-notebooks-of-december/</guid><pubDate>Tue, 01 Jan 2019 00:00:00 GMT</pubDate><content:encoded>A list of 25 most trending Jupyter Notebooks on GitHub as for December, 2018</content:encoded></item><item><title><![CDATA[Homemade Machine Learning in Python]]></title><description><![CDATA[MatLab/Octave examples of popular machine learning algorithms with code examples and mathematics being explained]]></description><link>https://trekhleb.dev/blog/2018/homemade-machine-learning-in-python/</link><guid isPermaLink="false">https://trekhleb.dev/blog/2018/homemade-machine-learning-in-python/</guid><pubDate>Fri, 21 Dec 2018 00:00:00 GMT</pubDate><content:encoded>MatLab/Octave examples of popular machine learning algorithms with code examples and mathematics being explained</content:encoded></item><item><title><![CDATA[Machine Learning in MatLab/Octave]]></title><description><![CDATA[MatLab/Octave examples of popular machine learning algorithms with code examples and mathematics being explained]]></description><link>https://trekhleb.dev/blog/2018/machine-learning-in-matlaboctave/</link><guid isPermaLink="false">https://trekhleb.dev/blog/2018/machine-learning-in-matlaboctave/</guid><pubDate>Wed, 31 Oct 2018 00:00:00 GMT</pubDate><content:encoded>MatLab/Octave examples of popular machine learning algorithms with code examples and mathematics being explained</content:encoded></item><item><title><![CDATA[New Playground and Cheatsheet for Learning Python]]></title><description><![CDATA[Collection of Python scripts that are split by topics and contain code examples with explanations, different use cases]]></description><link>https://trekhleb.dev/blog/2018/playground-and-cheatsheet-for-learning-python/</link><guid isPermaLink="false">https://trekhleb.dev/blog/2018/playground-and-cheatsheet-for-learning-python/</guid><pubDate>Wed, 29 Aug 2018 00:00:00 GMT</pubDate><content:encoded>Collection of Python scripts that are split by topics and contain code examples with explanations, different use cases</content:encoded></item><item><title><![CDATA[Top 33 JavaScript Projects on GitHub (August 2018)]]></title><description><![CDATA[Top of JavaScript projects as for 2018]]></description><link>https://trekhleb.dev/blog/2018/top-33-javascript-projects-on-github-august-2018/</link><guid isPermaLink="false">https://trekhleb.dev/blog/2018/top-33-javascript-projects-on-github-august-2018/</guid><pubDate>Sat, 18 Aug 2018 00:00:00 GMT</pubDate><content:encoded>Top of JavaScript projects as for 2018</content:encoded></item><item><title><![CDATA[Playing with Discrete Fourier Transform Algorithm in JavaScript]]></title><description><![CDATA[Complex but yet magical topic!]]></description><link>https://trekhleb.dev/blog/2018/playing-with-discrete-fourier-transform-algorithm/</link><guid isPermaLink="false">https://trekhleb.dev/blog/2018/playing-with-discrete-fourier-transform-algorithm/</guid><pubDate>Fri, 17 Aug 2018 00:00:00 GMT</pubDate><content:encoded>Complex but yet magical topic!</content:encoded></item><item><title><![CDATA[Extend your LIMITS rather than your AMBITIONS]]></title><description><![CDATA[Extending ambitions rather than limits will bring nothing more than additional stress, unhappiness and dissatisfaction to our lives.]]></description><link>https://trekhleb.dev/blog/2018/extend-your-limits-rather-than-your-ambitions/</link><guid isPermaLink="false">https://trekhleb.dev/blog/2018/extend-your-limits-rather-than-your-ambitions/</guid><pubDate>Mon, 16 Jul 2018 00:00:00 GMT</pubDate><content:encoded>Extending ambitions rather than limits will bring nothing more than additional stress, unhappiness and dissatisfaction to our lives.</content:encoded></item><item><title><![CDATA[The gift of 24 hours]]></title><description><![CDATA[Advice on how to spend the 24 hours you have more productively]]></description><link>https://trekhleb.dev/blog/2018/gift-of-24-hours/</link><guid isPermaLink="false">https://trekhleb.dev/blog/2018/gift-of-24-hours/</guid><pubDate>Tue, 03 Jul 2018 00:00:00 GMT</pubDate><content:encoded>Advice on how to spend the 24 hours you have more productively</content:encoded></item><item><title><![CDATA[Permutations/Combinations Algorithms Cheat Sheets]]></title><description><![CDATA[This article briefly describes the difference between mathematical permutations and combinations,explains the main idea behind permutations and combinations algorithms and contains links to algorithms implementation in JavaScript.]]></description><link>https://trekhleb.dev/blog/2018/permutations-combinations-cheat-sheet/</link><guid isPermaLink="false">https://trekhleb.dev/blog/2018/permutations-combinations-cheat-sheet/</guid><pubDate>Fri, 29 Jun 2018 00:00:00 GMT</pubDate><content:encoded>This article briefly describes the difference between mathematical permutations and combinations,explains the main idea behind permutations and combinations algorithms and contains links to algorithms implementation in JavaScript.</content:encoded></item><item><title><![CDATA[Dynamic Programming vs Divide-and-Conquer]]></title><description><![CDATA[In this article I’m trying to explain the difference/similarities between dynamic programing and divide and conquer approaches based on two examples - binary search and minimum edit distance (Levenshtein distance)]]></description><link>https://trekhleb.dev/blog/2018/dynamic-programming-vs-divide-and-conquer/</link><guid isPermaLink="false">https://trekhleb.dev/blog/2018/dynamic-programming-vs-divide-and-conquer/</guid><pubDate>Fri, 15 Jun 2018 00:00:00 GMT</pubDate><content:encoded>In this article I’m trying to explain the difference/similarities between dynamic programing and divide and conquer approaches based on two examples - binary search and minimum edit distance (Levenshtein distance)</content:encoded></item><item><title><![CDATA[50 links you may use to promote your next startup for free]]></title><description><![CDATA[The list of 50+ platforms you may use to promote your next project]]></description><link>https://trekhleb.dev/blog/2018/links-to-promote-your-next-startup/</link><guid isPermaLink="false">https://trekhleb.dev/blog/2018/links-to-promote-your-next-startup/</guid><pubDate>Mon, 11 Jun 2018 00:00:00 GMT</pubDate><content:encoded>The list of 50+ platforms you may use to promote your next project</content:encoded></item><item><title><![CDATA[Algorithms and Data Structures in JavaScript]]></title><description><![CDATA[Collection of classic algorithms and data structures implemented in ES6 JavaScript with explanations and links to further readings and YouTube videos]]></description><link>https://trekhleb.dev/blog/2018/algorithms-and-data-structures-in-javascript/</link><guid isPermaLink="false">https://trekhleb.dev/blog/2018/algorithms-and-data-structures-in-javascript/</guid><pubDate>Mon, 21 May 2018 00:00:00 GMT</pubDate><content:encoded>Collection of classic algorithms and data structures implemented in ES6 JavaScript with explanations and links to further readings and YouTube videos</content:encoded></item><item><title><![CDATA[Aggregatus — new data aggregation service — is now live and in alpha]]></title><description><![CDATA[Aggregate data from many sources into one collection]]></description><link>https://trekhleb.dev/blog/2018/aggregatus-service-is-live/</link><guid isPermaLink="false">https://trekhleb.dev/blog/2018/aggregatus-service-is-live/</guid><pubDate>Wed, 07 Mar 2018 00:00:00 GMT</pubDate><content:encoded>Aggregate data from many sources into one collection</content:encoded></item><item><title><![CDATA[Docker Whale in Digital Ocean or Automated Continuous Delivery Flow For Simple Projects]]></title><description><![CDATA[The main idea is to automate project’s code and environment deployment to production and to make this process to be smooth and easy]]></description><link>https://trekhleb.dev/blog/2017/docker-whale-in-digital-ocean/</link><guid isPermaLink="false">https://trekhleb.dev/blog/2017/docker-whale-in-digital-ocean/</guid><pubDate>Wed, 30 Aug 2017 00:00:00 GMT</pubDate><content:encoded>The main idea is to automate project’s code and environment deployment to production and to make this process to be smooth and easy</content:encoded></item><item><title><![CDATA[If you ever used subway you should know what Binary Search Tree is]]></title><description><![CDATA[Binary search trees, sometimes called ordered or sorted binary trees, are a particular type of container… bla…bla…bla… Stop!]]></description><link>https://trekhleb.dev/blog/2017/if-you-ever-used-subway-you-should-know-what-binary-search-tree-is/</link><guid isPermaLink="false">https://trekhleb.dev/blog/2017/if-you-ever-used-subway-you-should-know-what-binary-search-tree-is/</guid><pubDate>Thu, 13 Jul 2017 00:00:00 GMT</pubDate><content:encoded>Binary search trees, sometimes called ordered or sorted binary trees, are a particular type of container… bla…bla…bla… Stop!</content:encoded></item><item><title><![CDATA[Dangerous step from Agile to frAgile (fixed-requirements-Agile) software development]]></title><description><![CDATA[The dangerous step is — to FIX price, deadlines and vague scope for long-term project and at the same time try to be AGILE in development process.]]></description><link>https://trekhleb.dev/blog/2017/dangerous-step-from-agile-to-fragile/</link><guid isPermaLink="false">https://trekhleb.dev/blog/2017/dangerous-step-from-agile-to-fragile/</guid><pubDate>Sat, 24 Jun 2017 00:00:00 GMT</pubDate><content:encoded>The dangerous step is — to FIX price, deadlines and vague scope for long-term project and at the same time try to be AGILE in development process.</content:encoded></item><item><title><![CDATA[S.O.L.I.D. Principles Around You]]></title><description><![CDATA[Real-world visual examples of SOLID principles]]></description><link>https://trekhleb.dev/blog/2017/solid-principles-around-you/</link><guid isPermaLink="false">https://trekhleb.dev/blog/2017/solid-principles-around-you/</guid><pubDate>Tue, 20 Jun 2017 00:00:00 GMT</pubDate><content:encoded>Real-world visual examples of SOLID principles</content:encoded></item><item><title><![CDATA[How to create AOT/JIT compatible Angular 4 library with external SCSS/HTML templates]]></title><description><![CDATA[Example of how to create a re-usable npm library for Angular projects]]></description><link>https://trekhleb.dev/blog/2017/how-to-create-aot-jit-compatible-angular-4-library/</link><guid isPermaLink="false">https://trekhleb.dev/blog/2017/how-to-create-aot-jit-compatible-angular-4-library/</guid><pubDate>Wed, 07 Jun 2017 00:00:00 GMT</pubDate><content:encoded>Example of how to create a re-usable npm library for Angular projects</content:encoded></item></channel></rss>