<?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: Shivam Baghla</title>
    <description>The latest articles on DEV Community by Shivam Baghla (@shivambaghla).</description>
    <link>https://dev.to/shivambaghla</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%2F777589%2Ffca9511f-0982-4df2-8427-7af6c78a9842.png</url>
      <title>DEV Community: Shivam Baghla</title>
      <link>https://dev.to/shivambaghla</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/shivambaghla"/>
    <language>en</language>
    <item>
      <title>Importance of Building a Strong Engineering Culture for Startups</title>
      <dc:creator>Shivam Baghla</dc:creator>
      <pubDate>Thu, 29 Dec 2022 12:57:45 +0000</pubDate>
      <link>https://dev.to/shivambaghla/importance-of-building-a-strong-engineering-culture-for-startups-52kh</link>
      <guid>https://dev.to/shivambaghla/importance-of-building-a-strong-engineering-culture-for-startups-52kh</guid>
      <description>&lt;h2&gt;
  
  
  How can a strong engineering culture be key to success for a startup?
&lt;/h2&gt;

&lt;p&gt;As a startup, having a strong engineering culture can be critical for attracting and retaining top talent, promoting innovation, and helping your company succeed. Here are a few ways that building a positive engineering culture can benefit your startup:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Attract top-notch talent&lt;/strong&gt;: Engineers are often drawn to companies that value their skills and offer a positive work environment. By fostering a culture that values collaboration, continuous learning, and problem-solving, you can make your company a destination for top engineers in your field.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Encourage ownership and responsibility&lt;/strong&gt;: When team members feel a sense of ownership and responsibility for their work, they are more likely to be motivated and engaged. A strong engineering culture can inspire team members to take on additional responsibility and ownership of their projects, leading to higher productivity and innovation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Promote innovation&lt;/strong&gt;: A culture that encourages continuous learning and problem-solving can lead to new ideas and approaches to solving challenges. Encouraging team members to think creatively and come up with new solutions can help your startup stay ahead of the curve and differentiate itself in the market.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;Building a strong engineering culture is an important investment for any startup. By prioritising collaboration, continuous learning, and problem-solving, you can create a positive work environment that attracts and retains top talent, fosters a sense of ownership and responsibility, and promotes innovation. All of these factors can contribute to the long-term success of your startup.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://shivambaghla.com/"&gt;ShivamBaghla.com&lt;/a&gt;, &lt;a href="https://www.linkedin.com/in/shivam-baghla"&gt;LinkedIn&lt;/a&gt;, &lt;a href="https://twitter.com/shivam_baghla"&gt;Twitter&lt;/a&gt;&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>career</category>
      <category>computerscience</category>
      <category>engineeringculture</category>
    </item>
    <item>
      <title>Getting in love with the unfamiliar codebase</title>
      <dc:creator>Shivam Baghla</dc:creator>
      <pubDate>Mon, 12 Sep 2022 06:38:53 +0000</pubDate>
      <link>https://dev.to/shivambaghla/getting-in-love-with-the-unfamiliar-codebase-gf1</link>
      <guid>https://dev.to/shivambaghla/getting-in-love-with-the-unfamiliar-codebase-gf1</guid>
      <description>&lt;h2&gt;
  
  
  Guide to help developers / code contributors to get familiar with unfamiliar code
&lt;/h2&gt;

&lt;p&gt;There are many situations a developer or a code contributor comes across a new code base, be it a rise in attrition rate (post-pandemic) or a modern multi-tech stack combination requiring individuals to work on multiple code bases from time to time. This triggers a lack of confidence in taking tasks related to the new codebase (alienation 👽 effect). &lt;/p&gt;

&lt;p&gt;Here I have tried to list some guided steps one can take to get familiar with any new codebase they come across.&lt;/p&gt;

&lt;h3&gt;
  
  
  Understanding the background business/domain.
&lt;/h3&gt;

