<?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" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by CoderDidit (Martin Kuzdovich) on Medium]]></title>
        <description><![CDATA[Stories by CoderDidit (Martin Kuzdovich) on Medium]]></description>
        <link>https://medium.com/@coderdidit?source=rss-1e17789d12fc------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*nqiVipWrT74ZIS-HZwtv_A.png</url>
            <title>Stories by CoderDidit (Martin Kuzdovich) on Medium</title>
            <link>https://medium.com/@coderdidit?source=rss-1e17789d12fc------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Mon, 08 Jun 2026 12:25:07 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@coderdidit/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[Neck Stretches ‍♂️ with TensorFlow.js]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-snippet">Hi &#x1F44B;,</p><p class="medium-feed-link"><a href="https://coderdidit.medium.com/neck-stretches-%EF%B8%8F-with-tensorflow-js-74a7c7e2efa2?source=rss-1e17789d12fc------2">Continue reading on Medium »</a></p></div>]]></description>
            <link>https://coderdidit.medium.com/neck-stretches-%EF%B8%8F-with-tensorflow-js-74a7c7e2efa2?source=rss-1e17789d12fc------2</link>
            <guid isPermaLink="false">https://medium.com/p/74a7c7e2efa2</guid>
            <category><![CDATA[machine-learning]]></category>
            <category><![CDATA[face-recognition]]></category>
            <category><![CDATA[tensorflowjs]]></category>
            <category><![CDATA[made-with-tfjs]]></category>
            <category><![CDATA[tensorflow]]></category>
            <dc:creator><![CDATA[CoderDidit (Martin Kuzdovich)]]></dc:creator>
            <pubDate>Mon, 19 Jul 2021 07:18:18 GMT</pubDate>
            <atom:updated>2021-07-19T07:18:18.964Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Launching CoderDidit.com ]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://coderdidit.medium.com/launching-coderdidit-com-523d73c67218?source=rss-1e17789d12fc------2"><img src="https://cdn-images-1.medium.com/max/600/1*F6i4I6K74jHdCSHVFrrn-g.png" width="600"></a></p><p class="medium-feed-snippet">I always wanted to start building my own products.</p><p class="medium-feed-link"><a href="https://coderdidit.medium.com/launching-coderdidit-com-523d73c67218?source=rss-1e17789d12fc------2">Continue reading on Medium »</a></p></div>]]></description>
            <link>https://coderdidit.medium.com/launching-coderdidit-com-523d73c67218?source=rss-1e17789d12fc------2</link>
            <guid isPermaLink="false">https://medium.com/p/523d73c67218</guid>
            <category><![CDATA[side-hustle]]></category>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[side-project]]></category>
            <category><![CDATA[software-engineering]]></category>
            <category><![CDATA[coding]]></category>
            <dc:creator><![CDATA[CoderDidit (Martin Kuzdovich)]]></dc:creator>
            <pubDate>Tue, 13 Jul 2021 06:59:55 GMT</pubDate>
            <atom:updated>2021-07-13T06:59:55.625Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[What are Metadata?]]></title>
            <link>https://coderdidit.medium.com/what-are-metadata-750ada41ca0a?source=rss-1e17789d12fc------2</link>
            <guid isPermaLink="false">https://medium.com/p/750ada41ca0a</guid>
            <category><![CDATA[data]]></category>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[data-engineering]]></category>
            <category><![CDATA[big-data]]></category>
            <category><![CDATA[software-engineering]]></category>
            <dc:creator><![CDATA[CoderDidit (Martin Kuzdovich)]]></dc:creator>
            <pubDate>Sat, 05 Dec 2020 16:11:52 GMT</pubDate>
            <atom:updated>2020-12-05T16:11:52.441Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*GJIjTeHwBbPokkjr" /><figcaption>Photo by <a href="https://unsplash.com/@mbaumi?utm_source=medium&amp;utm_medium=referral">Mika Baumeister</a> on <a href="https://unsplash.com?utm_source=medium&amp;utm_medium=referral">Unsplash</a></figcaption></figure><p>What are Metadata?</p><p>Metadata are data about data</p><p>for example lets say we have a <strong>hello.txt</strong> file which have 1 line of text <strong>“Hello World”</strong></p><p>In this case “Hello World” are <strong>data</strong></p><p><strong>Metadata</strong> if this data would be:</p><ul><li>file size</li><li>file format</li><li>file created at</li><li>filename</li><li>file location</li><li>created by</li></ul><p>Other good example that i heard once:</p><p>Telephone connection</p><p><strong>Data</strong> is the conversation itself, meaning the phone call content</p><p><strong>Metadata:</strong></p><ul><li>when was the connection</li><li>how long was the connection</li><li>between which numbers</li><li>in which country or between which countries</li></ul><p><strong>What do you think ? Let me know in comments below to help me improve this article</strong></p><p><strong>Thanks for reading!</strong></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=750ada41ca0a" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[What does Cloud Native means]]></title>
            <link>https://coderdidit.medium.com/what-does-cloud-native-means-3fa2ef9cad59?source=rss-1e17789d12fc------2</link>
            <guid isPermaLink="false">https://medium.com/p/3fa2ef9cad59</guid>
            <category><![CDATA[cloud-native]]></category>
            <category><![CDATA[cloud]]></category>
            <category><![CDATA[kubernetes]]></category>
            <dc:creator><![CDATA[CoderDidit (Martin Kuzdovich)]]></dc:creator>
            <pubDate>Thu, 03 Dec 2020 15:20:58 GMT</pubDate>
            <atom:updated>2020-12-03T15:23:36.558Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*9wyR03JmqRrbikQV" /><figcaption>Photo by <a href="https://unsplash.com/@alexmachado?utm_source=medium&amp;utm_medium=referral">Alex Machado</a> on <a href="https://unsplash.com?utm_source=medium&amp;utm_medium=referral">Unsplash</a></figcaption></figure><p>To answer what is Cloud Native I will need to first explain what does a <strong>Native Application</strong> mean</p><p>Native App is a term known from mobile applications</p><p>In short it means a application that was created for a dedicated OS/Phone where it can use some specific features of a particular device</p><p>That kind of app will not be executed in a proxy like a web browser but in OS directly</p><p>Example of Native Apps</p><ul><li>desktop application (native runtime would be the PC OS)</li><li>mentioned already mobile native app (native runtime would be the phone OS)</li><li>video game running in PS4 console (native runtime would be the gaming console OS)</li></ul><p>Ok but how does that relates to the cloud and cloud native which is the subject of this post?</p><p>Well a cloud native app will be the app which native runtime environment is the cloud</p><p>what does that mean?</p><p>Let’s say we decided to build a product that will be designed as a Cloud Native App. Then we will need to build the app in a specific way such that we will know it will use cloud features and take advantage of doing so</p><p>What kind of features we can say are <strong>native to the cloud</strong>?</p><ul><li>Serverless</li><li>Autoscaling</li><li>Phenix infrastructure</li><li>Limitless access to resources like memory</li><li>Easiness of creating new microservices</li><li>Deployments managed with CI/CD</li><li>frequent releases</li><li>A container-based infrastructure with containers orchestrator (for example Kuberrnetes)</li></ul><p>I think a good example is <strong>Serverless</strong> where you can’t build a Serverless solution without using the Cloud like <strong>AWS</strong> or <strong>Azure</strong></p><p>What is a difference between a <strong>Cloud Native App</strong> and a application that just <strong>runs in the Cloud</strong></p><p>for example a web app like Wordpress blog that was migrated from some hosting to AWS cloud and now runs in a EC2 machine is not a Cloud Native App although it runs in AWS cloud</p><p>Why?</p><p>because it is not taking advantage of any features native to the cloud</p><p>Cloud Native applications are designed to exist in the cloud and to take advantage of the cloud’s benefits</p><p>Cloud-native apps are the ones that are originally written for cloud frameworks instead of being ported over to the Cloud as an afterthought</p><p><strong>What do you think ? Let me know in comments below to help me improve this article</strong></p><p><strong>Thanks for reading!</strong></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=3fa2ef9cad59" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Graph algorithms demystified #1]]></title>
            <link>https://coderdidit.medium.com/graph-algorithms-demystified-1-simplest-way-to-model-a-graph-or-tree-94e6532d6123?source=rss-1e17789d12fc------2</link>
            <guid isPermaLink="false">https://medium.com/p/94e6532d6123</guid>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[data-structures]]></category>
            <category><![CDATA[software-engineering]]></category>
            <category><![CDATA[algorithms]]></category>
            <category><![CDATA[tutorial]]></category>
            <dc:creator><![CDATA[CoderDidit (Martin Kuzdovich)]]></dc:creator>
            <pubDate>Fri, 27 Mar 2020 09:11:13 GMT</pubDate>
            <atom:updated>2020-03-28T08:54:58.699Z</atom:updated>
            <content:encoded><![CDATA[<h4>Simplest way to model a Graph or Tree</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*hFS5QLGmVcefrXXT" /><figcaption>Photo by <a href="https://unsplash.com/@jannerboy62?utm_source=medium&amp;utm_medium=referral">Nick Fewings</a> on <a href="https://unsplash.com?utm_source=medium&amp;utm_medium=referral">Unsplash</a></figcaption></figure><p><em>Disclaimer: The code examples are in Scala but they will be simple enough and without any advanced features such that anyone can understand them. I am planing to run this series in multiple languages because the problems demystified here are language agnostic</em></p><p>Disclaimer: The code examples are in Scala but they will be simple enough and without any advanced features such that anyone can understand them. I am planing to run this series in multiple languages because the problems demystified here are language agnostic</p><p><strong>Context (you can skip that section and go to Code example directly, then come back here):</strong></p><p>Lets say we want to create a simple <strong>Graph</strong> that will contain unique String values, like <strong>unique names</strong></p><p>Each unique name will represent a person</p><p>Lets assume that this graph will hold only one type of relation:</p><pre>person ---(knows)---&gt; person</pre><p>Lets make it even simpler, our <strong>Graph</strong> will be one directional:</p><pre>if <strong>A knows B</strong> it does not mean that <strong>B knows A</strong></pre><p>So this graph will not be generic, <strong>it will be very limited</strong></p><p><strong>In what scenarios in a real world we would use such a simplified graph?</strong></p><p>We may need that graph to perform some local operations to solve a very specific problem within a function scope that may not need all the features of a sophisticated Graph</p><p>But i think this is a very good example to understand Graph and Trees by starting with such a limited and simple examples</p><p>Lets have a algo that will answer the following questions</p><ul><li>does person <strong>A knows B</strong></li><li>can person <strong>A meet B </strong>which means can we find a one directional path between <strong>A and B</strong></li></ul><p>A person with assigned unique name can get to other only via people that they know already</p><p><em>So it sounds almost like a game with made up rules: Graph represent people in the room, each person have unique name assigned, in a game round each named person knows others and they can get to each other only directly or via other friend</em></p><p>Sounds fun!!</p><p><strong>Code Example:</strong></p><p>One of the simplest way to represent it is as Map of String to list of Strings:</p><pre>Map[String, List[String]]</pre><p>Lets create some example graph with the data described in <strong>context</strong> section</p><pre>val PeopleInTheRoom: Map[String, List[String]] = <em>Map</em>(<br>  &quot;Jane&quot; -&gt; <em>List</em>(&quot;Bob&quot;, &quot;Mark&quot;, &quot;Rajesh&quot;, &quot;Samanta&quot;, &quot;Hussein&quot;),<br>  &quot;Mark&quot; -&gt; <em>List</em>(&quot;Tom&quot;),<br>  &quot;Bob&quot; -&gt; <em>List</em>(&quot;Lisa&quot;, &quot;Jenny&quot;),<br>  &quot;Tom&quot; -&gt; <em>Nil</em>,<br>  &quot;Lisa&quot; -&gt; <em>Nil</em>,<br>  &quot;Jenny&quot; -&gt; <em>Nil<br></em>)</pre><p>Now lets ask questions:</p><ul><li>does <strong>Jane</strong> knows <strong>Mark</strong>: yes</li><li>does <strong>Jane</strong> knows <strong>Jenny</strong>: no</li><li>can <strong>Jane</strong> meet <strong>Jenny</strong>: yes</li><li>does <strong>Bob</strong> knows <strong>Jane</strong>: no</li><li>can <strong>Bob</strong> meet <strong>Jane</strong>: no</li></ul><p>How to write code to answer those questions will be in the following episode of <strong>Graph algorithms demystified</strong> series</p><p>Side note: the same way we can model a binary tree or b-tree</p><pre>val <em>binaryTree</em>: Map[Int, List[Int]] = <em>Map</em>(<br>  5 -&gt; <em>List</em>(4, 2),<br>  4 -&gt; <em>Nil</em>,<br>  2 -&gt; <em>List</em>(0, 3),<br>  4 -&gt; <em>List</em>(-1)<br>)</pre><p>We can assume that each map entry will be a list with max size 2, <strong>1st</strong> element of list is left node <strong>2nd</strong> element of the list is right node</p><p>I will describe it in more detail in another following episodes of <strong>Graph algorithms demystified</strong></p><p><strong>What do you think ? Let me know in comments below to help me improve this article</strong></p><p><strong>Thanks for reading!</strong></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=94e6532d6123" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Apache Spark tips and recipes #1]]></title>
            <link>https://coderdidit.medium.com/apache-spark-tips-and-recipes-groupby-and-collect-multiple-rows-into-a-list-f4a4be4cb2cd?source=rss-1e17789d12fc------2</link>
            <guid isPermaLink="false">https://medium.com/p/f4a4be4cb2cd</guid>
            <category><![CDATA[software-engineering]]></category>
            <category><![CDATA[scala]]></category>
            <category><![CDATA[tutorial]]></category>
            <category><![CDATA[apache-spark]]></category>
            <category><![CDATA[big-data]]></category>
            <dc:creator><![CDATA[CoderDidit (Martin Kuzdovich)]]></dc:creator>
            <pubDate>Sun, 22 Mar 2020 20:29:09 GMT</pubDate>
            <atom:updated>2020-03-28T08:58:59.514Z</atom:updated>
            <content:encoded><![CDATA[<h4>How to groupBy and collect rows with multiple columns into a list</h4><p>How to groupBy a flat dataset into a case class that will have for example a String field and list field, where that list will contain some objects</p><pre>case class Example(id: String, tags: List[SomeOtherClass])</pre><p>lets imagine data sets of Crypto Currency Data</p><p><strong>Investors Portfolios</strong> and <strong>Price Reports</strong></p><p>Basic Models</p><pre>case class CryptoToken(ticker: String, count: Double)<br><br>case class CryptoInvestor(investorId: String, countryCode: String, tokens: List[CryptoToken])<br><br>case class CryptoTokenPriceReport(ticker: String, priceInUSD: Double)</pre><p>Investors portfolios</p><pre>val <em>investorsPortfolios</em>: Dataset[CryptoInvestor] = <em>List</em>(<br>  <em>CryptoInvestor</em>(&quot;kyc-investor1&quot;, &quot;USA&quot;, <em>List</em>(<br>    <em>CryptoToken</em>(&quot;btc&quot;, 0.5),<br>    <em>CryptoToken</em>(&quot;eth&quot;, 5)<br>  )),<br>  <em>CryptoInvestor</em>(&quot;kyc-investor2&quot;, &quot;UK&quot;, <em>List</em>(<br>    <em>CryptoToken</em>(&quot;ltc&quot;, 1.5),<br>    <em>CryptoToken</em>(&quot;eth&quot;, 3)<br>  ))<br>).toDS()</pre><pre>// result of <em>investorsPortfolios</em>.show(truncate = false)<br>+-------------+-----------+------------------------+<br>|investorId   |countryCode|tokens                  |<br>+-------------+-----------+------------------------+<br>|kyc-investor1|USA        |[[btc, 0.5], [eth, 5.0]]|<br>|kyc-investor2|UK         |[[ltc, 1.5], [eth, 3.0]]|<br>+-------------+-----------+------------------------+</pre><p>current price reports</p><pre>val <em>tokensPriceReport</em>: Dataset[CryptoTokenPriceReport] = <em>List</em>(<br>  <em>CryptoTokenPriceReport</em>(&quot;btc&quot;, 8000.1),<br>  <em>CryptoTokenPriceReport</em>(&quot;eth&quot;, 123.0),<br>  <em>CryptoTokenPriceReport</em>(&quot;ltc&quot;, 51.2)<br>).toDS()</pre><pre>// result of <em>tokensPriceReport</em>.show(truncate = false)<br>+------+----------+<br>|ticker|priceInUSD|<br>+------+----------+<br>|btc   |8000.1    |<br>|eth   |123.0     |<br>|ltc   |51.2      |<br>+------+----------+</pre><p>Now how to perform a join of those datasets such that we will get a result in a format:</p><pre>case class CryptoTokenWithCurrentValue(ticker: String, count: Double, priceInUSD: Double)<br><br>case class CryptoInvestorsReport(investorId: String, countryCode: String, tokensWithCurrentPricing: List[CryptoTokenWithCurrentValue])</pre><p>To make <strong>join operation</strong> possible we will need to flatten a bit the <strong>CryptoInvestor</strong> entry such that it will be like a <strong>SQL Table row</strong></p><pre>case class CryptoInvestorTmpRow(investorId: String, countryCode: String, ticker: String, count: Double)</pre><pre>val <em>investorsAndPriceReportJoin </em>= <em>investorsPortfolios</em>.flatMap { investor =&gt;<br>  import investor._<br>  tokens.map { token =&gt;<br>    import token._<br>    <em>CryptoInvestorTmpRow</em>(investorId, countryCode, ticker, count)<br>  }<br>}.as[CryptoInvestorTmpRow].join(<em>tokensPriceReport</em>, &quot;ticker&quot;)</pre><p>After the join a new dataset will look like following</p><pre>+------+-------------+-----------+-----+----------+<br>|ticker|   investorId|countryCode|count|priceInUSD|<br>+------+-------------+-----------+-----+----------+<br>|   btc|kyc-investor1|        USA|  0.5|    8000.1|<br>|   eth|kyc-investor1|        USA|  5.0|     123.0|<br>|   ltc|kyc-investor2|         UK|  1.5|      51.2|<br>|   eth|kyc-investor2|         UK|  3.0|     123.0|<br>+------+-------------+-----------+-----+----------+</pre><p>Now the main subject of this Post: <strong>how to perform the groupBy </strong>?</p><p>we will use here <strong>collect_list</strong><em> </em>and <strong>struct</strong> functions from <strong>org.apache.spark.sql.functions</strong> package</p><pre>import org.apache.spark.sql.functions.{collect_list, struct}</pre><pre><em>investorsAndPriceReportJoin</em>.groupBy(&quot;investorId&quot;, &quot;countryCode&quot;).agg(<br>  <em>collect_list</em>(<em>struct</em>(&quot;ticker&quot;, &quot;count&quot;, &quot;priceInUSD&quot;)) alias &quot;tokensWithCurrentPricing&quot;<br>).as[CryptoInvestorsReport]</pre><p>the result after groupBy will look like the following</p><pre>+-------------+-----------+---------------------------------------+<br>|investorId   |countryCode|tokensWithCurrentPricing               |<br>+-------------+-----------+---------------------------------------+<br>|kyc-investor1|USA        |[[btc, 0.5, 8000.1], [eth, 5.0, 123.0]]|<br>|kyc-investor2|UK         |[[ltc, 1.5, 51.2], [eth, 3.0, 123.0]]  |<br>+-------------+-----------+---------------------------------------+</pre><p>Checkout the full code on GitHub:</p><p><a href="https://github.com/mkuzdowicz/spark-examples-for-blogs/blob/master/src/main/scala/com/mkuzdowicz/blog/examples/GroupByToList.scala">mkuzdowicz/spark-examples-for-blogs</a></p><p><strong>What do you think ? Let me know in comments below to help me improve this article</strong></p><p><strong>Thanks for reading!</strong></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=f4a4be4cb2cd" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Do you need to be good at Math to be a successful Software Engineer]]></title>
            <link>https://coderdidit.medium.com/do-you-need-to-be-good-at-math-to-be-a-successful-software-engineer-fb82940e4ba?source=rss-1e17789d12fc------2</link>
            <guid isPermaLink="false">https://medium.com/p/fb82940e4ba</guid>
            <category><![CDATA[software-engineering]]></category>
            <category><![CDATA[learning-to-code]]></category>
            <category><![CDATA[math]]></category>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[tutorial]]></category>
            <dc:creator><![CDATA[CoderDidit (Martin Kuzdovich)]]></dc:creator>
            <pubDate>Sun, 22 Mar 2020 14:21:36 GMT</pubDate>
            <atom:updated>2020-03-22T14:21:36.485Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*sOdhFzpaDVJ5dDUn" /><figcaption>Photo by <a href="https://unsplash.com/@roman_lazygeek?utm_source=medium&amp;utm_medium=referral">Roman Mager</a> on <a href="https://unsplash.com?utm_source=medium&amp;utm_medium=referral">Unsplash</a></figcaption></figure><p>Do you need to be good at Math to be a successful Software Engineer ?</p><p>Before i will try to answer that question i will ask another question</p><p><strong>Why we are even asking that question at the first place ?</strong></p><p>The main problem is not if you are good at Math or not, but the problem is with our common believes that came from <strong>Education System</strong> where we are sometimes divided into <strong>2 groups</strong> (<strong>A</strong>: good at Math, <strong>B</strong>: not good at Math) and then making some assumptions if you are in <strong>group A</strong> you can do that things and if you are in <strong>group B</strong> you can do other things</p><p>I think we should question that and think for our selfs!</p><blockquote>To think for yourself you must question authority and learn how to put yourself in a state of vulnerable open-mindedness, chaotic, confused vulnerability to inform yourself</blockquote><blockquote>TIMOTHY LEARY, How to Operate Your Brain</blockquote><p>Firstly just remember that you will need to learn new skills your whole life Especially if you are in Tech you have to learn all the time where new approaches on how to build Software emerge continually. I think that a large percentage of what a Software Engineer actually do is learning, at lest this in my case</p><p>Ok going back to the subject</p><p><strong>Answer:</strong></p><p>No, yo don’t need to be good at Math to be a successful Software Engineer!</p><p><strong>Everything depends on how motivated you are to became a Software Engineer and that is all !!! </strong>Not some believes that stayed with you because you heard them about yourself in the past</p><p>The fact that you haven’t been proficient in such field as Math or whatever else during your School time doesn’t matter today because you can work on improving it. Why not !?</p><p>There are some domains of Software Engineering were knowing more advanced Math will be required like <strong>Game Development</strong> or <strong>Machine Learning</strong></p><p>For majority of Software Jobs basic Math is good enough</p><p>But, if you will like to do Software that will require being good at Math you can just learn that! We live in a online world now where there is plenty of knowledge and tutorials available in the internet probably in a much better quality then classic school materials</p><p>I decided to write about because <strong>that was one of the questions that i asked myself couple years ago</strong>, because i rebranded myself form <strong>Musician</strong> to <strong>Software Engineer</strong> and i haven’t though about myself as someone that is good at Math. That assumption was not objective it was based on my experience from School</p><p>And there you go! I managed to become a successful Software Engineer. I even had the opportunity to work on Machine Learning projects and if i had some knowledge gaps i was working to fill them by using materials available over the internet</p><p><strong>Post scriptum</strong></p><p>if you would like to fill some gaps in your Math knowledge, that is a awsome youtube channel that i was using:</p><p><a href="https://www.youtube.com/misterwootube">Eddie Woo</a></p><p><strong>What do you think ? Let me know in comments below to help me improve this article</strong></p><p><strong>Thanks for reading!</strong></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=fb82940e4ba" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[AWS CDK template for Api Gateway with Resource Policy]]></title>
            <link>https://coderdidit.medium.com/aws-cdk-template-for-api-gateway-with-resource-policy-dc17a487718?source=rss-1e17789d12fc------2</link>
            <guid isPermaLink="false">https://medium.com/p/dc17a487718</guid>
            <category><![CDATA[tutorial]]></category>
            <category><![CDATA[aws]]></category>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[typescript]]></category>
            <category><![CDATA[cdk]]></category>
            <dc:creator><![CDATA[CoderDidit (Martin Kuzdovich)]]></dc:creator>
            <pubDate>Sat, 21 Mar 2020 18:29:19 GMT</pubDate>
            <atom:updated>2020-03-21T19:44:56.772Z</atom:updated>
            <content:encoded><![CDATA[<h3>AWS CDK tips: How to add Resource Policy to Api Gateway</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*FJ6AgaMsrzSk0uln" /><figcaption>Photo by <a href="https://unsplash.com/@markusspiske?utm_source=medium&amp;utm_medium=referral">Markus Spiske</a> on <a href="https://unsplash.com?utm_source=medium&amp;utm_medium=referral">Unsplash</a></figcaption></figure><p>How to create a <strong>AWS CDK</strong> template for <strong>API gateway</strong> that will have a <strong>Resource Policy</strong></p><p>I needed to implement something like that recently and i was struggling to find a simple example on internet, so i decided to share my solution</p><p>API Gateway Resource Policy can be very useful if you want to improve security of <strong>Api Gateway that endpoint type is Edge</strong></p><p>More about AWS Api Gateway Endpoint types:</p><p><a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-endpoint-types.html">API endpoint types for REST APIs in API Gateway</a></p><p><strong>AWS API gateway</strong> with endpoint type is Edge is <strong>visible from public internet by default</strong>. What i wanted to achieve is to be able to whitelist ip ranges for my Api Gateway such that only chosen ones can hit my API</p><p>You can configure that by adding Api Gateway Resource Policy</p><p>Anyway, here is the example AWS CDK code in <strong>TypeScript</strong>:</p><p><strong>aws-cdk version used here: 1.27.0</strong></p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/43f78b52aa52d02e23d635620283df52/href">https://medium.com/media/43f78b52aa52d02e23d635620283df52/href</a></iframe><p><strong>What do you think ? Let me know in comments below to help me improve this article</strong></p><p><strong>Thanks for reading!</strong></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=dc17a487718" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[What is a Webhook]]></title>
            <link>https://coderdidit.medium.com/what-is-a-webhook-ca46b8a1480d?source=rss-1e17789d12fc------2</link>
            <guid isPermaLink="false">https://medium.com/p/ca46b8a1480d</guid>
            <category><![CDATA[saas]]></category>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[microservices]]></category>
            <category><![CDATA[software-engineering]]></category>
            <category><![CDATA[distributed-systems]]></category>
            <dc:creator><![CDATA[CoderDidit (Martin Kuzdovich)]]></dc:creator>
            <pubDate>Sat, 21 Mar 2020 17:47:25 GMT</pubDate>
            <atom:updated>2020-03-21T17:47:25.672Z</atom:updated>
            <content:encoded><![CDATA[<p>Do you know what <strong>SaaS</strong> stands for ?</p><p>Yes it means <strong>Software as a Service</strong>. You may know some products that are like <strong>SaaS </strong>For example <strong>Twilio, PayPall, Zuora, Stripe</strong> and many others</p><p>The platforms that i mentioned above are services that we can integrate our Applications</p><p>Before we explain what is a <strong>Webhook</strong> it is important to know the above</p><p><strong>Webhook</strong> or <strong>Callout </strong>is a user defined <strong>HTTP callback. </strong>What does that mean ?</p><p><strong>Short answer:</strong></p><p>If some <strong>Event</strong> take place in a SaaS platform that your App is using, then that <strong>Event</strong> may trigger a http call to your App, which will be a call to endpoint that you created on your App</p><p><strong>long answer (with example):</strong></p><p>Imagine that you have an online ebooks store and customers can buy your ebooks by PayPall</p><p>lets imagine a <strong>Synchronous</strong> flow without using Webhook</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*uM2D4nT2BZRxcwNU3ZSBDg.png" /><figcaption>Synchronous flow</figcaption></figure><p>This solution have some problems:</p><ul><li>How will your App know how long to wait for a payment confirmation? Can we guarantee a fixed max time ?</li><li>What if the user refresh the page during that flow or lose the connection ?</li><li>What if the payment confirmation takes a long time and your App will timeout during that flow? That may result with: you’re client not getting the ebook but being charged anyway. <strong>Isn’t that Scary !?</strong></li></ul><p>This is were <strong>Webhooks</strong> and <strong>Callouts</strong> comes into play!</p><p>Thy will help you to implement the flow in a more <strong>Asynchronous</strong> manner</p><p>lets imagine a <strong>Asynchronous</strong> flow:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*4M0mDc36t5koQbZc6hVmWw.png" /><figcaption>Asynchronous flow part 1</figcaption></figure><p>Here the flow ends on your app and will continue on the SaaS platform where the <strong>Payment Confirmed Event</strong> will trigger a <strong>Webhook</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*jV5V-bXmWUKYiQdWVv5Low.png" /><figcaption>Asynchronous flow part 2</figcaption></figure><p>TaDam!</p><p>That flow is much more reliable and solves one of the scary scenarios: when client paid for the product but due to latency the synchronous flow may decide that the payment was unsuccessful</p><p>Payment is one of the examples, there are many more examples where our App is using some external <strong>SaaS platform</strong> and we would like to consume some Events form those platforms in our Apps</p><p><strong>What do you think ? Let me know in comments below to help me improve this article</strong></p><p><strong>Thanks for reading!</strong></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=ca46b8a1480d" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Is writing Code like Art]]></title>
            <link>https://coderdidit.medium.com/is-writing-code-like-art-269380001836?source=rss-1e17789d12fc------2</link>
            <guid isPermaLink="false">https://medium.com/p/269380001836</guid>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[art]]></category>
            <category><![CDATA[philosophy]]></category>
            <category><![CDATA[music]]></category>
            <category><![CDATA[software-engineering]]></category>
            <dc:creator><![CDATA[CoderDidit (Martin Kuzdovich)]]></dc:creator>
            <pubDate>Thu, 19 Mar 2020 21:02:59 GMT</pubDate>
            <atom:updated>2020-03-21T08:45:12.186Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*Dt4ff1rQPJhsvzHv" /><figcaption>Photo by <a href="https://unsplash.com/@marius?utm_source=medium&amp;utm_medium=referral">Marius Masalar</a> on <a href="https://unsplash.com?utm_source=medium&amp;utm_medium=referral">Unsplash</a></figcaption></figure><p>Is writing code like Art?</p><p>hmm…</p><p>Can we say that being a Programmer, Software Developer or Software Engineer may be like being an Artist (Musician or Painter) ?</p><p>Does Code creation is like an act of Art creation ?</p><p><strong>I don’t think so</strong></p><p>It is a very close subject to me personally as i have been a Musician before i became a Software Developer/ Software Engineer</p><p>Well OK there are some similarities, but i don’t think we can say that writing code is like creating Art or code that works behind the scenes can bee seen as work of art</p><p>I don’t think that reading code can give you the same experience as listening to music or watching paintings</p><p><strong>Why?</strong></p><ul><li>A piece of art like painting or music may become more valuable over time. Software usually gets worst over time, it usually comes to a point that it will need to be replaced with a new code</li><li>A work of art need to be finished at some point of time and usually the artists is not releasing it until he feels like it is nearly perfect</li><li>I think we can say that about a lot of master works of <strong>Beethoven</strong> or <strong>Picasso</strong> that they are perfect and changing anything with them will be just change but definitely not improvement</li><li>Whit software is different, there will be always something that can be improved and over time a new version of language or framework will be released and it is very likely that a change will be a improvement in that System</li><li>Software development is done iteratively not until a developer feels that it is nearly perfect and he will not change it afterwards</li></ul><p>So i don’t think that writing Code can be same as Composing Musing because the end result and lifecycle of the “product” is very much different</p><p><strong>But</strong></p><p>On the other hand there is one similarity. When a musician creates music then she\he is in specific flow like a <strong>creational flow</strong>. I think a lot of programmers know what is a <strong>flow</strong> or how it feels like to be in it</p><p>Passionate Artist and a passionate Developer can feel the same type of <strong>inspirational flow </strong>while creating something</p><p>Both Artists and Developers <strong>CREATES</strong></p><p>Checkout my music channels:</p><ul><li><a href="https://www.youtube.com/user/martinkuzdowicz">Martin Kuzdowicz</a></li><li><a href="https://www.youtube.com/user/FreewayQuintet">Freeway Quintet</a></li></ul><p><strong>What do you think ? Let me know in comments below to help me improve this article</strong></p><p><strong>Thanks for reading!</strong></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=269380001836" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>