<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Francesco Borrelli</title>
    <description>The latest articles on DEV Community by Francesco Borrelli (@thedevcaptain).</description>
    <link>https://dev.to/thedevcaptain</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F538428%2Fcd649d25-5477-4bf5-9098-2a09c475a8a9.jpeg</url>
      <title>DEV Community: Francesco Borrelli</title>
      <link>https://dev.to/thedevcaptain</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/thedevcaptain"/>
    <language>en</language>
    <item>
      <title>Create your own delivery app - Let's begin</title>
      <dc:creator>Francesco Borrelli</dc:creator>
      <pubDate>Wed, 11 Jan 2023 13:47:23 +0000</pubDate>
      <link>https://dev.to/thedevcaptain/create-your-own-delivery-app-lets-begin-4do7</link>
      <guid>https://dev.to/thedevcaptain/create-your-own-delivery-app-lets-begin-4do7</guid>
      <description>&lt;p&gt;Hello everybody! &lt;br&gt;
Everyone said to me before starting this series to "start low", don't put too much on the plate or take one step at a time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Not a chance.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;So here we are, first step to create a delivery app.&lt;/p&gt;

&lt;p&gt;We will try to tackle all the different parts that are needed for our app and use case. At every stage we are going to make assumptions and make some decisions based on those about the tech stack and approach. The process will be outlined like follow:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Basic requirements&lt;/li&gt;
&lt;li&gt;Backend (code + infrastructure)&lt;/li&gt;
&lt;li&gt;Frontend (web and mobile)&lt;/li&gt;
&lt;li&gt;Observability and maintenance&lt;/li&gt;
&lt;li&gt;Planning for the future&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For simplicity we are going to focus on food delivery app. Of course the different domain specific part can be changed based on different industries but the core is going to be the same.&lt;/p&gt;

&lt;p&gt;We are going to divide the project in three main functional areas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Customer facing (mobile app/website)&lt;/li&gt;
&lt;li&gt;Admin panel (for us to manage all the clients)&lt;/li&gt;
&lt;li&gt;Backoffice (website to manage the point of sales and the app for local screens to be used with the till)&lt;/li&gt;
&lt;li&gt;Riders app (mobile app to manage deliveries etc.)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let's then focus on some use cases that we want to cover.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Customer facing:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;User account creation and login&lt;/li&gt;
&lt;li&gt;Restaurant browsing&lt;/li&gt;
&lt;li&gt;Menu ordering&lt;/li&gt;
&lt;li&gt;Payment processing&lt;/li&gt;
&lt;li&gt;Order tracking&lt;/li&gt;
&lt;li&gt;Push notifications&lt;/li&gt;
&lt;li&gt;Address and contact information&lt;/li&gt;
&lt;li&gt;Review and rating&lt;/li&gt;
&lt;li&gt;Customer service&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Backoffice:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Manage orders&lt;/li&gt;
&lt;li&gt;Manage restaurants&lt;/li&gt;
&lt;li&gt;Manage menu items&lt;/li&gt;
&lt;li&gt;Order history and statistics&lt;/li&gt;
&lt;li&gt;Payment and revenue management&lt;/li&gt;
&lt;li&gt;Review and rating management&lt;/li&gt;
&lt;li&gt;Customer service management&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Rider App:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Rider registration and login&lt;/li&gt;
&lt;li&gt;GPS tracking&lt;/li&gt;
&lt;li&gt;Order assignment&lt;/li&gt;
&lt;li&gt;Navigation&lt;/li&gt;
&lt;li&gt;Communication&lt;/li&gt;
&lt;li&gt;Payment processing&lt;/li&gt;
&lt;li&gt;Document upload and storage&lt;/li&gt;
&lt;li&gt;Earnings and stats&lt;/li&gt;
&lt;li&gt;Schedule management&lt;/li&gt;
&lt;li&gt;Manage multiple orders&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Admin panel&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;User account management&lt;/li&gt;
&lt;li&gt;Role-based access control (rider, client, customer)&lt;/li&gt;
&lt;li&gt;Client management&lt;/li&gt;
&lt;li&gt;Order management&lt;/li&gt;
&lt;li&gt;Payment processing management&lt;/li&gt;
&lt;li&gt;Reporting and Analytics&lt;/li&gt;
&lt;li&gt;Customer service management&lt;/li&gt;
&lt;li&gt;Integration management (ehhh maybe)&lt;/li&gt;
&lt;li&gt;Push notification management&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Does it sounds like a lot? you are totally right.&lt;br&gt;
Of course we are going to start small and add a few piece at a time.&lt;br&gt;
Trying to follow as much this picture:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Qw0wJMdg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0jopa6ui12u2o63ir7xw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Qw0wJMdg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0jopa6ui12u2o63ir7xw.png" alt="Image description" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For the purpose of this project I'm going to create a Trello board to keep all this tracked (otherwise I'm going to bin everything from day 2) and a Github organization with all the relevant code bases and projects (because yay opensource is good, no?).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://trello.com/invite/b/B0o1xzJz/ATTId201e24739837bd3f174d458660e2f157E479961/general-project"&gt;General Board&lt;/a&gt; | &lt;a href="https://github.com/GoFeedMe"&gt;Org git&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So, what are you waiting for? go on! Let's start from the juicy backend&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>cloud</category>
      <category>tutorial</category>
      <category>aws</category>
    </item>
    <item>
      <title>How you should not use (only) console.log</title>
      <dc:creator>Francesco Borrelli</dc:creator>
      <pubDate>Thu, 05 Jan 2023 18:03:06 +0000</pubDate>
      <link>https://dev.to/thedevcaptain/how-you-should-not-use-only-consolelog-1fbb</link>
      <guid>https://dev.to/thedevcaptain/how-you-should-not-use-only-consolelog-1fbb</guid>
      <description>&lt;p&gt;As a developer, I’ve worked with a lot of different languages and environments: C#, C++, Java, Go, Lisp, JS, PHP (and many more). The one thing in common between all of them is the debugging method that I’ve used: logging. &lt;/p&gt;

