<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Bar Admoni</title>
    <description>The latest articles on DEV Community by Bar Admoni (@baradm100).</description>
    <link>https://dev.to/baradm100</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F65986%2Fe2d8521b-d284-4df5-8d36-fc9655d59458.jpg</url>
      <title>DEV Community: Bar Admoni</title>
      <link>https://dev.to/baradm100</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/baradm100"/>
    <language>en</language>
    <item>
      <title>How are you doing deployment and CI?</title>
      <dc:creator>Bar Admoni</dc:creator>
      <pubDate>Sat, 20 Jul 2024 17:56:21 +0000</pubDate>
      <link>https://dev.to/baradm100/how-are-you-doing-deployment-and-ci-1lnk</link>
      <guid>https://dev.to/baradm100/how-are-you-doing-deployment-and-ci-1lnk</guid>
      <description>&lt;p&gt;Hello!&lt;br&gt;
I'm wondering: how you are doing CI/CD for a new or existing project?&lt;br&gt;
Do you have a Bootstrap template that you are already using, or are you creating a new one from scratch?&lt;br&gt;
How you're picking your CI/CD platform and cloud provider?&lt;br&gt;
See you in the comments!&lt;/p&gt;

&lt;h2&gt;
  
  
  As for myself
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Small/medium projects
&lt;/h3&gt;

