<?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:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[<azaytek/>]]></title><description><![CDATA[Welcome to azayez technology blog, a place where a passionate -yet lazy- software engineer , Azzouz, shares his tech journey with the community]]></description><link>https://www.azaytek.com/</link><image><url>https://www.azaytek.com/favicon.png</url><title>&lt;azaytek/&gt;</title><link>https://www.azaytek.com/</link></image><generator>Ghost 4.35</generator><lastBuildDate>Tue, 07 Apr 2026 11:14:05 GMT</lastBuildDate><atom:link href="https://www.azaytek.com/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[Stop Being Polite to AI]]></title><description><![CDATA[AI isn’t your grandma. Stop thanking it and start being efficient. Learn why AI hype is hilarious, how to get results faster, and why politeness costs you money.]]></description><link>https://www.azaytek.com/stop-being-polite-to-ai/</link><guid isPermaLink="false">6921cba1a282690544b1e543</guid><dc:creator><![CDATA[Abdelaziz Dabbabi]]></dc:creator><pubDate>Sat, 22 Nov 2025 15:51:31 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1620712943543-bcc4688e7485?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDd8fGFpfGVufDB8fHx8MTc2NjU2MjI0OHww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1620712943543-bcc4688e7485?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDd8fGFpfGVufDB8fHx8MTc2NjU2MjI0OHww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=2000" alt="Stop Being Polite to AI"><p>We humans love manners. We say &#x201C;please,&#x201D; &#x201C;thank you,&#x201D; and even apologize to our digital assistants like Alexa or ChatGPT. Cute, right? Wrong.</p><p>When it comes to AI, politeness is pointless. Every extra word you type, whether &#x201C;please&#x201D; or &#x201C;thanks&#x201D;, consumes tokens, server energy, and sometimes even money. And the AI? Doesn&#x2019;t care. Not a bit.</p><p>AI isn&#x2019;t a guest at your dinner table. It&#x2019;s a supercharged tool running on massive data centers. It doesn&#x2019;t need compliments or gratitude. What it <em>does</em> need is clarity. Sharp, direct instructions. Efficiency is the new etiquette, and if you want AI to work for you, it&#x2019;s time to stop wasting words on niceties.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.azaytek.com/content/images/2025/11/ChatGPT-Image-Nov-22--2025--04_33_11-PM.png" class="kg-image" alt="Stop Being Polite to AI" loading="lazy" width="1536" height="1024" srcset="https://www.azaytek.com/content/images/size/w600/2025/11/ChatGPT-Image-Nov-22--2025--04_33_11-PM.png 600w, https://www.azaytek.com/content/images/size/w1000/2025/11/ChatGPT-Image-Nov-22--2025--04_33_11-PM.png 1000w, https://www.azaytek.com/content/images/2025/11/ChatGPT-Image-Nov-22--2025--04_33_11-PM.png 1536w" sizes="(min-width: 720px) 720px"><figcaption>Stop being polite to AI</figcaption></figure><h2 id="ai-hype-meets-human-manners">AI Hype Meets Human Manners</h2><h3 id="ai-hype-is-everywhere-but-it-doesn%E2%80%99t-need-your-politeness">AI Hype Is Everywhere, But It Doesn&#x2019;t Need Your Politeness</h3><p>AI is overhyped, but that doesn&#x2019;t make it useless. It can write, summarize, generate ideas, and automate tasks. Still, it&#x2019;s literal, sometimes clueless, and far from magical.</p><p>The hype works because humans project our expectations onto AI. We want it to summarize reports, predict markets, write novels, and sometimes even fetch our coffee. Reality? AI can generate content and perform calculations, but it doesn&#x2019;t fetch coffee. And it certainly doesn&#x2019;t care about your politeness.</p><h3 id="being-polite-is-costly-and-inefficient">Being Polite Is Costly and Inefficient</h3><p>Saying &#x201C;please summarize this report&#x201D; or &#x201C;thank you for your help&#x201D; doesn&#x2019;t make AI smarter. It only adds unnecessary tokens or processing steps. Every polite phrase is a tiny, wasted cost, time, money, or both.</p><p>Clear, direct prompts are what get results:</p><p>&#x274C; Bad: &#x201C;Could you please summarize this 20-page report if it&#x2019;s not too much trouble?&#x201D;</p><p>&#x2705; Good: &#x201C;Summarize. Bullet points. Five max.&#x201D;</p><p>&#x1F4A1; Perfect: &#x201C;Summarize. Make me look smart.&#x201D;</p><p>See the difference? Short, direct, and humorous prompts save resources and get better outcomes.</p><h3 id="efficiency-is-the-real-ai-etiquette">Efficiency Is the Real AI Etiquette</h3><p>The lesson: AI doesn&#x2019;t reward manners. It rewards clarity. Conciseness. Precision. Humor even helps, though it won&#x2019;t understand the joke, it keeps you engaged and makes your prompts readable.</p><p>Think of AI as a genius calculator with a flair for the dramatic. Treat it like a tool, not a friend. The less wasted fluff you include, the better your results, and the more you save in tokens, energy, and time.</p><p></p><h2 id="conclusion-stop-thanking-ai-and-start-using-it-smartly">Conclusion: Stop Thanking AI and Start Using It Smartly</h2><p>AI is powerful, but it&#x2019;s not human. It doesn&#x2019;t feel gratitude, doesn&#x2019;t appreciate politeness, and certainly won&#x2019;t work faster if you say &#x201C;please.&#x201D;</p><p>If you want to get the most out of AI:</p><p><strong>Skip the pleasantries</strong> &#x2013; every token counts.</p><p><strong>Be direct and specific</strong> &#x2013; clarity gets results.</p><p><strong>Use humor strategically</strong> &#x2013; for your amusement, not AI&#x2019;s.</p><p>The future of AI interaction isn&#x2019;t about manners. It&#x2019;s about <strong>efficiency, precision, and a touch of fun</strong>. Stop being polite. Start being effective.</p>]]></content:encoded></item><item><title><![CDATA[How to publish a post to LinkedIn via API - Part 2: Post a text to LinkedIn API using access token]]></title><description><![CDATA[This article will show how to use API access token & user identifier we generated in the previous article to post "Hello World API!" to LinkedIn.]]></description><link>https://www.azaytek.com/how-to-publish-a-post-to-linkedin-via-api-part-2-post-a-text-to-linkedin-api-using-access-token/</link><guid isPermaLink="false">644549a818b95ca74152a0ba</guid><category><![CDATA[linkedin]]></category><category><![CDATA[API]]></category><category><![CDATA[automation]]></category><category><![CDATA[JavaScript]]></category><dc:creator><![CDATA[Abdelaziz Dabbabi]]></dc:creator><pubDate>Sun, 23 Apr 2023 16:17:38 GMT</pubDate><media:content url="https://www.azaytek.com/content/images/2023/04/linkedin-post-api.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://www.azaytek.com/content/images/2023/04/linkedin-post-api.jpg" alt="How to publish a post to LinkedIn via API - Part 2: Post a text to LinkedIn API using access token"><p>Hi and welcome back <strong>&#x1F44B;</strong></p><h2 id="introduction">Introduction</h2><p>To quickly summarize the <a href="https://www.azaytek.com/part-1-how-to-get-linkedin-api-access-token/">previous part</a>, we covered what an API is, what the LinkedIn API is, and how to generate an API access token. The essential requirements before proceeding are an API access token and a LinkedIn user identifier. </p><p>This article will show how to use API access token &amp; user identifier to post &quot;<em>This is my first article posted from my Node.js app</em>&quot; to your LinkedIn profile.</p><p>Cool? Let&apos;s go.</p><h2 id="implementation">Implementation</h2><p></p><p>To post on LinkedIn via API, all we have to do is call a specific API endpoint with specific parameters. You can use whatever programming language you prefer, but ultimately it boils down to:</p><p><br>1- URL: the URL which is composed of the base API URL and the post path:</p><!--kg-card-begin: markdown--><pre><code>https://api.linkedin.com/rest/post
</code></pre>
<!--kg-card-end: markdown--><p>2-Method: the HTTP method we have to use:</p><!--kg-card-begin: markdown--><pre><code>POST
</code></pre>
<!--kg-card-end: markdown--><p>3- Headers: the metadata we have to attach to our HTTP request:</p><!--kg-card-begin: markdown--><pre><code>{		
    &apos;LinkedIn-Version&apos;: &apos;202210&apos;,
    &apos;X-Restli-Protocol-Version&apos;: &apos;2.0.0&apos;,
    &apos;Authorization&apos;: &apos; Bearer ___access_token___&apos;	
}

</code></pre>
<!--kg-card-end: markdown--><p>4-Body: The content of our post should be formatted as per LinkedIn&apos;s specifications. This is the minimum required data to achieve a successful result.</p><!--kg-card-begin: markdown--><pre><code>{
     &quot;author&quot;: &quot;urn:li:person:___user_identifier___&apos;,
     &quot;commentary&quot;: &quot;This is my first article posted from my Node.js app&quot;
     &quot;visibility&quot;: &quot;PUBLIC&quot;,
     &quot;distribution&quot;: {
         &quot;feedDistribution&quot;: &quot;MAIN_FEED&quot;,
         &quot;targetEntities&quot;: [],
         &quot;thirdPartyDistributionChannels&quot;: []
     },
     &quot;lifecycleState&quot;: &quot;PUBLISHED&quot;,
}
</code></pre>
<!--kg-card-end: markdown--><p>In JavaScript, a complete, typical example using the fetch package is displayed below:</p><!--kg-card-begin: markdown--><pre><code>var fetch = require(&quot;node-fetch&quot;)