&lt;p&gt;Being it a &lt;code&gt;cout&lt;/code&gt; (C++) or &lt;code&gt;System.out.println&lt;/code&gt; (Java), outputting something to the console/cli is an old as the world practice, in javascript this is done by &lt;code&gt;console.log(arg)&lt;/code&gt; and here I'm going to give you more tools to help you debug your javascript code.&lt;/p&gt;

&lt;p&gt;While console.log is a helpful tool, it should not be the only one you rely on for debugging. Here are some other ways you can use the console in javascript:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;console.error&lt;/code&gt;: This function is similar to console.log, but it outputs the message in red and also prints the stack trace of where the error occurred. This can be helpful when trying to identify the source of an error in your code.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;console.warn&lt;/code&gt;: This function works just like console.error, but the message is output in yellow and the stack trace is not printed. Use this for non-critical warnings in your code.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;console.info&lt;/code&gt;: This function is similar to console.log, but the message is output in blue. Use this for informative messages that don't necessarily indicate an error or warning.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;console.assert&lt;/code&gt;: This function allows you to test a boolean condition and output a message if the condition is false. For example, you can use console.assert to ensure that a variable has the correct value at a certain point in your code.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;console.group&lt;/code&gt; and &lt;code&gt;console.groupEnd&lt;/code&gt;: These functions allow you to group related log messages together, making it easier to read and understand the output in the console.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;console.time&lt;/code&gt; and &lt;code&gt;console.timeEnd&lt;/code&gt;: These functions allow you to measure the time it takes for a certain block of code to execute. This can be helpful for identifying performance issues in your code.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;console.clear&lt;/code&gt;: Clears the console.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;console.dir&lt;/code&gt;: Outputs an interactive list of the properties of the provided object.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;console.table&lt;/code&gt;: Outputs the provided data in a table format.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;console.count&lt;/code&gt;: Outputs the number of times this method has been called with the given label.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;console.trace&lt;/code&gt;: Outputs a stack trace showing the calls that led to the current point in the code.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Some of the most useful are &lt;code&gt;console.time&lt;/code&gt; and &lt;code&gt;console.group&lt;/code&gt;, here are two example of their use&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;console.time&lt;/strong&gt;
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;time&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Time taken&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="c1"&gt;// code block to be measured goes here&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;timeEnd&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Time taken&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This will output as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
    Time taken: 100.123ms

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can also use console.time and console.timeEnd to measure multiple blocks of code and compare the results:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;time&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Time taken for loop 1&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="c1"&gt;// code for loop 1 goes here&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;timeEnd&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Time taken for loop 1&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;time&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Time taken for loop 2&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="c1"&gt;// code for loop 2 goes here&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;timeEnd&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Time taken for loop 2&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="nx"&gt;Time&lt;/span&gt; &lt;span class="nx"&gt;taken&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="nx"&gt;loop&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;100.123&lt;/span&gt;&lt;span class="nx"&gt;ms&lt;/span&gt;
    &lt;span class="nx"&gt;Time&lt;/span&gt; &lt;span class="nx"&gt;taken&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="nx"&gt;loop&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;50.456&lt;/span&gt;&lt;span class="nx"&gt;ms&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  &lt;strong&gt;console.group&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Here is an example of how you can use console.group and console.groupEnd to group related log messages together:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;group&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Results for loop 1&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Iteration 1: 10&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Iteration 2: 20&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Iteration 3: 30&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;groupEnd&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Results for loop 1&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;group&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Results for loop 2&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Iteration 1: 15&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Iteration 2: 25&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Iteration 3: 35&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;groupEnd&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Results for loop 2&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This will output something like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    Results for loop 1:
      Iteration 1: 10
      Iteration 2: 20
      Iteration 3: 30
    Results for loop 2:
      Iteration 1: 15
      Iteration 2: 25
      Iteration 3: 35

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Note that the label you provide to console.group and console.groupEnd should be the same in order to properly group the log messages together. You can also nest groups by using console.group within another console.group.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--iO6zamiM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/12000/0%2ASbfqN2fiuuCc19OF" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--iO6zamiM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/12000/0%2ASbfqN2fiuuCc19OF" alt="Photo by [Luca Bravo](https://unsplash.com/@lucabravo?utm_source=medium&amp;amp;utm_medium=referral) on [Unsplash](https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral)" width="880" height="587"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In summary, while console.log is a useful tool, it should not be the only one you rely on for debugging. By using the other functions in the console object, you can get a more comprehensive view of what's happening in your code and more effectively identify and fix issues.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>debug</category>
      <category>webdev</category>
      <category>beginners</category>
    </item>
    <item>
      <title>One new kind of hackathon</title>
      <dc:creator>Francesco Borrelli</dc:creator>
      <pubDate>Fri, 29 Apr 2022 14:50:04 +0000</pubDate>
      <link>https://dev.to/thedevcaptain/one-new-kind-of-hackathon-1gg1</link>
      <guid>https://dev.to/thedevcaptain/one-new-kind-of-hackathon-1gg1</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;A hackathon is any event of any duration where people come together to solve problems.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is a complete and synthetic definition of what an hackathon is.&lt;br&gt;