&lt;p&gt;Leave the code aside, and understand the company's or product's core. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Having a clear picture of the problem, that a codebase is solving will help in a significant way in creating the mindmap around the code structure and flow.&lt;/li&gt;
&lt;li&gt;No need of getting into minute details, just a big-picture overview would be fine.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Take a tour - as an end user.
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;End-users, know the product better than any other stakeholder.  &lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;Using the product, be it a website, a mobile app, or even an API solution gives you a clear knowledge of the product.&lt;/li&gt;
&lt;li&gt;Empowers you to break down the product into logical modules.&lt;/li&gt;
&lt;li&gt;Observe flow describers like -

&lt;ul&gt;
&lt;li&gt;Breadcrumbs&lt;/li&gt;
&lt;li&gt;Menu(s) Items&lt;/li&gt;
&lt;li&gt;Heading/ Page titles&lt;/li&gt;
&lt;li&gt;Navigation bars&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This will help you to create an imaginary flow in your mind, hence the tour.&lt;/p&gt;

&lt;h3&gt;
  
  
  Reading the documentation available.
&lt;/h3&gt;

&lt;p&gt;Documentation is primarily divided into high-level ( i.e Architecture and technical documentation) and low-level documentation ( i.e folder structure, naming conventions, and coding standards being used by the team). &lt;/p&gt;

&lt;p&gt;Also, this will help you to clear a lot of doubts that may arise when you actually explore the code or have a code walkthrough.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Draw a visual representation of the system with your understanding, and get it validated by someone who is already familiar with the code.&lt;/li&gt;
&lt;li&gt;Helps you understand the business use case and architecture.&lt;/li&gt;
&lt;li&gt;Make you aware of the tech stack used.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Setting up the project on local
&lt;/h3&gt;

&lt;p&gt;Setting up a project will naturally force you to read the documentation.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Make sure, the APIs are working fine. &lt;/li&gt;
&lt;li&gt;In turn, you will get to know about external dependencies.&lt;/li&gt;
&lt;li&gt;Will help you to use IDE's features to explore the code faster.&lt;/li&gt;
&lt;li&gt;Setting up, and using debugging to understand the flow will be really helpful.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Going through unit tests
&lt;/h3&gt;

&lt;p&gt;A properly written unit test/ automation script can elaborate on how the code works, and what to expect from modules/functions.&lt;/p&gt;

&lt;p&gt;Not only this, but also one can start diving into actual code through the unit tests, to understand how the particular part of code works and produce the expected results for the test case(s).&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Next step or the other way around could be to find a bug or the case that is not covered in test suits already written.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Looking at the Pull requests
&lt;/h3&gt;

&lt;p&gt;PR(s) give you an idea of the current work being done, and what to expect in your upcoming tasks.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Take note of the feature requests and changes made as part of the development.&lt;/li&gt;
&lt;li&gt;Gives you an idea of code standards being used, eg: using &lt;strong&gt;CAPITAL&lt;/strong&gt; case for constants. This will enable you to write better and expected code in the future.&lt;/li&gt;
&lt;li&gt;Try to re-write the code after reading someone's PR. You'll see yourself more confident when actually working on your tasks. &lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Spending time with code
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Love, at first sight!&lt;/strong&gt; doesn't work with &lt;strong&gt;code&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;One needs to know the code and spend serious time to be in a relationship with the codebase.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Little extra time to study the code will help you build a mental map of how things are arranged and how to proceed to the solution of any given problem.&lt;/li&gt;
&lt;li&gt;Document, and make notes of your understanding over time.&lt;/li&gt;
&lt;li&gt;Focusing on small things at a time - Pick smaller bugs/tasks to think of solutions and try to solve them on your own.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Peer validation
&lt;/h3&gt;

&lt;p&gt;Have validation of your understanding from existing team members.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Convince for reverse KT sessions in addition to KT sessions.&lt;/li&gt;
&lt;li&gt;Indulge in pair programming if the other person agrees to it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It was all!&lt;br&gt;
I hope this will this would add some value to your journey of getting familiar with the new code base.&lt;/p&gt;

&lt;p&gt;Happy coding! 🧑‍💻 &lt;/p&gt;

&lt;p&gt;For more content like this and any suggestions, connect with me @ &lt;a href="https://www.linkedin.com/in/shivam-baghla/"&gt;https://www.linkedin.com/in/shivam-baghla/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>tutorial</category>
      <category>webdev</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