&lt;p&gt;Usually in those types of projects I don't have access for a full time DevOps (and most of the time, there is no real need).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;IaC&lt;/strong&gt;: Template I made using Terraform and Terragrunt (let me know if you want me to share it)&lt;br&gt;
&lt;strong&gt;Cloud Provider&lt;/strong&gt;: GCP (It's hard to beat the ease of use of Cloud Run)&lt;br&gt;
&lt;strong&gt;CI/CD Platform&lt;/strong&gt;: GitHub Actions (super easy to setup, free tier and easily scalable to the project)&lt;/p&gt;

&lt;h3&gt;
  
  
  Large/Enterprise projects
&lt;/h3&gt;

&lt;p&gt;Usually in those types of projects I have access to at least one full time DevOps which allows to select less PaaS options&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;IaC&lt;/strong&gt;: Terraform and Terragrunt (using the same template from the Small/medium projects section, which scales pretty well)&lt;br&gt;
&lt;strong&gt;Cloud Provider&lt;/strong&gt;: Not an issue, but usually AWS&lt;br&gt;
&lt;strong&gt;CI/CD Platform&lt;/strong&gt;: Jenkis for CI/CD&lt;/p&gt;

&lt;h2&gt;
  
  
  Footnote
&lt;/h2&gt;

&lt;p&gt;I'm happy to learn and share, my dream is to make it super easy for developers to start a project easily, but they can scale it without marrying a provider like Vercel&lt;/p&gt;

&lt;h2&gt;
  
  
  Cover Photo Credit
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://unsplash.com/@jramos10" rel="noopener noreferrer"&gt;@jramos10&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devops</category>
      <category>discuss</category>
      <category>learning</category>
    </item>
    <item>
      <title>How To Pick The Right Tools For The Job?</title>
      <dc:creator>Bar Admoni</dc:creator>
      <pubDate>Wed, 23 Dec 2020 08:07:52 +0000</pubDate>
      <link>https://dev.to/baradm100/how-to-pick-the-right-tools-for-the-job-3po0</link>
      <guid>https://dev.to/baradm100/how-to-pick-the-right-tools-for-the-job-3po0</guid>
      <description>&lt;p&gt;Picking the right tool for the job is a mindset that every professional needs.&lt;/p&gt;

&lt;p&gt;Each tool has its strength and weakness. Using the correct tools for the job will help with time to deliver and the overall quality; having the wrong tools could hinder us from reaching the end goal.&lt;/p&gt;

&lt;p&gt;Every profession has its tools; for us, software engineers, the tools are (and not limited to):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Architecture patterns (i.e., EDA, MVC, microservices, etc.)&lt;/li&gt;
&lt;li&gt;Coding languages (i.e., Java, JS, go, python, etc.)&lt;/li&gt;
&lt;li&gt;Databases (i.e., MySQL, Postgres, MongoDB, etc.)&lt;/li&gt;
&lt;li&gt;And many more.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So, how do you pick the right tools? My recommendation is to consider the following points:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Pros vs. Cons&lt;/strong&gt;: Like mentioned above, each tool has its strength and weakness. Knowing them and what we need to do will point us in the (vague) direction. Need a web server that needs to have a lot of concurrent connections? We should look at node.js. Is it mission-critical to respond in (near) real-time? We should look at C/go.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Familiarity&lt;/strong&gt;: The team's understanding and existing experience with the tool is a crucial factor to consider. Can we start developing from day 0, or should we invest time in learning the tool?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Consistency&lt;/strong&gt;: Last and most controversial one, it's better to be consistent. Introducing too many tools can slow down the development process, hinder the overall quality, create knowledge siloes, and more nasty stuff we want to avoid.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What are your tips for picking the right tools?&lt;/p&gt;

&lt;h2&gt;
  
  
  Cover Photo Credit
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://unsplash.com/@carlevarino"&gt;@carlevarino&lt;/a&gt;&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>watercooler</category>
      <category>career</category>
    </item>
    <item>
      <title>What defines a senior software engineer?</title>
      <dc:creator>Bar Admoni</dc:creator>
      <pubDate>Sun, 18 Oct 2020 06:43:15 +0000</pubDate>
      <link>https://dev.to/baradm100/what-defines-a-senior-software-engineer-32kh</link>
      <guid>https://dev.to/baradm100/what-defines-a-senior-software-engineer-32kh</guid>
      <description>&lt;p&gt;What defines a senior software engineer? What are their responsibilities?  I get this question a lot from friends, family, colleagues, and even from myself.&lt;/p&gt;

&lt;p&gt;There is no one clear definition; every company, website, and person have their definition.&lt;br&gt;
As a team leader in the past and a senior software engineer today, this is my definition:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Holistic view - understanding the bigger picture, where the product is going, and how to engineer it.&lt;/li&gt;
&lt;li&gt;Communicating with all the involved parties - Being able to bridge between PO, PM, UX, SRE, and engineering, so everyone is up to speed.&lt;/li&gt;
&lt;li&gt;Involved in the full software development life cycle - contributing to every step of the development cycle.&lt;/li&gt;
&lt;li&gt;Being a mentor and a guide - teach your knowledge to others, identify weak and strong points, help grow, and empower others.&lt;/li&gt;
&lt;li&gt;Improving your team - Senior will help develop and empower the people around them.&lt;/li&gt;
&lt;li&gt;Spot pitfalls and solve them ahead of time - recognize patterns and have the "future sight" to understand possible pitfalls and their solutions.&lt;/li&gt;
&lt;li&gt;Not a function of years of experience, but knowledge - as put by Darknight at softwareengineering: "Some achieve the above in 2 years or less, others take 10 years".&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So, what is your definition?&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>career</category>
    </item>
    <item>
      <title>Engineering vs. Product Managers – Does it have to be this way?</title>
      <dc:creator>Bar Admoni</dc:creator>
      <pubDate>Mon, 14 Sep 2020 08:34:47 +0000</pubDate>
      <link>https://dev.to/baradm100/engineering-vs-product-managers-does-it-have-to-be-this-way-43cg</link>
      <guid>https://dev.to/baradm100/engineering-vs-product-managers-does-it-have-to-be-this-way-43cg</guid>
      <description>&lt;p&gt;On Monday 16:30, I had a call with my current project manager which I can summarise to:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"it's like the engineers don't understand me, they say they do, but when it comes down to it, they don't."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The interesting part is that earlier I had the same call 15 minutes but with an engineer.&lt;/p&gt;

&lt;p&gt;As part of being a senior software engineer, you're positioned in a place where you're driving the project's technical aspects. One of these aspects is bridging the communication gap with the stakeholders.&lt;/p&gt;

&lt;p&gt;In my experience, there are a few rules of thumb to improve the product &amp;amp; engineering teamwork (which will, in return, result in a better product):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Align expectations&lt;/li&gt;
&lt;li&gt;Find the correct communication channels&lt;/li&gt;
&lt;li&gt;Ask (and answer) why?&lt;/li&gt;
&lt;li&gt;Remember – this is a collective effort&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Align expectations
&lt;/h2&gt;

&lt;p&gt;We're one team working together, but everyone in the team has different expectations from one another and even themselves. Aligning the expectations between all the stakeholders, engineering, product, UX, etc. makes sure we're all on the same page.&lt;/p&gt;

&lt;p&gt;Say loud and clear what you expect from everyone involved and what you expect from yourself, be open-minded and accepting. My recommendation: try to do it face to face or at least in a video call.&lt;/p&gt;

&lt;h2&gt;
  
  
  Find the correct communication channels
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--oeaN60dr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/jkul0z6dunhwmrfz1huc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--oeaN60dr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/jkul0z6dunhwmrfz1huc.png" alt="People talking near a board - @austindistel"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Finding the right communication channels can be surprisingly challenging. When most people try to tackle this issue, they'll focus on the tools.&lt;/p&gt;

&lt;p&gt;Yes, tools are the main driving point, and today there are some fantastic tools. Still, the hard part is establishing and finding the best ways to communicate to ensure the point comes across.&lt;/p&gt;

&lt;p&gt;My primary go-to strategy is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Task management – when we have a goal to accomplish – make sure it's documented, have visual aids, all the information needed to execute and in the agreed-upon taxonomy (&lt;em&gt;Tools&lt;/em&gt;: Jira, Monday.com, Trello, etc.)&lt;/li&gt;
&lt;li&gt;Instant messaging – Great for quick discussions, questions, updates, and brainstorming (&lt;em&gt;Tools&lt;/em&gt;: WebEx teams, slack, teams, etc.)&lt;/li&gt;
&lt;li&gt;Video chats – when you want to have 100% confirmation or demos, sometimes a 10-minute call can save you one hour of e-mails/messages (&lt;em&gt;Tools&lt;/em&gt;: WebEx, Zoom, Slack, teams, etc.)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Ask (and answer) why?
&lt;/h2&gt;

&lt;p&gt;Best products made by the people who know "why?" (why we're adding this new feature? Why our customer needs this?). Don't be afraid to ask and answer, "why?".&lt;/p&gt;

&lt;p&gt;When asking, you're performing a sanity check to the decisions/designs/etc. On the other hand, it will give you a deeper understanding of how you can help make the product better.&lt;/p&gt;

&lt;p&gt;At the end of this process, all the parties involved will have higher confidence and understanding of the next steps.&lt;/p&gt;

&lt;h2&gt;
  
  
  Remember – this is a collective effort
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jJgZAhU_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/qnvzey0cfu0wue4t9kra.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jJgZAhU_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/qnvzey0cfu0wue4t9kra.png" alt="4 people hugging - @wildlittlethingsphoto"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The most fundamental aspect (that from time to time we all need a reminder on): we're all striving to make the product better, we're one team working together on that, it's not us against them, it's us.&lt;/p&gt;

&lt;p&gt;Always give the benefit of the doubt and communicate.&lt;/p&gt;

&lt;p&gt;For example, we had a feature request submitted by the PM, and the effort to do it in a reasonable time and quality was too high. After a quick WebEx call, we explained why it's challenging to execute. Together we found common ground.&lt;/p&gt;

&lt;p&gt;The PM understood why we were hesitant, and we explained the engineers the importance of the feature; together, we found a way to reduce the scope, move faster, and deliver value to our customers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;This article gave a few tips and thought-provoking points on improving the teamwork and collaboration between PM &amp;amp; engineering. At the end of it, it boils down to: Listen, trust, and talk, we have the same goal.&lt;/p&gt;

&lt;h2&gt;
  
  
  Photos credits
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://unsplash.com/@mimithian"&gt;@mimithian&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://unsplash.com/@austindistel"&gt;@austindistel&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://unsplash.com/@austindistel"&gt;@wildlittlethingsphoto&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>career</category>
      <category>watercooler</category>
    </item>
  </channel>
</rss>