const response = await fetch(&quot;https://api.linkedin.com/rest/post&quot;, {
            method: &quot;POST&quot;,
            header: {
                &apos;LinkedIn-Version&apos;: &apos;202210&apos;,
                &apos;X-Restli-Protocol-Version&apos;: &apos;2.0.0&apos;,
                &apos;Authorization&apos;: &apos; Bearer ___access_token___&apos;
            },
            body: JSON.stringify({
                &quot;author&quot;: &quot;urn:li:person:___user_identifier___&apos;,
                &quot;commentary&quot;: &quot;This is my first article posted from my Node.js app&quot;
                &quot;visibility&quot;: &quot;PUBLIC&quot;,
                &quot;distribution&quot;: {
                    &quot;feedDistribution&quot;: &quot;MAIN_FEED&quot;,
                    &quot;targetEntities&quot;: [],
                    &quot;thirdPartyDistributionChannels&quot;: []
                },
                &quot;lifecycleState&quot;: &quot;PUBLISHED&quot;,
            }))
            ```</code></pre>
<!--kg-card-end: markdown--><p>Upon a successful request, you get a 201 (created) status and the <code>x-restli-id</code> response header has the new post&#x2019;s URN, <code>urn:li:share:{ID}</code> . Here a screenshot of a successful API (from my IDE debugger):</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.azaytek.com/content/images/2023/04/image-2.png" class="kg-image" alt="How to publish a post to LinkedIn via API - Part 2: Post a text to LinkedIn API using access token" loading="lazy" width="1076" height="390" srcset="https://www.azaytek.com/content/images/size/w600/2023/04/image-2.png 600w, https://www.azaytek.com/content/images/size/w1000/2023/04/image-2.png 1000w, https://www.azaytek.com/content/images/2023/04/image-2.png 1076w" sizes="(min-width: 720px) 720px"><figcaption>LinkedIn API call success response</figcaption></figure><p>And here is the post in my LinkedIn account:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.azaytek.com/content/images/2023/04/image.png" class="kg-image" alt="How to publish a post to LinkedIn via API - Part 2: Post a text to LinkedIn API using access token" loading="lazy" width="514" height="149"><figcaption>Post created via LinkedIn API</figcaption></figure><p>That&apos;s it. We&apos;ve done it &#x1F389;</p><p></p><h2 id="conclusion">Conclusion</h2><p>In this article, we went through an example of how to use the LinkedIn API access token and user identifier that we generated in the previous part of this series to automatically post on LinkedIn. I hope this was helpful. Don&apos;t hesitate to reach out to me if things don&apos;t work out for you. Happy posting!</p>]]></content:encoded></item><item><title><![CDATA[Strategies for Successfully Leading a Team of Senior Software Developers]]></title><description><![CDATA[Leading a team of senior software developers can be a daunting task, but with the right strategies in place, it can be a rewarding experience for both you and your team. In this article, we will share some strategies for successfully leading a team of senior software developers.]]></description><link>https://www.azaytek.com/strategies-for-successfully-leading-a-team-of-senior-software-developers/</link><guid isPermaLink="false">639335c79e12d7a0414babc1</guid><category><![CDATA[Software Engineering]]></category><category><![CDATA[career]]></category><category><![CDATA[Productivity]]></category><category><![CDATA[recruitment]]></category><dc:creator><![CDATA[Abdelaziz Dabbabi]]></dc:creator><pubDate>Sat, 25 Feb 2023 13:27:32 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1519241047957-be31d7379a5d?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDd8fHNvZnR3YXJlfGVufDB8fHx8MTY3MzI3NTQxMg&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1519241047957-be31d7379a5d?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDd8fHNvZnR3YXJlfGVufDB8fHx8MTY3MzI3NTQxMg&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" alt="Strategies for Successfully Leading a Team of Senior Software Developers"><p>So, you think leading a team of senior software developers is a piece of cake? Well, think again! It&apos;s like trying to herd cats - challenging, but oh-so-rewarding. As the team leader, you&apos;re like a cat wrangler, making sure your team members have all the catnip...I mean, resources and support they need to be successful.</p><p>In this article, we&apos;ll give you some insider tips on how to lead your team of software cats...er, developers. From giving clear directions to fostering collaboration, we&apos;ll help you navigate the feline...I mean, professional development waters. So grab your cat toy...I mean, leadership toolkit, and let&apos;s get started!</p><h3 id="provide-clear-direction">Provide clear direction</h3><p>As a team leader, your primary job is to make sure your team is heading in the right direction - kind of like a GPS for humans. You&apos;ve got to set clear goals and expectations, and then communicate them in a way that even your office cactus can understand. And trust me, if your team is anything like a cactus, they&apos;ll need lots of watering...I mean, regular updates on progress.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.azaytek.com/content/images/2023/02/image-1.png" class="kg-image" alt="Strategies for Successfully Leading a Team of Senior Software Developers" loading="lazy" width="860" height="540" srcset="https://www.azaytek.com/content/images/size/w600/2023/02/image-1.png 600w, https://www.azaytek.com/content/images/2023/02/image-1.png 860w" sizes="(min-width: 720px) 720px"><figcaption>Provide clear direction</figcaption></figure><p>But don&apos;t worry, you don&apos;t need to be a superhero to lead your team to success. Just think of yourself as the captain of a ship, steering your crew towards a treasure trove of code...I mean, success. And if the winds change direction, don&apos;t be afraid to adjust your sails...I mean, goals, to keep your ship on course. So grab your compass...I mean, leadership handbook, and set sail for adventure!</p><h3 id="foster-collaboration">Foster collaboration</h3><p>Senior software developers are like wizards - they&apos;ve got years of experience and enough knowledge to fill a library. But as a team leader, your job is to make sure they&apos;re not hoarding all their magical secrets to themselves. You need to create an environment that encourages collaboration and sharing of ideas, like a Hogwarts study group...I mean, team meeting.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://images.unsplash.com/photo-1517048676732-d65bc937f952?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDJ8fGNvbGxhYm9yYXRpb258ZW58MHx8fHwxNjc3MzMwMTg4&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" class="kg-image" alt="Strategies for Successfully Leading a Team of Senior Software Developers" loading="lazy" width="5472" height="3648" srcset="https://images.unsplash.com/photo-1517048676732-d65bc937f952?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDJ8fGNvbGxhYm9yYXRpb258ZW58MHx8fHwxNjc3MzMwMTg4&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=600 600w, https://images.unsplash.com/photo-1517048676732-d65bc937f952?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDJ8fGNvbGxhYm9yYXRpb258ZW58MHx8fHwxNjc3MzMwMTg4&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=1000 1000w, https://images.unsplash.com/photo-1517048676732-d65bc937f952?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDJ8fGNvbGxhYm9yYXRpb258ZW58MHx8fHwxNjc3MzMwMTg4&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=1600 1600w, https://images.unsplash.com/photo-1517048676732-d65bc937f952?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDJ8fGNvbGxhYm9yYXRpb258ZW58MHx8fHwxNjc3MzMwMTg4&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2400 2400w" sizes="(min-width: 720px) 720px"><figcaption>Photo by <a href="https://unsplash.com/@dylandgillis?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit">Dylan Gillis</a> / <a href="https://unsplash.com/?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit">Unsplash</a></figcaption></figure><p>You&apos;ll want to arm your team with the latest collaboration tools and technologies, like wands...I mean, Zoom and Slack, to help them work their magic together. And don&apos;t forget to foster a culture of open communication and feedback - after all, constructive criticism is like a potion that can turn even the most difficult code into something beautiful.</p><p>So put on your wizard hat...I mean, leadership hat, and help your team unleash their magical potential! The sky&apos;s the limit (or maybe just the ceiling of the Great Hall).</p><h3 id="support-professional-development">Support professional development</h3><p>Software development is like playing a never-ending game of catch-up - you&apos;ve got to stay on your toes to keep up with the latest technologies and best practices. As the team leader, it&apos;s your job to make sure your team is not left behind in the tech race. You&apos;ll need to provide them with all the support and resources they need to continue their professional development, like a personal IT department...I mean, training opportunities.</p><p>You can also give your team access to online learning resources, like a Hogwarts library filled with magical books...I mean, coding courses. And don&apos;t forget about mentorship programs - after all, everyone needs a wise Dumbledore...I mean, mentor to guide them on their journey.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.azaytek.com/content/images/2023/02/image-2.png" class="kg-image" alt="Strategies for Successfully Leading a Team of Senior Software Developers" loading="lazy" width="547" height="333"><figcaption>Support professional development</figcaption></figure><p>So grab your wizard robe...I mean, leadership hat, and help your team become software development masters. Who knows, they might even become tech wizards...I mean, experts, in their own right!</p><h3 id="be-available-and-approachable">Be available and approachable</h3><p>Being a leader of a team of senior software developers is like being a cool uncle at a family reunion. You&apos;ve got to be available and approachable, like that uncle who always has a stash of candy...I mean, answers to coding questions. You need to be present and accessible to your team members, even if that means hiding out in the break room with them during a coffee break.</p><p>And when your team members come to you with their concerns and ideas, be sure to listen carefully - like that uncle who listens to all the family gossip. Regular one-on-one meetings and check-ins can help you build trust and collaboration within your team, like that uncle who organizes the annual family picnic.</p><p>So put on your uncle&apos;s Hawaiian shirt...I mean, leadership hat, and be the cool uncle...I mean, leader, your team needs. Who knows, you might even get invited to the family reunion...I mean, team outing, as the favorite uncle!</p><h3 id="be-a-strong-advocate">Be a strong advocate</h3><p>As the leader of your team, you hold a great responsibility. You are the voice of your team, the champion of their ideas, and the defender of their success. You must fight for them with every ounce of your being, like a warrior fighting for their people in battle.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.azaytek.com/content/images/2023/02/Hotpot-1.png" class="kg-image" alt="Strategies for Successfully Leading a Team of Senior Software Developers" loading="lazy" width="256" height="256"><figcaption>Be a strong advocate</figcaption></figure><p>You must ensure that your team members have the resources and support they need to be successful, even if it means battling against the forces of bureaucracy and budget constraints. And when your team members come to you with their ideas and initiatives, you must carry their banner into battle, fighting for their cause with every breath in your lungs.</p><p>And when your team members achieve great things, you must reward them with the spoils of victory, like a king bestowing treasures upon his loyal knights. You must ensure that their achievements are recognized and celebrated throughout the land.</p><p>So take up your sword...I mean, leadership hat, and be the champion your team needs. For in this battle, the fate of your team&apos;s success hangs in the balance.</p><h3 id="encourage-innovation-and-creativity">Encourage innovation and creativity</h3><p>The world of software development is like a wild jungle, where new technologies and trends are always emerging. As the team leader, it&apos;s your job to lead your team through the jungle, like a jungle guide leading their team through the wilderness.</p><p>Encourage your team members to think creatively and take risks, like a group of explorers trying out new paths through the jungle. You can create a culture of experimentation and learning by organizing team-building activities like a scavenger hunt where your team members have to find solutions to coding puzzles.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.azaytek.com/content/images/2023/02/lkjlkjlkjlkj.JPG" class="kg-image" alt="Strategies for Successfully Leading a Team of Senior Software Developers" loading="lazy" width="536" height="500"><figcaption>Encourage innovation and creativity</figcaption></figure><p>And when your team members come to you with their new initiatives and projects, support them like a strong and reliable jungle guide. Provide them with all the resources they need to survive in the jungle, like a team of experts that can help them overcome any obstacle.</p><p>So put on your leadership hat and venture into the jungle of software development with your team. Encourage them to experiment and innovate, and who knows, maybe they&apos;ll discover the next hidden treasure of software development!</p><h3 id="manage-conflicts-and-challenges">Manage conflicts and challenges</h3><p>As the team leader, it&apos;s your job to be the hero that swoops in to save the day, like a fearless knight charging into battle.</p><p>You must be ready to face any challenge that comes your way, like a seasoned warrior facing their opponent. When team members are struggling, provide them with the support and guidance they need, like a healer using their magic to restore their comrades&apos; strength.</p><p>And when conflicts arise, don&apos;t shy away from the battle - face it head-on like a brave knight. Facilitate difficult conversations and mediate conflicts, like a skilled diplomat working to prevent war. With your help, your team can overcome any obstacle that stands in their way.</p><p>So put on your armor, grab your sword, and prepare to lead your team into battle. With your guidance and support, your team will emerge victorious, like a band of warriors who have overcome their enemies and emerged stronger than ever before!</p><h3 id="conclusion">Conclusion</h3><p>So there you have it - leading a team of senior software developers is like being the captain of a ship sailing the high seas. You must steer your ship in the right direction, like a navigator using their compass to stay on course.</p><p>Encourage your crew to work together and collaborate, like a team of pirates sharing their booty. And provide them with the support they need to keep sailing forward, like a crewmate who has your back no matter what.</p><p>By implementing the strategies outlined above, you&apos;ll create a shipshape environment where your team can thrive like a school of fish swimming in unison. And who knows, maybe you&apos;ll discover new lands and treasures along the way, like a group of adventurers exploring uncharted waters.</p><p>So hoist the anchor and set sail on your voyage to success with your team of senior software developers. By following these strategies, you&apos;re sure to reach your destination, like a ship sailing towards the horizon with the wind at its back.</p><p>Bon voyage!</p>]]></content:encoded></item><item><title><![CDATA[How to ask for help as a software developer]]></title><description><![CDATA[Asking for support is a crucial part of the learning process to grow as a software developer. The article gives 8 tips on how to do it effectively]]></description><link>https://www.azaytek.com/the-art-of-asking-for-support-as-a-developer/</link><guid isPermaLink="false">6233304a7cf3004892190c54</guid><category><![CDATA[career]]></category><category><![CDATA[Productivity]]></category><category><![CDATA[Software Engineering]]></category><dc:creator><![CDATA[Abdelaziz Dabbabi]]></dc:creator><pubDate>Mon, 09 Jan 2023 16:42:34 GMT</pubDate><media:content url="https://www.azaytek.com/content/images/2023/01/computers.JPG" medium="image"/><content:encoded><![CDATA[<img src="https://www.azaytek.com/content/images/2023/01/computers.JPG" alt="How to ask for help as a software developer"><p>As a software developer, asking for help &amp; support can be a challenging task. Whether you&apos;re seeking help from your colleagues, online forums, or customer support teams, effective communication is key to getting the help you need. In this article, we will explore the art of asking for support as a software developer and provide eight pieces of advice on how to do it effectively.</p><p><strong>Find the right person to ask</strong></p><p>When asking for support, it is important to identify the right person or team to ask. This could be someone who has expertise in the specific area you are struggling with, such as frontend development, backend development, database management, or system administration. You can also consider asking someone who has experience working on similar projects or who has a track record of successfully solving similar problems. By identifying the right target, you are more likely to receive targeted and helpful support.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.azaytek.com/content/images/2023/01/computers_2.JPG" class="kg-image" alt="How to ask for help as a software developer" loading="lazy" width="945" height="655" srcset="https://www.azaytek.com/content/images/size/w600/2023/01/computers_2.JPG 600w, https://www.azaytek.com/content/images/2023/01/computers_2.JPG 945w" sizes="(min-width: 720px) 720px"><figcaption>colleagues discussing</figcaption></figure><p><strong>Clearly articulate the problem</strong></p><p>When asking for support, it is important to clearly articulate the problem you are facing. This means describing the issue in detail and outlining any steps you have already taken to try and solve it. For example, if you are having trouble debugging a piece of code, you could say something like: &quot;I am having trouble debugging this piece of code. I have tried using print statements to trace the issue, but I am still not sure what is causing the problem. Can you help me understand what might be going wrong?&quot;</p><p><strong>Be specific about what you need</strong></p><p>In addition to clearly describing the problem, it is important to be specific about what you need help with. This could mean asking for guidance on a particular aspect of the problem, or for suggestions on how to approach the issue. For example, you might say: &quot;I am having trouble understanding how this API works. Can you explain it to me in more detail or point me towards some resources that might be helpful?&quot;</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.azaytek.com/content/images/2023/01/Capture22.JPG" class="kg-image" alt="How to ask for help as a software developer" loading="lazy" width="892" height="649" srcset="https://www.azaytek.com/content/images/size/w600/2023/01/Capture22.JPG 600w, https://www.azaytek.com/content/images/2023/01/Capture22.JPG 892w" sizes="(min-width: 720px) 720px"><figcaption>taking notes of details</figcaption></figure><p><strong>Be open to feedback and suggestions: </strong></p><p>When you ask for support, it is important to be open to the ideas and suggestions of others. This can help you see the problem from a different perspective and find a solution that may not have occurred to you otherwise. For example, if you are struggling with a particular concept, you might ask: &quot;I am having trouble understanding this concept. Can you explain it to me in a different way or give me some examples of how it is used in practice?&quot;</p><p><strong>Show that you have tried to solve the problem</strong></p><p>Asking for support does not mean you are giving up on trying to solve the problem yourself. In fact, it is important to show that you have already tried to solve the issue and are now seeking additional help. This demonstrates that you are proactive and willing to put in the effort to find a solution.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.azaytek.com/content/images/2023/01/Capture2121.JPG" class="kg-image" alt="How to ask for help as a software developer" loading="lazy" width="843" height="581" srcset="https://www.azaytek.com/content/images/size/w600/2023/01/Capture2121.JPG 600w, https://www.azaytek.com/content/images/2023/01/Capture2121.JPG 843w" sizes="(min-width: 720px) 720px"><figcaption>making effort to solve a bug</figcaption></figure><p><strong>Be respectful and considerate</strong></p><p>When asking for support, it is important to remember that you are asking for someone else&apos;s time and expertise. Be respectful and considerate in your request, and be willing to listen and learn from their suggestions.</p><p><strong>Follow up</strong></p><p>After asking for support, don&apos;t be afraid to ask for clarification or additional information if you need it&amp; make sure to follow up and thank the person for their help. This shows that you appreciate their time and efforts, and also gives you an opportunity to ask any additional questions you may have.</p><p><strong>Practice gratitude</strong></p><p>Finally, remember to practice gratitude and show appreciation for the support you receive. This can be as simple as saying &quot;thank you&quot; or sending a follow-up email expressing your gratitude. By showing appreciation, you are more likely to receive support in the future and strengthen your professional relationships.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.azaytek.com/content/images/2023/01/thanks.JPG" class="kg-image" alt="How to ask for help as a software developer" loading="lazy" width="923" height="473" srcset="https://www.azaytek.com/content/images/size/w600/2023/01/thanks.JPG 600w, https://www.azaytek.com/content/images/2023/01/thanks.JPG 923w" sizes="(min-width: 720px) 720px"><figcaption>&quot;Thank you&quot; message</figcaption></figure><h3 id="conclusion">Conclusion</h3><p>Asking for support is an important part of the learning process and can help you grow as a software developer. By being proactive, specific, and open to feedback, you can improve your skills and find solutions to the challenges you encounter. Remember to be respectful and considerate in your request, follow up, and practice gratitude to strengthen your professional relationships. By embracing these principles, you can effectively ask for support and grow in your career as a software developer.</p>]]></content:encoded></item><item><title><![CDATA[From Vacation Mode to Coding Mode: Tips for Software Engineers Returning to Work After a Holiday]]></title><description><![CDATA[Advices for Software Engineers Returning to Work After a Break]]></description><link>https://www.azaytek.com/from-vacation-mode-to-coding-mode-tips-for-software-engineers-returning-to-work-after-a-holiday/</link><guid isPermaLink="false">63aed7209e12d7a0414bb064</guid><category><![CDATA[2023]]></category><category><![CDATA[career]]></category><category><![CDATA[Software Engineering]]></category><category><![CDATA[retrospective]]></category><category><![CDATA[Productivity]]></category><dc:creator><![CDATA[Abdelaziz Dabbabi]]></dc:creator><pubDate>Sun, 01 Jan 2023 15:11:39 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1510074377623-8cf13fb86c08?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDMwfHxiYWNrJTIwdG8lMjB3b3JrfGVufDB8fHx8MTY3MjU4NTAzMA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<h3 id="introduction">Introduction</h3><img src="https://images.unsplash.com/photo-1510074377623-8cf13fb86c08?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDMwfHxiYWNrJTIwdG8lMjB3b3JrfGVufDB8fHx8MTY3MjU4NTAzMA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" alt="From Vacation Mode to Coding Mode: Tips for Software Engineers Returning to Work After a Holiday"><p>Returning to work as a software engineer after a holiday break can be a challenging transition, especially if you&apos;ve been away from your projects and codebase for an extended period of time. Here are some technical tips to help make the process smoother and more enjoyable:</p><p><strong>Review code commits:</strong> Before you start working on your projects again, take some time to review any code commits that have been made while you were away. This will help you get a sense of any changes or updates that have been made to the codebase and ensure that you&apos;re up to date on the current state of the project.</p><p><strong>Meet with your team:</strong> Schedule a meeting with your team to discuss progress on the project and any issues that may have come up while you were away. This will help you get a better understanding of where the project stands and what needs to be done moving forward.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.azaytek.com/content/images/2023/01/startup-photos.jpg" class="kg-image" alt="From Vacation Mode to Coding Mode: Tips for Software Engineers Returning to Work After a Holiday" loading="lazy" width="1125" height="750" srcset="https://www.azaytek.com/content/images/size/w600/2023/01/startup-photos.jpg 600w, https://www.azaytek.com/content/images/size/w1000/2023/01/startup-photos.jpg 1000w, https://www.azaytek.com/content/images/2023/01/startup-photos.jpg 1125w" sizes="(min-width: 720px) 720px"><figcaption>Brainstorming &amp; TODOs dashboard</figcaption></figure><p><strong>Set up your local development environment:</strong> If you haven&apos;t already, set up a local development environment on your computer so that you can work on the project locally. This will allow you to test code changes and make updates without affecting the live codebase.</p><p><strong>Review documentation:</strong> Take some time to review any project documentation that may have been updated while you were away. This will help you get a better understanding of the project and any changes that have been made.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.azaytek.com/content/images/2023/01/pexels-photo-416322.jpeg" class="kg-image" alt="From Vacation Mode to Coding Mode: Tips for Software Engineers Returning to Work After a Holiday" loading="lazy" width="1125" height="750" srcset="https://www.azaytek.com/content/images/size/w600/2023/01/pexels-photo-416322.jpeg 600w, https://www.azaytek.com/content/images/size/w1000/2023/01/pexels-photo-416322.jpeg 1000w, https://www.azaytek.com/content/images/2023/01/pexels-photo-416322.jpeg 1125w" sizes="(min-width: 720px) 720px"><figcaption>Prioritize things checklist</figcaption></figure><p><strong>Ease back into your routine:</strong> Don&apos;t try to tackle everything at once. Start by taking on a few small tasks and gradually increase your workload as you get back into the swing of things. It&apos;s also a good idea to set aside some time each day for self-care, whether that&apos;s exercising, meditating, or just taking a break to relax and recharge.</p><p><strong>Stay connected with your team:</strong> If you&apos;re feeling a bit isolated after your holiday break, make an effort to reconnect with your team. Set up lunch or coffee dates, or just stop by their desks to chat and catch up. This can help you feel more connected and supported as you get back into the swing of things.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.azaytek.com/content/images/2023/01/pexels-photo-851555.webp" class="kg-image" alt="From Vacation Mode to Coding Mode: Tips for Software Engineers Returning to Work After a Holiday" loading="lazy" width="1600" height="1067" srcset="https://www.azaytek.com/content/images/size/w600/2023/01/pexels-photo-851555.webp 600w, https://www.azaytek.com/content/images/size/w1000/2023/01/pexels-photo-851555.webp 1000w, https://www.azaytek.com/content/images/2023/01/pexels-photo-851555.webp 1600w" sizes="(min-width: 720px) 720px"><figcaption>Relax, coffee</figcaption></figure><p><strong>Take care of yourself:</strong> Finally, don&apos;t forget to take care of yourself as you transition back to work. Make sure you&apos;re getting enough sleep, eating well, and finding time for physical activity and relaxation. It&apos;s easy to get caught up in the hustle and bustle of work, but it&apos;s important to prioritize your own well-being to stay healthy and happy.</p><h3 id="conclusion">Conclusion</h3><p>Returning to work as a software engineer after a holiday break can be a challenging transition, but with a little bit of preparation and a positive attitude, you can make the process smoother and more enjoyable. Review code commits, meet with your team, set up a local development environment, review documentation, ease back into your routine, stay connected with your team, and take care of yourself to make the transition back to work a successful and fulfilling experience.</p>]]></content:encoded></item><item><title><![CDATA[How to publish a post to LinkedIn via API - Part 1: How to get LinkedIn API access token]]></title><description><![CDATA[Step-by-Step Guide to Publishing to LinkedIn through the API: Part 1 - Obtaining an Access Token]]></description><link>https://www.azaytek.com/part-1-how-to-get-linkedin-api-access-token/</link><guid isPermaLink="false">63acc51f9e12d7a0414bae2e</guid><category><![CDATA[API]]></category><category><![CDATA[linkedin]]></category><category><![CDATA[automation]]></category><category><![CDATA[JavaScript]]></category><category><![CDATA[nodejs]]></category><category><![CDATA[Software Engineering]]></category><category><![CDATA[Tutorials]]></category><dc:creator><![CDATA[Abdelaziz Dabbabi]]></dc:creator><pubDate>Thu, 29 Dec 2022 14:43:47 GMT</pubDate><media:content url="https://www.azaytek.com/content/images/2022/12/linkedin-api-access-token.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://www.azaytek.com/content/images/2022/12/linkedin-api-access-token.jpg" alt="How to publish a post to LinkedIn via API - Part 1: How to get LinkedIn API access token"><p>Hello again &#x1F60A;</p><p>As a reminder, we said that posting on LinkedIn via API requires having a specific variable named <strong>access token</strong>. It will be used in the second part of this series to do an API call to post &quot;Hello LinkedIn API :-) &quot;.</p><p>But.</p><p>How could we get this variable? What&apos;s its role? You must be wondering, right? Otherwise why would you be here in the first place &#x1F607; </p><p>First things first, let&apos;s clarify some basic stuff.</p><h2 id="definitions">Definitions</h2><p><strong>API:</strong> buzz words aside, an API is a way to let programs communicate with each others. (Think of LinkedIn API as a software running on a distant computer, and the script we we&apos;ll be creating as a program running on your machine/computer). These two programs needs a way to communicate. That&apos;s what an API is.</p><p><strong>Access token: </strong>a string of characters that represents the authorization to access a particular resource or service. It is used in the process of authentication, which is the process of verifying the identity of a user or a system. You could think of this as an identifier of the real user communicating with LinkedIn API or even simpler, it has the same role as your login &amp; password when authenticating with LinkedIn website, but programmatically :)</p><p><strong>OAuth</strong>: a technique that enables users to grant third-party access to their resources without sharing their password. Remember the signing with Google screens? Cool. Think of it like that.</p><p>Now, what&apos;s the plan?</p><p>That&apos;s a very accurate question. We need one. </p><h2 id="how-things-work-in-plain-english">How things work, in plain English</h2><p>To be able to use LinkedIn API to publish a post, we need -as described above- an access token that help LinkedIn identifies the request we&apos;ll be doing and approving it. Now to get the access token, we need to understand how <strong>OAuth </strong>works when interacting with LinkedIn API.</p><p><strong>OAuth</strong> authentication is based on information&apos;s exchange, a two-step process during which, we:</p><ul><li>get an authorization code from LinkedIn API</li></ul><p> (Remember the Sign In with Google? Cool. That&apos;s simply asking the user to authorize the application being run to interact with LinkedIn on his behalf. The result of this operation is an authorization code)</p><ul><li>exchanging this authorization code with an access token:</li></ul><p>Once user authorizes LinkedIn app prompt screen, LinkedIn API will generate an authorization code. This code will be sent to our application so we will use it to ask for (or exchange it with) an authentication token. Yes? you guessed it right. This is our beloved access token we&apos;ve been talking about. Once we get this access token. Everything becomes easy-peasy.</p><p>Don&apos;t be intimidated by the above explanation. In a later section, I&apos;ve prepared everything required to get this access token for you.</p><p>Let&apos;s get the hands dirty.</p><h2 id="steps-to-get-the-access-token">Steps to get the access token:</h2><ul><li><strong>Create an app on LinkedIn: </strong></li></ul><ol><li>Sign in to the <a href="https://developer.linkedin.com/">LinkedIn developer portal</a>.</li><li>Click &quot;Create app&quot; to create a new app.</li><li>Enter basic details such as the app&apos;s name and logo.</li><li>You will need to associate your app with a company page. If you don&apos;t have any pages, create one.</li><li>Request App Verification From the Company Page: go to the Settings tab and press the &quot;Verify&quot; button to receive a verification link. Open this link if you&apos;re the company&apos;s page administrator or send it to administrator(s) of the company page you previously selected. When you/the administrator opens the link, you/they will be prompted to confirm their responsibility for your app. If you/they confirm, you will receive a notification that your app has been verified and you can continue with other settings.</li></ol><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.azaytek.com/content/images/2022/12/image.png" class="kg-image" alt="How to publish a post to LinkedIn via API - Part 1: How to get LinkedIn API access token" loading="lazy" width="445" height="320"><figcaption>LinkedIn app verification</figcaption></figure><ul><li><strong>Request Access to Features</strong></li></ul><ol><li>Go to Products tab, Do you see &#x201C;Share on LinkedIn&#x201D; and &#x201C;Sign In with LinkedIn.&#x201D; ? Cool, you need to request access to both scopes.</li></ol><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.azaytek.com/content/images/2022/12/image-1.png" class="kg-image" alt="How to publish a post to LinkedIn via API - Part 1: How to get LinkedIn API access token" loading="lazy" width="750" height="451" srcset="https://www.azaytek.com/content/images/size/w600/2022/12/image-1.png 600w, https://www.azaytek.com/content/images/2022/12/image-1.png 750w" sizes="(min-width: 720px) 720px"><figcaption>Linkedin API products</figcaption></figure><ol><li>(Applies only when you want to post on company pages) To post on company pages, you must request access to the &quot;Marketing Developer Platform&quot; and provide details about your application. Your request will be reviewed and, if approved, you will be granted access to the platform.</li><li>It is possible that the review process for your application may take some time, and it is not uncommon to experience a few rejections before it is ultimately approved. (Mine was instant)</li></ol><ul><li><strong>Review the authorization process for your application:</strong></li></ul><p>Go to &lt;<em>Auth&gt;</em> tab, scroll down. You should see a screen similar to the one below: (if you requested marketing platform access, you will also see <code>w_organization_social</code> in the list of requested scopes):</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.azaytek.com/content/images/2022/12/image-2.png" class="kg-image" alt="How to publish a post to LinkedIn via API - Part 1: How to get LinkedIn API access token" loading="lazy" width="750" height="381" srcset="https://www.azaytek.com/content/images/size/w600/2022/12/image-2.png 600w, https://www.azaytek.com/content/images/2022/12/image-2.png 750w" sizes="(min-width: 720px) 720px"><figcaption>Linkedin OAuth scopes</figcaption></figure><p>Now, locate the section called &lt;<em>OAuth 2.0 settings&gt;</em>. You need to edit this &lt;<em>Authorized redirect URLs for your app&gt;</em> to http://localhost:3000/callback like the image below (I will explain this later &#x1F609;)</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.azaytek.com/content/images/2022/12/image-3.png" class="kg-image" alt="How to publish a post to LinkedIn via API - Part 1: How to get LinkedIn API access token" loading="lazy" width="752" height="295" srcset="https://www.azaytek.com/content/images/size/w600/2022/12/image-3.png 600w, https://www.azaytek.com/content/images/2022/12/image-3.png 752w" sizes="(min-width: 720px) 720px"><figcaption>Linkedin OAuth settings</figcaption></figure><p>Now, bring a pen and a paper. Take note of <em> </em><code>client ID</code> and <em> </em><code>client secret</code> (displayed on <em>Application credentials</em> section) &amp; <strong><em>&lt;Authorized redirect URLs for your app&gt;</em></strong>, we will need them.</p><ul><li><strong>Run a helper script to handle the LinkedIn OAuth for you</strong></li></ul><p>Congratulations! If you&apos;re still here, chance you&apos;re pretty determined to make it works. Remember when we said some javascript/nodejs familiarity will be very useful? Right. Continue.</p><p>When I&apos;ve been working on this, I built a very straightforward script to get me an access from LinkedIn API. The project is hosted on Github <a href="https://github.com/azizfcb/linkedin-oauth-helper">https://github.com/azizfcb/linkedin-oauth-helper</a> . I&apos;ve created a detailed guide on how to use it to get an access token. Here&apos;s a summary:</p><ul><li>You need to <strong>clone </strong>the project using <strong>git </strong>&amp; install it&apos;s dependencies using <strong>npm</strong>.</li><li>You need to update two environment variables: LINKEDIN_CLIENT_ID &amp; LINKEDIN_CLIENT_SECRET with respectively &#xA0;<code>client ID</code> and <em> </em><code>client secret</code> we got on previous step. Now you might be asking about &lt;<em>Authorized redirect URLs for your app&gt;, </em>the variable that I told you to take a note of. </li></ul><p>Totally legit. That variable is the url that will get the authorization code sent by LinkedIn after authorization process. It points to local nodejs server running locally. You don&apos;t have to change it but I made it customizable for you.</p><ul><li>You need to start the server. This will launch your browser, ask you to login &amp;/or allow access for our app. Once done and approved, the script will continue its execution and you will get your access token displayed in the browser, along with the user ID (the identifier of the user that allowed the LinkedIn prompt screen) (and also in the console). Tada &#x1F389;&#x1F603;</li></ul><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://www.azaytek.com/content/images/2022/12/image-4.png" class="kg-image" alt="How to publish a post to LinkedIn via API - Part 1: How to get LinkedIn API access token" loading="lazy" width="1447" height="224" srcset="https://www.azaytek.com/content/images/size/w600/2022/12/image-4.png 600w, https://www.azaytek.com/content/images/size/w1000/2022/12/image-4.png 1000w, https://www.azaytek.com/content/images/2022/12/image-4.png 1447w" sizes="(min-width: 1200px) 1200px"><figcaption>LinkedIn API access token &amp; user ID displayed in the browser</figcaption></figure><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://www.azaytek.com/content/images/2022/12/image-5.png" class="kg-image" alt="How to publish a post to LinkedIn via API - Part 1: How to get LinkedIn API access token" loading="lazy" width="1718" height="212" srcset="https://www.azaytek.com/content/images/size/w600/2022/12/image-5.png 600w, https://www.azaytek.com/content/images/size/w1000/2022/12/image-5.png 1000w, https://www.azaytek.com/content/images/size/w1600/2022/12/image-5.png 1600w, https://www.azaytek.com/content/images/2022/12/image-5.png 1718w" sizes="(min-width: 1200px) 1200px"><figcaption>LinkedIn API access token &amp; user ID displayed in the console</figcaption></figure><p>I hope that you made it this far, and that things worked for you. The first time I got the access token, I felt like a world champion &#x1F60E;</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.azaytek.com/content/images/2022/12/image-6.png" class="kg-image" alt="How to publish a post to LinkedIn via API - Part 1: How to get LinkedIn API access token" loading="lazy" width="867" height="623" srcset="https://www.azaytek.com/content/images/size/w600/2022/12/image-6.png 600w, https://www.azaytek.com/content/images/2022/12/image-6.png 867w" sizes="(min-width: 720px) 720px"><figcaption>King Chess Piece</figcaption></figure><h3 id="conclusion">Conclusion</h3><p>In this first part of the series, we explained what&apos;s required to communicate with LinkedIn API, shared some basic definitions, explained how things work in very simple English terms and detailed the required steps to get the access token. If something didn&apos;t work for you or you had problem on one of the steps or when running the helper script, I will be happy to help you with that, don&apos;t hesitate to <a href="https://www.azaytek.com/contact/">reach out to me</a>.</p><p>Now we&apos;ve got the access token (and user ID as a bonus), the relatively difficult part is done. The rest should be easy compared to this. Go celebrate, have your break and get back.</p><p>Welcome back! Let&apos;s got to <a href="https://www.azaytek.com/how-to-publish-a-post-to-linkedin-via-api-part-2-post-a-text-to-linkedin-api-using-access-token/">the second part</a>!<br></p>]]></content:encoded></item><item><title><![CDATA[How to publish a post to LinkedIn via API -  A step-by-step guide]]></title><description><![CDATA[Working guide. Learn how to use the LinkedIn API to publish posts on your profile or company page.]]></description><link>https://www.azaytek.com/how-to-publish-to-linkedin-via-api/</link><guid isPermaLink="false">63ac7f769e12d7a0414bad77</guid><category><![CDATA[API]]></category><category><![CDATA[JavaScript]]></category><category><![CDATA[nodejs]]></category><category><![CDATA[automation]]></category><category><![CDATA[linkedin]]></category><dc:creator><![CDATA[Abdelaziz Dabbabi]]></dc:creator><pubDate>Wed, 28 Dec 2022 18:29:52 GMT</pubDate><media:content url="https://www.azaytek.com/content/images/2022/12/linkedin-post-api-1.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://www.azaytek.com/content/images/2022/12/linkedin-post-api-1.jpg" alt="How to publish a post to LinkedIn via API -  A step-by-step guide"><p>Welcome to our step-by-step guide on how to publish a post to <a href="https://www.linkedin.com/">LinkedIn </a>via API.</p><p>LinkedIn is a popular professional networking platform that allows users to connect with others in their industry and share updates about their <a href="https://www.azaytek.com/tag/career/">career </a>and business. One of the ways to share updates on LinkedIn is through publishing posts on your profile or company page. In this article, we will show you how to use the LinkedIn API to publish a post on the platform. </p><p>Whether you are a developer looking to automate your LinkedIn posting or just want to learn more about the <a href="https://developer.linkedin.com/">platform&apos;s API</a>, this guide will provide you with all the necessary information.</p><p>To keep it simple: to share a post to your LinkedIn profile via API: you only need an access token. Simple enough? That&apos;s what I also though. The truth is that the internet is full of outdated, confusing and hard to navigate content. And the API doesn&apos;t make it simpler &#x1F614;</p><p>But.</p><p>Don&apos;t be intimidated by this. By finishing this series, you&apos;ll have a solid understanding of how the LinkedIn OAuth flow works, how to generate your access token, and how to send you text to LinkedIn feed programmatically. Let&apos;s get the job done. &#x270C;&#xFE0F;</p><p>Prerequisites: in addition to having a LinkedIn account, please keep in mind that a good understanding of how the web works (Rest API/Headers/Response..) will make it easy for you. As the examples are in JavaScript/<a href="https://www.azaytek.com/tag/nodejs/">nodejs</a>, being familiar with JavaScript will be very useful.</p><ul><li>Part 1: <a href="https://www.azaytek.com/part-1-how-to-get-linkedin-api-access-token/">How to get LinkedIn API access token</a></li><li>Part 2: How to publish a post via LinkedIn API</li></ul>]]></content:encoded></item><item><title><![CDATA[Common mistakes made by technical recruiters from a job seeker's perspective]]></title><description><![CDATA[Learn about the most common mistakes made by technical recruiters from the perspective of job seekers. Avoid these pitfalls to succeed.]]></description><link>https://www.azaytek.com/common-mistakes-made-by-technical-recruiters-from-a-job-seekers-perspective/</link><guid isPermaLink="false">6205345b9bfa441a3a5abb31</guid><category><![CDATA[career]]></category><category><![CDATA[goals]]></category><category><![CDATA[retrospective]]></category><category><![CDATA[review]]></category><category><![CDATA[Software Engineering]]></category><category><![CDATA[recruitment]]></category><category><![CDATA[interviews]]></category><dc:creator><![CDATA[Abdelaziz Dabbabi]]></dc:creator><pubDate>Mon, 26 Dec 2022 12:50:00 GMT</pubDate><media:content url="https://www.azaytek.com/content/images/2022/12/candidate.webp" medium="image"/><content:encoded><![CDATA[<img src="https://www.azaytek.com/content/images/2022/12/candidate.webp" alt="Common mistakes made by technical recruiters from a job seeker&apos;s perspective"><p></p><h3 id="introduction">Introduction</h3><p>As a job seeker, one of the most frustrating experiences can be dealing with recruiters who make mistakes during the hiring process. While not all recruiters are guilty of these errors, it&apos;s important to be aware of them so you can avoid potential pitfalls and land the job you want.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.azaytek.com/content/images/2022/12/cvs.png" class="kg-image" alt="Common mistakes made by technical recruiters from a job seeker&apos;s perspective" loading="lazy" width="960" height="540" srcset="https://www.azaytek.com/content/images/size/w600/2022/12/cvs.png 600w, https://www.azaytek.com/content/images/2022/12/cvs.png 960w" sizes="(min-width: 720px) 720px"><figcaption>candidates CVs</figcaption></figure><ul><li>Not thoroughly reviewing your resume: </li></ul><p>A recruiter&apos;s job is to match your skills and experience with open positions at their company. If they haven&apos;t taken the time to thoroughly review your resume, they may not understand your background and qualifications, and as a result, may not be able to effectively advocate for you during the hiring process.<br></p><ul><li>Ineffective and unclear communication: </li></ul><p>communication is essential in any professional relationship, and the relationship between a candidate and a recruiter is no exception. When a recruiter is not providing clear and timely updates about the status of a candidate&apos;s job application, it can be frustrating and confusing for the candidate. It can make it difficult for the candidate to plan their next steps and may even lead to a lack of trust in the recruiter.<br><br>Effective communication is crucial in the job search process, as it helps to ensure that both the candidate and the recruiter are on the same page. It allows the candidate to have a better understanding of where they stand in the process and what they need to do next. On the other hand, a lack of communication can lead to misunderstandings and miscommunications, which can ultimately hinder the success of the job search. <br><br>Therefore, it is important for recruiters to make an effort to provide clear and timely updates to candidates throughout the recruitment process.<br></p><ul><li>Not understanding the company&apos;s hiring process: </li></ul><p>Every company has a different hiring process, and it&apos;s the recruiter&apos;s job to understand and navigate this process on your behalf. If they don&apos;t have a thorough understanding of the steps involved, it can lead to delays and missed opportunities.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.azaytek.com/content/images/2022/12/hiring_process.webp" class="kg-image" alt="Common mistakes made by technical recruiters from a job seeker&apos;s perspective" loading="lazy" width="1600" height="824" srcset="https://www.azaytek.com/content/images/size/w600/2022/12/hiring_process.webp 600w, https://www.azaytek.com/content/images/size/w1000/2022/12/hiring_process.webp 1000w, https://www.azaytek.com/content/images/2022/12/hiring_process.webp 1600w" sizes="(min-width: 720px) 720px"><figcaption>recruiter explaining the hiring process to the candidate</figcaption></figure><ul><li>Inaccurate representation of a candidate&apos;s qualifications: </li></ul><p>It is important for recruiters to accurately represent a job candidate&apos;s qualifications to potential employers in order to give the candidate the best chance of getting the job. If a recruiter does not properly represent a candidate&apos;s skills and experience, it can lead to misunderstandings about the candidate&apos;s capabilities and fit for the role. <br><br>This can result in missed opportunities for the candidate, as they may not be considered for positions they are qualified for or may not be seen as the best fit for the role. <br><br>It is important for recruiters to thoroughly review a candidate&apos;s resume and discuss their qualifications with them in order to accurately represent their skills and experience to potential employers. This can help to ensure that the candidate is considered for appropriate positions and is seen as a strong fit for the role.<br></p><ul><li>Not providing helpful feedback: </li></ul><p>Receiving feedback during the job search process can be incredibly valuable. If a recruiter is not providing constructive feedback on your resume or interviewing skills, it can make it difficult for you to improve and ultimately land the job you want.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.azaytek.com/content/images/2022/12/recruiter.jpeg" class="kg-image" alt="Common mistakes made by technical recruiters from a job seeker&apos;s perspective" loading="lazy" width="1125" height="750" srcset="https://www.azaytek.com/content/images/size/w600/2022/12/recruiter.jpeg 600w, https://www.azaytek.com/content/images/size/w1000/2022/12/recruiter.jpeg 1000w, https://www.azaytek.com/content/images/2022/12/recruiter.jpeg 1125w" sizes="(min-width: 720px) 720px"><figcaption>Recruiters reviewing candidate&apos;s CV</figcaption></figure><ul><li>Not following up with you: </li></ul><p>After a job interview, it&apos;s the recruiter&apos;s responsibility to follow up with you to ensure that your application is being considered. If they fail to do this, it can lead to delays or missed opportunities.<br></p><ul><li>Not properly negotiating salary and benefits on your behalf:</li></ul><p>Negotiating salary and benefits can be a challenging and stressful process for many job seekers, especially if they are inexperienced or lack confidence in their negotiation skills. This is where a recruiter can be extremely helpful, as they often have a wealth of knowledge and experience in negotiating salaries and benefits on behalf of their clients. <br><br>However, if a recruiter is not negotiating salary on your behalf, you could potentially miss out on a higher salary or better benefits package. This can have a significant impact on your overall financial well-being and career advancement. <br><br>It&apos;s important to remember that recruiters are working with both: potential employer and the job seeker. They should be advocating for your best interests, including securing the best possible salary and benefits package. If they are not doing this, it may be worth considering whether or not to work with that recruiter or finding another one who will better advocate for you.<br></p><ul><li>Not providing advice on how to prepare for interviews: </li></ul><p>Preparing for a job interview can be stressful, and a good recruiter will provide guidance and advice on how to succeed. If they are not offering this support, it can make the interviewing process more difficult and increase your chances of missing out on the job.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.azaytek.com/content/images/2022/12/candidate_light.png" class="kg-image" alt="Common mistakes made by technical recruiters from a job seeker&apos;s perspective" loading="lazy" width="960" height="639" srcset="https://www.azaytek.com/content/images/size/w600/2022/12/candidate_light.png 600w, https://www.azaytek.com/content/images/2022/12/candidate_light.png 960w" sizes="(min-width: 720px) 720px"><figcaption>selected candidate after interviews</figcaption></figure><ul><li>Not staying in touch after the hiring process: </li></ul><p>A good recruiter will maintain a relationship with you after you&apos;ve been hired. If they disappear once you&apos;ve accepted the job, it can leave you feeling abandoned and make it difficult to get help with any issues or challenges you may encounter in your new role.<br></p><ul><li>Not being transparent about potential conflicts of interest: </li></ul><p>Some recruiters work on a contingency basis, meaning they only get paid if they successfully place a candidate in a job. This can create a conflict of interest, as the recruiter may be more focused on making a placement than on finding the best fit for the candidate. It&apos;s important for recruiters to be transparent about any potential conflicts of interest, so you can make an informed decision about whether to work with them.</p><h3 id="conclusion">Conclusion</h3><p>In conclusion, there are many mistakes that recruiters can make during the hiring process. As a job seeker, it&apos;s important to be aware of these potential pitfalls and to choose a recruiter who is knowledgeable, communicative, and transparent. This will help ensure a smooth and successful job search.</p>]]></content:encoded></item><item><title><![CDATA[All you need to know about ChatGPT project]]></title><description><![CDATA[ChatGPT: The new AI tool for improving chatbot conversation and user engagement.
All you need to know about openIA's NLP model]]></description><link>https://www.azaytek.com/all-what-you-need-to-know-about-chatgpt-project/</link><guid isPermaLink="false">63932d979e12d7a0414bab9a</guid><category><![CDATA[artificial intelligence]]></category><category><![CDATA[2022]]></category><category><![CDATA[review]]></category><category><![CDATA[Software Engineering]]></category><category><![CDATA[chatGPT]]></category><category><![CDATA[openia]]></category><dc:creator><![CDATA[Abdelaziz Dabbabi]]></dc:creator><pubDate>Fri, 09 Dec 2022 14:31:16 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1655720840699-67e72c0909d1?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDJ8fGFpfGVufDB8fHx8MTY3MDU5NjAzOA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1655720840699-67e72c0909d1?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDJ8fGFpfGVufDB8fHx8MTY3MDU5NjAzOA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" alt="All you need to know about ChatGPT project"><p><a href="https://chat.openai.com/chat">ChatGPT </a>is a cutting-edge natural language processing (NLP) model developed by <a href="https://openai.com/">OpenAI</a>. It is a variant of the GPT-3 model, which is known for its ability to generate human-like text. ChatGPT has been specifically designed for conversational applications, such as chatbots and virtual assistants.</p><p>One of the key features of ChatGPT is its ability to generate responses that are both appropriate and engaging. This is achieved through the use of a large dataset of real human conversations, which the model uses to learn the patterns and nuances of human language. This allows ChatGPT to produce responses that are more natural and less robotic than those generated by other NLP models.</p><p>Another advantage of ChatGPT is its ability to handle a wide range of topics. The model has been trained on a diverse dataset that covers a wide range of subjects, including news, sports, politics, and entertainment. This allows it to respond intelligently to a wide variety of user queries, making it well-suited for applications that require a broad knowledge base.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://images.unsplash.com/photo-1620712943543-bcc4688e7485?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDZ8fGFpfGVufDB8fHx8MTY3MDU5NjAzOA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" class="kg-image" alt="All you need to know about ChatGPT project" loading="lazy" width="2765" height="3456" srcset="https://images.unsplash.com/photo-1620712943543-bcc4688e7485?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDZ8fGFpfGVufDB8fHx8MTY3MDU5NjAzOA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=600 600w, https://images.unsplash.com/photo-1620712943543-bcc4688e7485?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDZ8fGFpfGVufDB8fHx8MTY3MDU5NjAzOA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=1000 1000w, https://images.unsplash.com/photo-1620712943543-bcc4688e7485?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDZ8fGFpfGVufDB8fHx8MTY3MDU5NjAzOA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=1600 1600w, https://images.unsplash.com/photo-1620712943543-bcc4688e7485?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDZ8fGFpfGVufDB8fHx8MTY3MDU5NjAzOA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2400 2400w" sizes="(min-width: 720px) 720px"><figcaption>Photo by <a href="https://unsplash.com/@santesson89?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit">Andrea De Santis</a> / <a href="https://unsplash.com/?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit">Unsplash</a></figcaption></figure><p>One of the most exciting potential uses for ChatGPT is in the development of chatbots and virtual assistants. These applications can benefit greatly from the model&apos;s ability to generate human-like responses, as it allows them to provide a more engaging and satisfying user experience. ChatGPT can also be used to improve the performance of existing chatbots and virtual assistants, by providing them with more natural and engaging responses.</p><p>Another potential use for ChatGPT is in the development of language translation applications. The model&apos;s ability to generate appropriate and natural responses can be leveraged to improve the quality of machine-generated translations. This could potentially lead to the development of more accurate and natural-sounding translations, which would be a major step forward in the field of NLP.</p><p>In addition to its potential applications in chatbots and language translation, ChatGPT could also be used to improve the performance of other NLP applications, such as text summarization and sentiment analysis. The model&apos;s ability to generate human-like text can be leveraged to produce more accurate and natural-sounding summaries and sentiments, which could have a wide range of applications in fields such as journalism, customer service, and market research.</p><p>Overall, ChatGPT is a powerful and versatile NLP model that has the potential to revolutionize the way we interact with machines. Its ability to generate human-like responses and handle a wide range of topics makes it well-suited for a variety of applications, from chatbots and virtual assistants to language translation and text summarization. As the field of NLP continues to evolve, ChatGPT is sure to play a major role in shaping the future of artificial intelligence.</p>]]></content:encoded></item><item><title><![CDATA[It's not technical debt, just a bad code]]></title><description><![CDATA[This article explains what and what is not a technical debt by presenting a financial debt metaphor and what should you do to avoid its impacts.]]></description><link>https://www.azaytek.com/its-not-technical-debt-just-a-bad-code/</link><guid isPermaLink="false">6264960120977105c707071d</guid><category><![CDATA[Productivity]]></category><category><![CDATA[Software Engineering]]></category><category><![CDATA[review]]></category><category><![CDATA[career]]></category><dc:creator><![CDATA[Abdelaziz Dabbabi]]></dc:creator><pubDate>Tue, 26 Apr 2022 00:00:00 GMT</pubDate><media:content url="https://www.azaytek.com/content/images/2022/04/dette.PNG" medium="image"/><content:encoded><![CDATA[<img src="https://www.azaytek.com/content/images/2022/04/dette.PNG" alt="It&apos;s not technical debt, just a bad code"><p>In recent years, there has been a lot of talk in the development community about technical debt. The problem is that it&apos;s a term that is too often used as an easy excuse to justify bad work. This article what and what is not a technical, debt, and what should you do about it.</p><h2 id="what-is-technical-debt">What is technical debt?</h2><p>The term technical debt was made by <a href="https://en.wikipedia.org/wiki/Ward_Cunningham">Ward Cunningham</a> to portray the specialized compromises that people involved with software engineering must make to meet due dates and client desires. In brief, problematic short-term plans may have to be be pplied since the program does not permit for long-term plans. As a simple illustration, the beginning design of your site may ought to be <a href="https://en.wikipedia.org/wiki/Frame_(networking)#:~:text=A%20frame%20is%20a%20digital,structure%20supporting%20time%2Ddivision%20multiplexing.">frame</a>-based since you are running of time to properly setup an <a href="https://en.wikipedia.org/wiki/Ajax_(programming)">AJAX </a>system.</p><h2 id="financial-debt-a-metaphor">Financial debt, a metaphor</h2><p>When you take out one or more bank loans, you go into debt. If we take out too many, we are in over-indebtedness and this becomes dangerous for our finances. In any case, these credits must be repaid, generally with interests. This whole system is clear from the start, there are no surprises.</p><p>&#x1F4DD;The technical debt, by analogy, is the taking of a technical shortcut, being aware that one day it will have to be paid back. If you take too many shortcuts, it becomes dangerous for the code base. So far we can easily follow the analogy.</p><h3 id="do-we-have-a-choice">Do we have a choice?</h3><p>In both cases, this debt is not unhealthy. Just as you can take out a loan to make the right expenditure at the right time, you can take out technical debt to deliver a feature with the right Time To Market. It&apos;s even a good thing, as this decision can generate cash more quickly and offer the possibility of continuing to evolve by paying the interest on this technical debt.</p><p>The important concept here is choice. Just as you can&apos;t get into financial debt without signing a credit agreement, you can&apos;t accidentally get into technical debt either. You have to want it.</p><p>Without ever taking out financial credit, you can find yourself in the red at the bank. This is not indebtedness but a bad management of one&apos;s money for various reasons, whether personal (badly distributed expenses, ...) or external (insufficient income, ...).</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.azaytek.com/content/images/2022/04/istockphoto-959875002-612x612.jpg" class="kg-image" alt="It&apos;s not technical debt, just a bad code" loading="lazy" width="612" height="490" srcset="https://www.azaytek.com/content/images/size/w600/2022/04/istockphoto-959875002-612x612.jpg 600w, https://www.azaytek.com/content/images/2022/04/istockphoto-959875002-612x612.jpg 612w"><figcaption>technical debt impacts</figcaption></figure><p>In the same way, a code base can be rotten by a bad management, either personal (lack of competences, motivation, sloppy work...) or external (bad quality process, harmful management, unrealistic deadlines...) &#x1F624;</p><p>This is often the case, and communication problems are one of the first causes of techincal debt, even before technical incompetence.</p><p>Like financial management, code management and the environment in which it is produced are things that need attention and time. But not giving yourself the means to do things right (or giving those means to the teams) is not technical debt, it&apos;s just producing bad code.</p><h2 id="properly-paying-your-technical-debts-interest">Properly paying your technical debt&apos;s interest</h2><p>Technical debt may be essential, but if you want to be able to pay it later on, it should better be clean! If you are going to implement a frontend, and instead of using AJAX, you decided to opt for a frame. At that point make beyond any doubt that the developer is a craftmanship. Make beyond any doubt the plan is well adjusted, and the code is clean. </p><p>If that frame gets poorly implemented, you&#x2019;ll never be able to supplant it with an AJAX system. The mess will obstruct your advance forever. &#x1F622;&#x1F622;</p><p></p><p><strong>Conclusion</strong></p><p>Due to new technologies and changing approaches in software development, technical debts cannot be entirely excluded. They are even tolerated if they allow the rapid and regular release of programs and applications without tying teams to projects on a long-term basis. However, there are preventive measures that can be taken to avoid or reduce the formation and growth of technical debt:</p><ul><li>Use standardized code rework and quality management processes</li><li>Use up-to-date error detection and analysis tools</li><li>Maintain technical knowledge through continuous training or define team composition according to qualifications</li><li>Design the code in a clear way by dividing it into classes and using understandable methods and write the code in a way that is readable for new programmers joining the project or for external programmers</li><li>Assign clear responsibilities and allocating tasks between teams to avoid duplication, redundancy and counterproductive work steps</li><li>Keep the IT architecture up to date through constant monitoring, analysis and quality control.</li></ul>]]></content:encoded></item><item><title><![CDATA[The impact of AI on DevOps]]></title><description><![CDATA[The terms DevOps and AI have become almost indistinguishable today. Discover the artificial intelligence's impacts on DevOp in this article. ]]></description><link>https://www.azaytek.com/ai-impacts-on-devops/</link><guid isPermaLink="false">626489b120977105c70706bc</guid><category><![CDATA[DevOps]]></category><category><![CDATA[automation]]></category><category><![CDATA[Cloud]]></category><category><![CDATA[Software Engineering]]></category><dc:creator><![CDATA[Abdelaziz Dabbabi]]></dc:creator><pubDate>Sun, 24 Apr 2022 23:00:00 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1640552435388-a54879e72b28?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDl8fExJTlVYfGVufDB8fHx8MTY1MDc1NjU1Mw&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1640552435388-a54879e72b28?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDl8fExJTlVYfGVufDB8fHx8MTY1MDc1NjU1Mw&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" alt="The impact of AI on DevOps"><p><strong>Artificial intelligence is now omnipresent in IT</strong>. Its annual growth rate is expected to reach 17.5% until 2024. <strong>Machine learning</strong> (ML),<strong> test automation</strong> and workflows have completely transformed development methods and tools, starting with the DevOps approach. <strong>The terms DevOps and AI have become almost indistinguishable today</strong>. For the better? Not so sure... What is sure is that <strong>artificial intelligence has many impacts on DevOps</strong>, discover them in this article.</p><h2 id="ai-as-a-support-for-devops">AI as a support for DevOps</h2><h3 id="common-goals">Common goals</h3><p>The reason DevOps and AI are intrinsically linked is because they share the same goals. DevOps is an approach focused on productivity. The term represents the union of developers (dev&apos;) and operational staff (ops&apos;) in order to design, develop, release and modify services and software needed by the company more quickly.<br>AI is a set of technologies that can be integrated into an enterprise to accelerate and automate production cycles. With AI, DevOps teams can test, code, release and monitor software even faster and more efficiently.</p><p>AI will therefore facilitate the DevOps approach throughout the software or application lifecycle.</p><h3 id="automated-code-reviews-and-tests-thanks-to-ai">Automated code reviews and tests thanks to AI</h3><p>The major contribution of AI in the DevOps approach concerns the development and testing phases. Intelligent&quot; technologies powered by AI and machine learning can learn repositories with millions of lines of code. They are then able to understand the purpose of a program, evaluate changes made by developers and even offer suggestions. AI tools can also perform automated code reviews (based, for example, on machine learning algorithms). These reviews can include:</p><ul><li>semantic analysis ;</li><li>a detection of vulnerabilities ;</li><li>code quality auditing;</li><li>performance tests.</li></ul><p>When it comes to testing, AI will simplify acceptance with :</p><ul><li>autonomous generation of data sets;</li><li>optimization of cases, especially for non-regression tests;</li><li>reduction of execution time;</li><li>creation of predictive models.</li></ul><p>The major contribution of AI in these steps of the workflow is to lighten the workload and the involvement of the developer and tester for the current tasks.</p><p>This allows them to focus on their core business.</p><h3 id="better-resource-and-performance-management">Better resource and performance management</h3><p>Outside the testing phase, artificial intelligence can automate routine and repetitive tasks throughout the DevOps lifecycle, including requirements analysis and solution design. With deep learning, for example, computers try to look at problems from different angles, just like a human brain, to identify areas for resolution. Does this sound like science fiction? Not really, neural networks are already well established in IT. The most striking example is probably that of autonomous cars...</p><p>For programming, this decision-making capacity of AI will be especially useful for resource management. One of the fundamental principles of the DevOps approach is to test and collect results at each step of the workflow. Performance monitoring tools are often used to collect this feedback. By linking them to ML, these tools become capable of collecting information to then prevent problems from occurring or make necessary adjustments. Thanks to the computational power of AI, data access times and performance are also more accurate and are taken into account during execution cycles.</p><p>Because of all its advantages, AI is commonly used in DevOps. However, some organizations are already starting to worry about the excesses of AI and in particular the risk of over-automation.</p><h2 id="artificial-intelligence-a-danger-for-devops"><strong>Artificial intelligence, a danger for DevOps?</strong></h2><h3 id="a-risk-of-over-automation-of-processes">A risk of over-automation of processes</h3><p>Automated systems driven by powerful computers, multi-channel data and intelligent algorithms have invaded the IT sector and many other areas. The world of work and today&apos;s society are naturally evolving with chatbots, intelligent assistants, autonomous cars, etc.</p><p>This evolution is supported by the productivity and efficiency gains that automation brings. But it also brings risks.</p><p>According to the business journal Forbes, in its report &quot;Artificial Intelligence: Key Challenges and Opportunities,&quot; the implementation of AI solutions leads to:</p><ul><li>data governance and privacy issues ;</li><li>Limitations to automated AI decision-making. For DevOps, AI-generated unit tests cannot yet guess the intended functionality of the code, so they may break or contradict functional tests;</li><li>Security risks. The power of AI is also of interest to cybercriminals. Hackers can attempt to manipulate the algorithms into making bad decisions or corrupt the models and their predictions with data poisoning.</li></ul><h3 id="a-disappearance-of-devops-functions-with-ai">A disappearance of DevOps functions with AI</h3><p>AI and ML are continuously advancing. Some technologies are already able to update existing code with new processes, automatically resolve bugs and conflicts and optimize algorithms.</p><p>According to the latest GitLab survey, 75% of companies are using or have plans to use AI, ML and automation for their testing and code reviews. 84% of them say they are releasing their applications faster than before.</p><p>However, this acceleration also remains strongly linked to DevOps, as only 10% of the speed gains would be related to the addition of automated tests. On the other hand, 57% of IT developers consider that they publish their code twice as fast thanks to the DevOps approach. The process of turning an idea and business logic into an algorithm and then code still requires human ingenuity.</p><p>It is therefore highly unlikely that AI and ML will replace DevOps. What is certain, however, is that the interdependence between these terms will increase further. DevOps will be able to drive AI forward, and AI is still likely to completely reshape this approach in the coming years.</p><p></p><p><em>Source &amp; useful links:</em></p><p>Forbes report &quot;Artificial Intelligence: Key Challenges and Opportunities&quot;: <a href="https://www.forbesindia.com/blog/technology/artificial-intelligence-key-challenges-and-opportunities/">https://www.forbesindia.com/blog/technology/artificial-intelligence-key-challenges-and-opportunities/</a></p><p>GitLab survey on DevOps and DevSecOps: <a href="https://about.gitlab.com/developer-survey/">https://about.gitlab.com/developer-survey/</a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Easy and very clever way to share large files with others]]></title><description><![CDATA[A detailed guide on how to -easily and cleverly- send & share files with others, without uploading anything to the internet]]></description><link>https://www.azaytek.com/easy-clever-way-to-share-a-large-file-with-others-internet/</link><guid isPermaLink="false">625a27e87cf3004892190d5c</guid><category><![CDATA[Productivity]]></category><category><![CDATA[Software Engineering]]></category><category><![CDATA[Tutorials]]></category><category><![CDATA[Linux]]></category><dc:creator><![CDATA[Abdelaziz Dabbabi]]></dc:creator><pubDate>Thu, 21 Apr 2022 22:30:00 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1569235186275-626cb53b83ce?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDJ8fGZpbGVzfGVufDB8fHx8MTY1MDMyODU1Ng&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1569235186275-626cb53b83ce?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDJ8fGZpbGVzfGVufDB8fHx8MTY1MDMyODU1Ng&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" alt="Easy and very clever way to share large files with others"><p></p><p>Documents and files sharing are very frequent nowadays. We share &amp; transfer documents all day long, and this behaviour intensified during the confinement&apos;s period.</p><p>Sending an email attachment of ordinary size is a no-brainer. But what if your message is too large and therefore can&apos;t be transferred via email? What if you don&apos;t want to upload anything to the internet and you only want is to give your a file and tell him, &quot;Hey, here is your file &#x1F604; &quot;.</p><p>The article will answer the above question in a very easy, clever and secure way to share files with others, all without uploading anything to the internet. Let&apos;s get the hands dirty! </p><h2 id="conceptual-explanation">Conceptual explanation</h2><p>The solution we are going to present in the next section is based on a very simple, yet clever principle: instead of uploading the file(s) to internet (whether via<a href="https://www.google.com/drive/"> google drive</a>, <a href="https://wetransfer.com/">weTransfer</a>, <a href="https://easyupload.io/">easyupload.io</a>, <a href="https://www.dropbox.com/">dropbox</a>, or email clients like<a href="https://www.google.com/gmail/"> gmail</a>, <a href="https://outlook.live.com/owa/">outlook</a> etc) we are going to expose the file(s) directly from our own computer, and we will send a simple url to our recipient (security is optional but is highly recommended and will be explained in the following section, no rush). </p><p>Hence, this will help us avoid the upload step completely (and we all know that generally speaking, upload speed is always inferior to download&apos;s one).</p><h2 id="technical-solution">Technical solution</h2><h3 id="definition">Definition</h3><p>The solution is based on a command line tool called<a href="https://ngrok.com/"> ngrok</a>, that&apos;s very easy to install &amp; to set up and it&apos;s compatible to all operating systems (Linux, Windows &amp; MacOs).</p><div class="kg-card kg-toggle-card" data-kg-toggle-state="close"><div class="kg-toggle-heading"><h4 class="kg-toggle-heading-text">Geeky note &#x1F4A1;</h4><button class="kg-toggle-card-icon"><svg id="Regular" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24"><path class="cls-1" d="M23.25,7.311,12.53,18.03a.749.749,0,0,1-1.06,0L.75,7.311"/></svg></button></div><div class="kg-toggle-content"><p>ngrok is a</p><blockquote>a globally distributed reverse proxy fronting your web services running in any cloud or private network, or your machine.</blockquote><p>For more documentation, here is he official page <a href="https://ngrok.com/docs">https://ngrok.com/docs</a><br></p></div></div><h2 id="practical-setup-examples">Practical setup &amp; examples</h2><h3 id="setup">Setup</h3><p>To use ngrok to serve your file(s) to your recipients, you need to install and properly configure it. This a one-time thing to do on your computer:</p><ol><li><strong>Installation:</strong> go to download page <a href="https://ngrok.com/download">https://ngrok.com/download</a> , choose your operating system and follow the instructions on how to do this. It&apos;s a straightforward process.</li></ol><p>2. <strong>Configuration: </strong>once installed, you need to create an account<a href="https://dashboard.ngrok.com/signup"> https://dashboard.ngrok.com/signup</a> (you are free to sign up using google, github or choose to create a classic account using an email &amp; password) and then, you need to setup the authentication in your computer. This is done by copy/pasting an already prepared authentication command shown in the dashboard<a href="https://dashboard.ngrok.com/get-started/setup"> https://dashboard.ngrok.com/get-started/setup</a>.</p><p>As an example: here is my already prepared authentication command:</p><figure class="kg-card kg-image-card"><img src="https://www.azaytek.com/content/images/2022/04/image-3.png" class="kg-image" alt="Easy and very clever way to share large files with others" loading="lazy" width="1163" height="614" srcset="https://www.azaytek.com/content/images/size/w600/2022/04/image-3.png 600w, https://www.azaytek.com/content/images/size/w1000/2022/04/image-3.png 1000w, https://www.azaytek.com/content/images/2022/04/image-3.png 1163w" sizes="(min-width: 720px) 720px"></figure><p>Here, here is the command as a plain text:</p><!--kg-card-begin: html--><code>ngrok config add-authtoken YOUR_SECRET_IDENTIFIER_HERE</code><!--kg-card-end: html--><p>Now, once the command is copied, we need to paste it somewhere. This somewhere is the command line of your computer. If you are a Linux/MacOS user, wether you&apos;re a <a href="https://www.azaytek.com/starting-linux-terminal-cli-beginner/">beginner and starting with Linux terminal</a>, or someone who&apos;s familiar with it, I assume this is a very trivial thing to do; you should open a terminal tab, paste the command and click enter. </p><p>For Windows users, I assume that you are not very familiar with windows powershell. So what you need to do is:</p><ol><li>Run a ngrok session from the folder in which you previously extracted it. For example; if ngrok was extracted to your Downloads folder, you have to hold down the <strong>Shift key</strong>, and <strong>right-click</strong> on the folder&apos;s name. You will get new options. The one we are looking for is the &quot;<strong>Open command window here</strong>&quot;:</li></ol><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.azaytek.com/content/images/2022/04/image-7.png" class="kg-image" alt="Easy and very clever way to share large files with others" loading="lazy" width="611" height="312" srcset="https://www.azaytek.com/content/images/size/w600/2022/04/image-7.png 600w, https://www.azaytek.com/content/images/2022/04/image-7.png 611w"><figcaption>Running powershell session windows</figcaption></figure><p>2. You will get this black screen (or a similar blue one):</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.azaytek.com/content/images/2022/04/image-5.png" class="kg-image" alt="Easy and very clever way to share large files with others" loading="lazy" width="976" height="453" srcset="https://www.azaytek.com/content/images/size/w600/2022/04/image-5.png 600w, https://www.azaytek.com/content/images/2022/04/image-5.png 976w" sizes="(min-width: 720px) 720px"><figcaption>Windows powershell interface</figcaption></figure><p>4. add &quot;<strong>.\</strong>&quot; to the beginning of the previously copied command and past the result:</p><!--kg-card-begin: html--><code>.\ngrok config add-authtoken YOUR_SECRET_IDENTIFIER_HERE</code><!--kg-card-end: html--><p>5. Sumbit (click Enter)</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.azaytek.com/content/images/2022/04/image-8.png" class="kg-image" alt="Easy and very clever way to share large files with others" loading="lazy" width="1202" height="84" srcset="https://www.azaytek.com/content/images/size/w600/2022/04/image-8.png 600w, https://www.azaytek.com/content/images/size/w1000/2022/04/image-8.png 1000w, https://www.azaytek.com/content/images/2022/04/image-8.png 1202w" sizes="(min-width: 720px) 720px"><figcaption>Configuring ngrok on Windows powershell</figcaption></figure><p>Now, if you followed the previous steps, you should have a success message, similar to: <em>saved to configuration file .....</em></p><p>Now, you should have a working ngrok setup. The previous steps are only to be executed when you&apos;re just installing it. Now, the good part is here. Let&apos;s share our file(s)!</p><h3 id="file-sharing">File sharing</h3><p>To share files, you will create a folder named &quot;Shared&quot;. This folder would contain the files that you want to share with your recipients. </p><p>Once the folder is created and there are some files in it, you will use the following command, and only replace the PATH_TO_SHARED_FOLDER with your respective one. The basic command for this is</p><!--kg-card-begin: html--><code>.\ngrok http file://PATH_TO_SHARED_FOLDER</code><!--kg-card-end: html--><p>For example, let&apos;s suppose that we have a folder named &#x201C;<strong>documents</strong>&#x201D; in your desktop. This folder contains a file named &#x201C;<strong>orders.csv</strong>&#x201D;.</p><p> To expose <strong>documents&apos;s </strong>this folder content, you need to grab the absolute path to your shared folder and run a command depending on your operating system:</p><div class="kg-card kg-toggle-card" data-kg-toggle-state="close"><div class="kg-toggle-heading"><h4 class="kg-toggle-heading-text">Linux/MacOS example</h4><button class="kg-toggle-card-icon"><svg id="Regular" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24"><path class="cls-1" d="M23.25,7.311,12.53,18.03a.749.749,0,0,1-1.06,0L.75,7.311"/></svg></button></div><div class="kg-toggle-content"><p>you need to sue the aboslute folder&apos;s path, starting from &quot;/&quot;. For example, if the documents folder is in your user&apos;s john home directory:</p><p>.\ngrok http file:///home/john/documents</p></div></div><div class="kg-card kg-toggle-card" data-kg-toggle-state="close"><div class="kg-toggle-heading"><h4 class="kg-toggle-heading-text">Windows example</h4><button class="kg-toggle-card-icon"><svg id="Regular" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24"><path class="cls-1" d="M23.25,7.311,12.53,18.03a.749.749,0,0,1-1.06,0L.75,7.311"/></svg></button></div><div class="kg-toggle-content"><p>you need to sue the aboslute folder&apos;s path, starting from &quot;C&quot;. For example, the documents folder is in your user&apos;s john home directory:</p><p>.\ngrok http file:///C:\Users\John\documents</p><p>To get your shared absolute path, please refer to this <a href="https://www.sony.com/electronics/support/articles/00015251">aricle&#xA0;</a></p></div></div><p>Once you run the command, you will get a screen similar to this:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.azaytek.com/content/images/2022/04/image-12.png" class="kg-image" alt="Easy and very clever way to share large files with others" loading="lazy" width="1150" height="314" srcset="https://www.azaytek.com/content/images/size/w600/2022/04/image-12.png 600w, https://www.azaytek.com/content/images/size/w1000/2022/04/image-12.png 1000w, https://www.azaytek.com/content/images/2022/04/image-12.png 1150w" sizes="(min-width: 720px) 720px"><figcaption>ngrok tunnel example</figcaption></figure><p>What is ngrok telling us, is -basically- &quot;hi, user XXX, I exposed your local folder to a public internet url, here is it <a href="https://bf6c-41-228-231-221.ngrok.io">https://bf6c-41-228-231-221.ngrok.io</a>&quot; :)</p><p>If you try to access this link using your browser, you will get this page, fromwhch you can simply click and download the orders.csv file. Bingo! &#x2728;&#x2728;</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.azaytek.com/content/images/2022/04/image-10.png" class="kg-image" alt="Easy and very clever way to share large files with others" loading="lazy" width="1309" height="640" srcset="https://www.azaytek.com/content/images/size/w600/2022/04/image-10.png 600w, https://www.azaytek.com/content/images/size/w1000/2022/04/image-10.png 1000w, https://www.azaytek.com/content/images/2022/04/image-10.png 1309w" sizes="(min-width: 720px) 720px"><figcaption>ngrok tunnel visited from browser, showing folder&apos;s content</figcaption></figure><h3 id="securing-our-shared-folder">Securing our shared folder</h3><p>You must be wondering: how are you going to secure the file and only provide the recipients the permission to access it? Absolutely legit! For this, we will add a user &amp; password protection to access our shared folder. </p><p>This is simply done by changing the previous command, and adding some secure parameters, like below: (in green)</p><!--kg-card-begin: html-->            <code>.\ngrok http <span style="color:green;font-weight:bold;">--basic-auth=&quot;user:password&quot;</span> file://PATH_TO_SHARED_FOLDER</code><!--kg-card-end: html--><p>This way when you execute this command, and share the public url that you get to any user, no one would be able to authenticate to see your folder&apos;s content only with the user &amp; password that you set up. They will see this:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.azaytek.com/content/images/2022/04/image-11.png" class="kg-image" alt="Easy and very clever way to share large files with others" loading="lazy" width="327" height="240"><figcaption>secured ngrok folder</figcaption></figure><p>so what you need to do is send the public url along with the authentication parameters (user &amp; password) to your recipients. That&apos;s it.</p><p>The sad news is that the securing mechanism was free, but now it&apos;s a paid feature ($25 per month). But regardless, you get the point.</p><h3 id="%F0%9F%93%9D-tips-and-helpful-notes">&#x1F4DD; Tips and helpful notes:</h3><ol><li>To exit ngrok and stop the tunnel, click the &quot;q&quot; button</li><li>2. Your tunnel must be up so recipients could finish the file&apos;s download</li><li>In the free plan, everytime you restart ngrok, you will get a randomly generated url. A custom or static url is a premium feature.</li></ol><h2 id="conclusion">Conclusion</h2><p>In this article, I shared with you a very simple and clever way to share files with others, a process that doesn&apos;t involve an uploading step. The length of this post might make the process look complicated, but the truth is that it&apos;s not, as I tried to describe all the nitty-gritty things with an example.</p><p>I hope that you found this helpful. Your feedback is highly appreciated and I&apos;m here if there is anything that needs further explanation. Happy Sharing! &#x2764;&#xFE0F;</p><p></p>]]></content:encoded></item><item><title><![CDATA[Starting with Linux terminal as a beginner, a personal story.]]></title><description><![CDATA[This is a personal retrospective that should give you enough motivation to start using Linux terminal & CLI in your software development journey.]]></description><link>https://www.azaytek.com/starting-linux-terminal-cli-beginner/</link><guid isPermaLink="false">6205345b9bfa441a3a5abb35</guid><category><![CDATA[Linux]]></category><category><![CDATA[automation]]></category><category><![CDATA[retrospective]]></category><category><![CDATA[Productivity]]></category><dc:creator><![CDATA[Abdelaziz Dabbabi]]></dc:creator><pubDate>Mon, 18 Apr 2022 22:25:00 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1629654297299-c8506221ca97?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDN8fGxpbnV4JTIwdGVybWluYWx8ZW58MHx8fHwxNjUwMjM1NzIy&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1629654297299-c8506221ca97?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDN8fGxpbnV4JTIwdGVybWluYWx8ZW58MHx8fHwxNjUwMjM1NzIy&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" alt="Starting with Linux terminal as a beginner, a personal story."><p>So you ended up here. Either you are someone who is just figuring his first steps in the IT world, or you are someone who is just curious about the black screens actors in movies and TV shows use (hey Mr Robot &#x2764;&#xFE0F;), this article is for you. </p><p>I won&apos;t go technically deep over here, but I will just show why the command line is still a must have skill in a constantly changing technologies ecosystems by writing about my real world experience and how I evolved from someone who gets extremely happy using the <a href="https://en.wikipedia.org/wiki/Whoami"><strong>whoami</strong> </a>command to someone who manages Linux production servers for living.</p><h3 id="the-beginning">The beginning</h3><p>Like almost all of you, I had htmlgasme when I developed my first-ever <a href="https://jonrognerud.com/what-is-an-html-page-for-beginners/">html page</a>. Well, not that impressive when I look at it now but that page reminds me of the progress I have made so far. Once I made it to the college, the struggle had begun. We were served a lot of theoretical knowledge including PHP, Java, Data structures, algorithmics, relational databases and MySql, etc. The courses and exams we had were on paper.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.azaytek.com/content/images/2022/04/pexels-photo-1010496.webp" class="kg-image" alt="Starting with Linux terminal as a beginner, a personal story." loading="lazy" width="2000" height="1333" srcset="https://www.azaytek.com/content/images/size/w600/2022/04/pexels-photo-1010496.webp 600w, https://www.azaytek.com/content/images/size/w1000/2022/04/pexels-photo-1010496.webp 1000w, https://www.azaytek.com/content/images/size/w1600/2022/04/pexels-photo-1010496.webp 1600w, https://www.azaytek.com/content/images/2022/04/pexels-photo-1010496.webp 2250w" sizes="(min-width: 720px) 720px"><figcaption>computer keyboard</figcaption></figure><p>Those days were the hardest ones. In the summer, we had to choose between an internship or a home made project that we would implement using the stack we want. So I decided to go with the <a href="https://symfony.com/4">Symfony framework</a> because, after some recommendations, I thought that, for a beginner like me, it was the perfect framework to get introduced to <a href="https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller">MVC pattern</a>, <a href="https://en.wikipedia.org/wiki/Object%E2%80%93relational_mapping">ORM</a>, Web Servers etc.<br><br>And the random choice to use Linux instead of windows was a career&apos;s changer.</p><h3 id="extremely-powerful-black-screens-vs-extremely-powerless-humans">Extremely powerful black screens VS extremely powerless humans</h3><p>I managed to install <a href="https://ubuntu.com/">Ubuntu </a>following some Youtube videos. When I saw the purple desktop screen, I felt like the smartest human alive.The terminal icon was sitting there and I clicked on it. I had really no idea what&apos;s is next. </p><p>I said to myself: <em>&quot;This is what you&apos;ve been seeing in movies! The FBI use this thing! Do something!&quot;</em></p><figure class="kg-card kg-image-card"><img src="https://www.azaytek.com/content/images/2022/04/image-2.png" class="kg-image" alt="Starting with Linux terminal as a beginner, a personal story." loading="lazy" width="726" height="463" srcset="https://www.azaytek.com/content/images/size/w600/2022/04/image-2.png 600w, https://www.azaytek.com/content/images/2022/04/image-2.png 726w" sizes="(min-width: 720px) 720px"></figure><p><br>The first command I stumbled upon and I could understand was <strong><a href="https://en.wikipedia.org/wiki/Whoami">whoami</a></strong>, copy pasted it to the terminal, I got the output displaying my name. That&apos;s a whole new level for a beginner!<strong> </strong><a href="https://man7.org/linux/man-pages/man1/date.1.html"><strong>date</strong> </a>was the second command I learned. </p><p>After learning some basic linux terminal commands, I wanted to start the real work by installing and configuring LAMP and Symfony.</p><h3 id="a-step-further-dealing-with-packages-and-configuration-files">A step further, dealing with packages and configuration files</h3><p>The first step always, in any field, is hard, specially in Linux ecosystem. The configuration and installation of a functional <a href="https://en.wikipedia.org/wiki/LAMP_(software_bundle)">LAMP </a>and Symfony took me 10 DAYS. I was copying online content to the shell. </p><p>The progress I made was extremely slow because I had no idea what I was doing and why I was doing it. It was a real pain.</p><p> As days passed, I felt more comfortable using the command line utilities <a href="https://linuxize.com/post/how-to-use-apt-command/"><strong>apt</strong> </a>and <strong><a href="https://www.google.com/search?q=linux+make+command&amp;oq=linux+make+co&amp;aqs=chrome.0.0i20i263i512j0i512j0i20i263i512j0i512l7.2153j0j4&amp;sourceid=chrome&amp;ie=UTF-8">make</a></strong>, I learnt some useful file compression commands, a bunch of directories and files manipulation tips along with some scripting skills.<br><br> The only thing I&apos;m regretting is that I jumped into the swimming pool, without any preparation. This costed me time but regardless, in the end I felt more confident, and in control.<br><br>So, please, always start with the basic, always. Don&apos;t let the experimentation guides you and read <a href="https://www.guru99.com/best-linux-books-beginners.html">a book</a> instead. This would save you a lot of valuable time and effort. Always! Did I say it enough? Always.</p><h3 id="no-gui-no-problem"><strong>No GUI? No problem!</strong></h3><p>Since then, I had been a regular Linux user. Besides doing the geeky stuff, I used Ubuntu as a daily basis. Playing online games, tweaking photos for my social media accounts, scheduling some <a href="https://en.wikipedia.org/wiki/Cron">cron jobs</a> to empty the trash or to remove Chrome browser&apos;s cache once a week etc..<br><br>One day I came across an internship offer to implement a <a href="https://www.techtarget.com/searchitoperations/definition/continuous-deployment#:~:text=Continuous%20deployment%20is%20a%20strategy,visible%20to%20the%20software&apos;s%20users.">continuous deployment</a> tool. Back then I had no idea what did it mean. After going through some internet resources, I figured out that it involves a lot of scripting and command line skills, so I applied, and got an acceptance mail. Woho!<br><br>I founded myself dealing with Linux servers. Those without a user interface. As a beginner, I felt successfully ssh-ing into the remote/virtual servers was like <a href="https://greekreporter.com/2021/07/04/greece-euro-2004-champion/#:~:text=On%20July%204%2C%202004%20Greece,1%2D0%20in%20the%20final.">Greece winning the Euro on 2004</a>. My first days were unproductive, I was googling every single thought, even the simplest ones.</p><p>Yet again, those dark days benefited me more than I thought. Limiting your choices to a single one will force you to learn that single one, and master it. </p><p>Imaging a kid having a collection of half sleeve shirts, one pullover and it&apos;s cold. This kid cries every time his mother asks him to wear the pullover. What did she do?! She hid all the shirts and left the pullover on the desk. The kid, after some expected crying episodes, decided to wear it. And he&apos;d fallen in love with it!<br><br>What I want to tell you here is that, when you want to sharpen your skills in any field, especially the command line and the Linux ecosystem, always remove all options available to you except the one you want to master. You will thank me later!<br></p><h2 id="conclusion">Conclusion</h2><p>So, this is my story with the command line when I was just starting. Despite reading a lot of blogs and articles about its benefits; productivity, speed, efficiency, control etc, I didn&apos;t find them motivating. My motivation was to explore the tool that movies heroes uses to hack the FBI or the CIA. And yes, it was completely worth it.</p>]]></content:encoded></item><item><title><![CDATA[9 tools to automate your monitoring for maximum productivity]]></title><description><![CDATA[<p>The day preceding is tedious, but nevertheless very useful for your activity growth. By routinely breaking down patterns in your market , as well as the activities of contenders, you can continually adjust your offers. You could also draw consistent motivation &amp; inspiration for new ideas.</p><p>However, saving time and quickly</p>]]></description><link>https://www.azaytek.com/10-tools-to-automate-your-monitoring/</link><guid isPermaLink="false">625a0cfb7cf3004892190c5a</guid><category><![CDATA[automation]]></category><category><![CDATA[career]]></category><category><![CDATA[Productivity]]></category><dc:creator><![CDATA[Abdelaziz Dabbabi]]></dc:creator><pubDate>Sat, 16 Apr 2022 23:10:00 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1483058712412-4245e9b90334?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDR8fHByb2R1Y3Rpdml0eXxlbnwwfHx8fDE2NTAwNzU4OTA&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1483058712412-4245e9b90334?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDR8fHByb2R1Y3Rpdml0eXxlbnwwfHx8fDE2NTAwNzU4OTA&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" alt="9 tools to automate your monitoring for maximum productivity"><p>The day preceding is tedious, but nevertheless very useful for your activity growth. By routinely breaking down patterns in your market , as well as the activities of contenders, you can continually adjust your offers. You could also draw consistent motivation &amp; inspiration for new ideas.</p><p>However, saving time and quickly sorting through the mass of data distributed on the web becomes a problem? Well, this list of 9 automation tools is for you so you can easily experiment and use to automate all of your monitoring without any problem, while doing something else very unrelated? Sleeping maybe? &#xA0;&#x1F634;</p><h2 id="how-to-benefit-from-these-monitoring-tools">How to benefit from these monitoring tools?</h2><p>Monitoring tools are very practical for obtaining information in a few clicks, detecting topics relevant to your business and monitoring your online reputation. To avoid pitfalls, remember to configure each tool according to your real needs. If you simply want to stay informed of the news in your sector, it is not useful to pollute yourself with several alert systems which risk generating daily notifications.</p><p>Try to choose relevant and accurate keywords when setting alerts. Also beware of overly generic terms and synonyms. If this happens, you may receive information that does not meet your expectations. Finally, do not accumulate more than 2 or 3 complementary monitoring tools at the risk of receiving similar activities several times.</p><h3 id="1-alerti">1. Alerti</h3><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://images.unsplash.com/photo-1551288049-bebda4e38f71?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDF8fG1vbml0b3Jpbmd8ZW58MHx8fHwxNjUwMDcxMDQx&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" class="kg-image" alt="9 tools to automate your monitoring for maximum productivity" loading="lazy" width="4810" height="3207" srcset="https://images.unsplash.com/photo-1551288049-bebda4e38f71?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDF8fG1vbml0b3Jpbmd8ZW58MHx8fHwxNjUwMDcxMDQx&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=600 600w, https://images.unsplash.com/photo-1551288049-bebda4e38f71?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDF8fG1vbml0b3Jpbmd8ZW58MHx8fHwxNjUwMDcxMDQx&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=1000 1000w, https://images.unsplash.com/photo-1551288049-bebda4e38f71?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDF8fG1vbml0b3Jpbmd8ZW58MHx8fHwxNjUwMDcxMDQx&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=1600 1600w, https://images.unsplash.com/photo-1551288049-bebda4e38f71?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDF8fG1vbml0b3Jpbmd8ZW58MHx8fHwxNjUwMDcxMDQx&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2400 2400w" sizes="(min-width: 720px) 720px"><figcaption>Photo by <a href="https://unsplash.com/@lukechesser?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit">Luke Chesser</a> / <a href="https://unsplash.com/?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit">Unsplash</a></figcaption></figure><p>Of all the tools presented, Alerti is the most complete. As such, it has a cost. Nevertheless, the price is very affordable, since it starts at 19&#x20AC; per month for 3 alerts.</p><p>Its main advantage, compared to the competitors, is the information sources. Alerti not only polls Google results, it also brings up tweets, Instagram photos and videos, public Facebook posts, YouTube videos, forum posts, etc.</p><p>So you don&apos;t miss any updates on the keyword or phrase you&apos;re tracking.</p><h3 id="2-paperli">2. Paper.li</h3><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://images.unsplash.com/photo-1579719558505-ad4a5fee0847?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDJ8fG1vbml0b3Jpbmd8ZW58MHx8fHwxNjUwMDcxMDQx&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" class="kg-image" alt="9 tools to automate your monitoring for maximum productivity" loading="lazy" width="6000" height="3671" srcset="https://images.unsplash.com/photo-1579719558505-ad4a5fee0847?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDJ8fG1vbml0b3Jpbmd8ZW58MHx8fHwxNjUwMDcxMDQx&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=600 600w, https://images.unsplash.com/photo-1579719558505-ad4a5fee0847?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDJ8fG1vbml0b3Jpbmd8ZW58MHx8fHwxNjUwMDcxMDQx&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=1000 1000w, https://images.unsplash.com/photo-1579719558505-ad4a5fee0847?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDJ8fG1vbml0b3Jpbmd8ZW58MHx8fHwxNjUwMDcxMDQx&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=1600 1600w, https://images.unsplash.com/photo-1579719558505-ad4a5fee0847?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDJ8fG1vbml0b3Jpbmd8ZW58MHx8fHwxNjUwMDcxMDQx&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2400 2400w" sizes="(min-width: 720px) 720px"><figcaption>Photo by <a href="https://unsplash.com/@ibrahimboran?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit">Ibrahim Boran</a> / <a href="https://unsplash.com/?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit">Unsplash</a></figcaption></figure><p>This content aggregator allows you to create a daily newspaper from several feeds selected according to your main interests. It is an attractive solution for keeping up to date with a current topic or developments in your industry.</p><p>Although it can be used as a personal monitoring tool, Paper.li has other advantages. It can enrich your online presence with little effort. By positioning yourself as the editor of your watch magazine, you can share content that will interest your target audience, but also your own publications.</p><p>Fully customizable, the Paper.li monitoring tool will reflect your business and expertise. You can choose between many design options. The frequency with which you receive or send your monitoring magazine can be adjusted and modified at any time. To avoid tiring your readers, you can change the information flow and add related topics to cover current events.<br></p><h3 id="3-ifttt">3. IFTTT</h3><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.azaytek.com/content/images/2022/04/monitoring_3.PNG" class="kg-image" alt="9 tools to automate your monitoring for maximum productivity" loading="lazy" width="574" height="380"><figcaption>IF not now, when?</figcaption></figure><p>Also free, IFTTT allows you to automate part of your monitoring. This tool is based on the programming of microapplications that will perform an action automatically. Said like that, it sounds complicated, but rest assured, it&apos;s very simple!</p><p>The acronym IFTTT stands for: IF This Then That. In other words: if something happens, it is necessary to carry out such an action.</p><p>For example, imagine that you want to list tweets that talk about your brand. You could automate the task by having the tool send you a DM, fill out a Google Sheet, or send you an email, as soon as someone posts a tweet containing your brand.</p><p>You can also perform the same action from an RSS feed and therefore combine the tool with Google Alerts.</p><h3 id="4-google-alerts">4. Google Alerts</h3><p>The most famous monitoring tool is called Google Alerts. Completely free, it allows you to create an alert on keywords or expressions.</p><p>You can then receive the results by email (according to a frequency that you determine) or as an RSS feed. This second choice is relevant if you use a feed aggregator, like Netvibes or Feedly.</p><h3 id="5-gigaalert">5. GigaAlert</h3><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.azaytek.com/content/images/2022/04/monitoring_1.PNG" class="kg-image" alt="9 tools to automate your monitoring for maximum productivity" loading="lazy" width="611" height="354" srcset="https://www.azaytek.com/content/images/size/w600/2022/04/monitoring_1.PNG 600w, https://www.azaytek.com/content/images/2022/04/monitoring_1.PNG 611w"><figcaption>monitoring</figcaption></figure><p>The GigaAlert tool is a useful complement to Google Alerts. It works in a similar way to the tool offered by the American giant. You also have the possibility to set words or expressions and to adjust the frequency of email sending. In addition, you can exclude sources that do not seem relevant to you. This way, you get better results.</p><p>However, the main difference between this tool and Google Alerts lies in the search engine used: GigaAlert is based on Yahoo to bring up the results. The advantage is to diversify the results obtained and thus, to have a more exhaustive watch.</p><h3 id="6-flipboard">6. Flipboard</h3><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.azaytek.com/content/images/2022/04/monitoring_2.PNG" class="kg-image" alt="9 tools to automate your monitoring for maximum productivity" loading="lazy" width="859" height="443" srcset="https://www.azaytek.com/content/images/size/w600/2022/04/monitoring_2.PNG 600w, https://www.azaytek.com/content/images/2022/04/monitoring_2.PNG 859w" sizes="(min-width: 720px) 720px"><figcaption>monitoring and collaboration</figcaption></figure><p>Thanks to a collaboration with many media and supports, Flipboard allows its users to define target themes and receive news related to the desired frequency. Like Paper.li, it takes the form of a customizable webzine. Content can be organized in the form of sections, hierarchically organized according to the reader&apos;s preferences.</p><p>Very flexible, Flipboard can easily be enriched with new sources of information. To add relevant content, simply search by hashtags. The most popular topics are presented by default. One of the advantages of Flipboard is its interaction with social networks and video platforms, such as YouTube. The built-in sharing features offer a valuable time-saver. It&apos;s a fun and reliable content aggregator that stands out for its intuitive interface and ease of use.</p><h3 id="7-feedly">7. Feedly</h3><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.azaytek.com/content/images/2022/04/monitoring_4.PNG" class="kg-image" alt="9 tools to automate your monitoring for maximum productivity" loading="lazy" width="444" height="310"><figcaption>monitoring and aggregation</figcaption></figure><p>Feedly is an RSS feed aggregator compatible with all browsers and devices. It was created in 2008. With more than 15 million users, it is one of the most used curation tools in the world. Its objective is to group and organize all the feeds recorded by the user. Content updates are automatically sent by e-mail or through notifications.</p><p>This monitoring tool is intended for those who wish to control the sources of content. Its approach is not thematic: it is above all the sources chosen that determine the content displayed. Feedly is particularly well suited to perform certain activities, such as a targeted watch on a sector, a competitive benchmark or a monitoring of the e-reputation of a company or a brand.</p><p>Even though Feedly is a &quot;raw&quot; aggregator, it stands out for its clear and intuitive interface. The user can order content by category and select several types of display:</p><p>List mode displays only the title of the articles (sometimes truncated). It is ideal to get an overview.<br>The thumbnail mode highlights the main image associated with a content.<br>The article mode allows you to display more content (headline and first paragraph).<br>Feedly has interesting sharing features. It is compatible with the main social networks.</p><h3 id="8-netvibes">8. Netvibes</h3><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.azaytek.com/content/images/2022/04/monitoring_5.PNG" class="kg-image" alt="9 tools to automate your monitoring for maximum productivity" loading="lazy" width="593" height="367"><figcaption>cross-monitoring</figcaption></figure><p>Pioneer of the personal dashboard, Netvibes is a monitoring tool that allows you to follow a multitude of information sources simultaneously. Created in 2005 before being acquired in 2012 by Dassault Syst&#xE8;mes, it has been perfected over the years to integrate social networks and follow technological developments. It is based on the concept of the personal dashboard, a tool developed to visualize in a single click the news specific to a given subject.</p><p>Of course, the user can cumulate several dashboards according to the themes followed and navigate from one window to another very easily. The creation of sub-tabs allows the user to refine the search themes even more specifically.</p><p>The &quot;potions&quot; function also allows you to set up alerts on a given keyword.</p><p>Note that there is a paid version of NetVibes that allows you to take advantage of additional features, such as powerful search filters and even faster feed updates. However, the free version is more than enough for personal or recreational use</p><h3 id="9-twitter">9. Twitter</h3><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.azaytek.com/content/images/2022/04/monitoring_6.PNG" class="kg-image" alt="9 tools to automate your monitoring for maximum productivity" loading="lazy" width="596" height="366"><figcaption>Twitter as a monitoring tool</figcaption></figure><p>Twitter is an essential social network to see and be seen, but it&apos;s also a very complete monitoring tool that will help you understand the momentum of your brand. Of course, you can also use it if you are interested in a given sector, a company or a network of influencers. As the leader in microblogging, Twitter churns out an impressive amount of information. Fortunately, there are several easy-to-implement solutions for setting up alerts. You can, for example, fill in the topics that interest you with keywords preceded by the famous hashtag. You&apos;ll get a list of the most recent activity, prioritized by media type. Account tracking is also a simple and effective way to get real-time information, provided you select reliable sources.</p><h2 id="conclusion">Conclusion</h2><p>Thise was are our list of suggested autoimation tools to help you stay updated, and help you reaach your productivity peak by leveraging the machine capabilities to do repetitive, mundane &amp; time-consuming task. Your time is precious, waste it wisely!</p>]]></content:encoded></item><item><title><![CDATA[6 Software developer & engineer advises that you should read for a successful career.]]></title><description><![CDATA[6 Software engineering career advices to not miss for a successful career]]></description><link>https://www.azaytek.com/software-developer-engineer-advices/</link><guid isPermaLink="false">6205345b9bfa441a3a5abb2b</guid><category><![CDATA[career]]></category><category><![CDATA[goals]]></category><category><![CDATA[Productivity]]></category><category><![CDATA[review]]></category><category><![CDATA[retrospective]]></category><category><![CDATA[Software Engineering]]></category><dc:creator><![CDATA[Abdelaziz Dabbabi]]></dc:creator><pubDate>Thu, 10 Feb 2022 15:50:51 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1571171637578-41bc2dd41cd2?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDN8fHNvZnR3YXJlfGVufDB8fHx8MTY0Njk1MjAyMQ&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1571171637578-41bc2dd41cd2?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDN8fHNvZnR3YXJlfGVufDB8fHx8MTY0Njk1MjAyMQ&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" alt="6 Software developer &amp; engineer advises that you should read for a successful career."><p>I&apos;ve been sitting with my niece (13 years old) with my smartphone in my hands, scrolling through my LinkedIn feeds. The girl&apos;s eyes were fixed on the screen when she suddenly pops a random, innocent reclamation in a tearful tone: &quot;I want to work with a puppet like you &#x1F622;&quot;</p><p>What? I said, looking at the screen, and found that it was an article on &quot;How to work with <a href="https://puppet.com/">puppet</a> like a pro&quot;. I whispered to her: &quot;Okay, little lady, when you grow older, I will bring you to work with a puppet, just like your uncle&quot;. She went to her mother. I locked my phone and fired a cigarette. This was unexpected and I took a moment to reflect on tech-things I wish I knew before choosing software engineering as a career path; things you should always keep in mind. Let&apos;s start!</p><ul><li><strong>Satisfaction comes from inside, not from a paycheck, no matter how high it is.</strong></li></ul><p>Money! Dada! Getting an internship, acing your first interview, getting your first job and paycheck, getting your first promotion, and salary increase. You feel that you would be happy and satisfied when achieving any of these. The problem - which in reality is not a problem since this is human nature - shortly after that, you will get back to level zero and feel unsatisfied and ask for more to regenerate those hormonal satisfaction feelings. It&apos;s an infinite loop. </p><p>This doesn&apos;t mean that you should not aim to get promoted and have salary increases; it means to not tie your level of satisfaction and happiness to the amount of a paycheck; otherwise, you would be constantly running behind a ghost.</p><ul><li><strong>Your work&apos;s stress is a problem, but it&apos;s only yours.</strong></li></ul><p>Multitasking, debugging, resolving incidents, sharing <a href="https://www.azaytek.com/how-to-setup-an-ssh-tunnel-on-linux-and-use-it-to-connect-to-remote-mysql-database-using-nodejs-php/">ssh </a>keys, building classes, objects and components, integrating HTML, <a href="https://www.azaytek.com/cors-aws-lambda-api-gateway-proxy-tutorial/">CORS</a>, dealing with constantly full mail inbox should not let you forget that real life -and human interaction in general- are way simpler. It must not justify unleashing your stress on your family or people who do not work with you. Please be kind. Everyone has his share of stress.</p><ul><li><strong>Working at small, unknown startups might be your bullet to success.</strong></li></ul><p>Dreaming about joining big corporate software companies? Thousands of engineers and large teams excite you? This might be counter-intuitive, but from my perspective, working there is going to limit you on different levels.</p><p> You will have a pretty defined job frame, with many restrictions and a relatively great paycheck. Unless you work at startups, wearing all possible hats (SEO, DevOps, participate in meeting with clients, frontend &amp; backend development, infrastructure, security, etc.) learn all software life cycles and intervene at all levels, you are going to feel like a lion in a cage. It sounds ridiculous, but sadly true. </p><p>In startups, failure tolerance is much higher. You will be able to suggest, share, experiment, and all of that with a quick feedback loop. Simply, working at startups helps you have a broader vision, high level of confidence, and makes your learning journey quicker and richer.</p><ul><li><strong>Relax, life will not end tomorrow.</strong></li></ul><p>As a software engineer, you will feel like you are always working. You won&apos;t feel rested. Software is not really soft &#x1F97A;</p><p>Consistently having bugs and fixes, new features to release, PRs to merge, meetings, and debugging sessions, combined with a smartphone and internet connection. The result? You guessed that right: headaches, consistent fear of missing deadlines, relatively ruined eyesight (glasses everywhere!), back pain, ...</p><p>You have to learn and internalize that no deadline is more important than your physical and mental health, and believe it or not, there is still life tomorrow. Remember that when you feel overwhelmed!</p><ul><li><strong>You should always take notes, ALWAYS!</strong></li></ul><p>I should have printed this in work and home offices, but now I do. It cost me a lot of useless emails, meetings, TAXI rides, angry product managers repeating themselves, and wasted mental and physical energy.</p><p>Never say, &quot;<em>This is easy. I can remember it later.&quot; </em>Your mind - with all its greatness - is fooling you. Take notes! ALWAYS<em>!</em></p><ul><li><strong>It&apos;s not like movies. You should be at peace with the fact that <strong>routine is inevitable.</strong></strong></li></ul><p>Going through job ads, I think the second most repeated word is &quot;exciting&quot;. Try a LinkedIn search with the word exciting in the USA. I did it for you:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.azaytek.com/content/images/2022/03/image.png" class="kg-image" alt="6 Software developer &amp; engineer advises that you should read for a successful career." loading="lazy" width="936" height="240" srcset="https://www.azaytek.com/content/images/size/w600/2022/03/image.png 600w, https://www.azaytek.com/content/images/2022/03/image.png 936w" sizes="(min-width: 720px) 720px"><figcaption>LinkedIn job search result for keyword &quot;exciting&quot; in the USA</figcaption></figure><p>+455k exciting jobs! </p><p>This is not real. Routine is inevitable. You will be working with machines and byte-codes. Does this description look exciting? I don&apos;t think so &#x1F61F;</p><p>Excitement regarding your new job, new colleagues, and new technologies will vanish as quickly as you won&apos;t believe, and this is completely fine. Routine comes with a level of mastery and peace.</p><p>You should be okay with this. Otherwise, go to work in the circus. I&apos;m kidding; they have their own routine.</p><h2 id="conclusion">Conclusion</h2><p><br>I hope that this list might help you choose a career path, or help you stay on track when you are just starting and feel overwhelmed. This post&apos;s idea is to lay down some personal perspectives to help anyone make the best decision. We are not the same. You love Pizza, and I do love Macaroni. We should be fine. What is it all about is your level of satisfaction, endurance, and the ability to live your life as simply yet as passionately as possible. Life is not a matrix!</p>]]></content:encoded></item></channel></rss>