Usually in the tech field an Hackathon is a big event where promoters/companies challenge teams to overcome challenges and solve problems in a time constrained environment.&lt;/p&gt;

&lt;p&gt;The teams can be both "pre-made" or formed on the fly during the event.&lt;/p&gt;

&lt;p&gt;This kind of event is mainly used by the companies for two reason:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Finding new talents&lt;/li&gt;
&lt;li&gt;Marketing the company itself who is organising/promoting the hack&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The hackers instead find this a good way of connecting to fellow hackers and to up skill theirselves.&lt;/p&gt;

&lt;p&gt;Personally I've participated into lots of those hackathon and just recently I experienced a new kind of hack, which really made my dev life, a lot better.&lt;/p&gt;




&lt;p&gt;I currently work in a Tech department (1.5 years old)  as a backend software engineer of a non-tech related company (~15 years old) doing the best to modernise it and make a huge breakthrough with a "digital wave" of solutions.&lt;br&gt;
I'm also part of a team (that ourselves) called "Flexers" and we, as a team, decided to take on a big challenge and make an hackathon out of it.&lt;/p&gt;

&lt;p&gt;We set the epics, investigated on feasibility and profitability for the company and then we just took a flight to Portugal to reach the goals in a week.&lt;/p&gt;

&lt;p&gt;It is a really game changer in the team-building routine you might have in a company, since it will put have the team creating bonds while cooking or deciding what to do for the evenings.&lt;/p&gt;

&lt;p&gt;On top of that, communication and exchange of ideas is 200% (really accurate rate) increased and better because everyone has an high level of comfort while working.&lt;/p&gt;




&lt;p&gt;These were my outtakes of the last week, I sure it won't apply to everybody, but I just wanted to make it public as a good way of learning stuff and creating good synergies between people.&lt;/p&gt;

&lt;p&gt;Please comment with your opinion on this :D&lt;/p&gt;

&lt;p&gt;P.s. of course we reached the goal by implementing Stripe in-person terminal and Call-center payments for our CRM ;)&lt;/p&gt;

</description>
      <category>stripe</category>
      <category>motivation</category>
      <category>todayilearned</category>
      <category>productivity</category>
    </item>
    <item>
      <title>A quick chat on managing accesses</title>
      <dc:creator>Francesco Borrelli</dc:creator>
      <pubDate>Fri, 11 Dec 2020 12:37:10 +0000</pubDate>
      <link>https://dev.to/thedevcaptain/a-quick-chat-on-managing-accesses-1m10</link>
      <guid>https://dev.to/thedevcaptain/a-quick-chat-on-managing-accesses-1m10</guid>
      <description>&lt;p&gt;Hi everyone, this is my first post on dev.to and I wanted to gather some opinions and feedback on how you currently handle access management in your company/for your freelance projects.&lt;/p&gt;

&lt;p&gt;We currently have an IT team that manages keys, credentials, and permission, but I do not know how they handle this internally.&lt;/p&gt;

</description>
      <category>discuss</category>
    </item>
  </channel>
</rss>
