<?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: Bisvarup Mukherjee</title>
    <description>The latest articles on DEV Community by Bisvarup Mukherjee (@bisvarup).</description>
    <link>https://dev.to/bisvarup</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%2F862411%2Fd13892e9-2dc7-4448-a9a1-c1e127101064.jpeg</url>
      <title>DEV Community: Bisvarup Mukherjee</title>
      <link>https://dev.to/bisvarup</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/bisvarup"/>
    <language>en</language>
    <item>
      <title>Running apache flink locally mac m1</title>
      <dc:creator>Bisvarup Mukherjee</dc:creator>
      <pubDate>Sat, 30 Jul 2022 18:17:00 +0000</pubDate>
      <link>https://dev.to/bisvarup/running-apache-flink-locally-mac-m1-fii</link>
      <guid>https://dev.to/bisvarup/running-apache-flink-locally-mac-m1-fii</guid>
      <description>&lt;p&gt;I have an intel mac m1 air and I want to install and run apache flink locally. Instead of installing correcrt jdk version and flink version, etc. I used docker.&lt;/p&gt;

&lt;p&gt;Step 1. Create docker network if it doesn't exist&lt;br&gt;
todo: check if it exists&lt;br&gt;
&lt;code&gt;docker network create flink-network&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Step 2. Set env variable in terminal 1&lt;br&gt;
&lt;code&gt;FLINK_PROPERTIES="jobmanager.rpc.address: jobmanager"&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Step 3. Launch JobManager in terminal 1&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; docker run \
    --rm \
    --name=jobmanager \
    --network flink-network \
    --publish 8081:8081 \
    --env FLINK_PROPERTIES="${FLINK_PROPERTIES}" \
    flink:latest jobmanager
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Step 4. Set env variable in terminal 2&lt;br&gt;
&lt;code&gt;FLINK_PROPERTIES="jobmanager.rpc.address: jobmanager"&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Step 5. Launch TaskManager in terminal 2&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker run \
    --rm \
    --name=taskmanager \
    --network flink-network \
    --env FLINK_PROPERTIES="${FLINK_PROPERTIES}" \
    flink:latest taskmanager
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Step 6. Open localhost UI&lt;br&gt;
&lt;code&gt;http://localhost:8081/#/overview&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Step 7. Submit a job&lt;br&gt;
&lt;code&gt;./bin/flink run examples/streaming/WordCount.jar&lt;/code&gt;&lt;br&gt;
This step assumes you have downloaded flink, we are not using their runtime execution, but just their examples and submitting jobs.&lt;/p&gt;

&lt;p&gt;Step 8. Install maven (mvn), this is needed for scaffolding some stuff later (not sure about this, todo)&lt;br&gt;
&lt;code&gt;brew install maven&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Step 9. Scaffold sample project&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; mvn archetype:generate \
    -DarchetypeGroupId=org.apache.flink \
    -DarchetypeArtifactId=flink-walkthrough-datastream-java \
    -DarchetypeVersion=1.16-SNAPSHOT \
    -DgroupId=frauddetection \
    -DartifactId=frauddetection \
    -Dversion=0.1 \
    -Dpackage=spendreport \
    -DinteractiveMode=false
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
    </item>
    <item>
      <title>Dev advice from 4year exp guy</title>
      <dc:creator>Bisvarup Mukherjee</dc:creator>
      <pubDate>Thu, 09 Jun 2022 04:02:12 +0000</pubDate>
      <link>https://dev.to/bisvarup/dev-advice-from-4year-exp-guy-1i6d</link>
      <guid>https://dev.to/bisvarup/dev-advice-from-4year-exp-guy-1i6d</guid>
      <description>&lt;ul&gt;
&lt;li&gt;In order to save time, don't give quick meaningless replies to issue tickets. The number of back and forth that will happen if your reply does not makes sense is less than you actually going in and making the fix.&lt;/li&gt;
&lt;li&gt;Take up less work if needed but spend 100% concentration on the work you take up&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>Creating mid-sized somewhat ambiguous projects</title>
      <dc:creator>Bisvarup Mukherjee</dc:creator>
      <pubDate>Sat, 04 Jun 2022 05:54:43 +0000</pubDate>
      <link>https://dev.to/bisvarup/creating-mid-sized-somewhat-ambiguous-projects-153p</link>
      <guid>https://dev.to/bisvarup/creating-mid-sized-somewhat-ambiguous-projects-153p</guid>
      <description>&lt;ul&gt;
&lt;li&gt;List the requirements of the system&lt;/li&gt;
&lt;li&gt;Create an actor diagram&lt;/li&gt;
&lt;li&gt;List the happy path&lt;/li&gt;
&lt;li&gt;List the alternate paths&lt;/li&gt;
&lt;li&gt;Sort the requirements in p0, p1 &amp;amp; p2&lt;/li&gt;
&lt;li&gt;Further sort the requirements in essence, risk, &amp;amp; complexity&lt;/li&gt;
&lt;li&gt;Create a sequence/flow diagram for happy path&lt;/li&gt;
&lt;li&gt;Create sequence/flow diagram for alternate path&lt;/li&gt;
&lt;li&gt;Focus on the feature that is most risky and that is not blocked on something first.&lt;/li&gt;
&lt;li&gt;Once risk is reduced by some means (may be class diagram / flow diagram) move on to the other areas&lt;/li&gt;
&lt;li&gt;Try to find commonality b/w the entities of the system&lt;/li&gt;
&lt;li&gt;Reduce complexity of the system and features&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>software</category>
      <category>projects</category>
    </item>
    <item>
      <title>Recommended way of creating software</title>
      <dc:creator>Bisvarup Mukherjee</dc:creator>
      <pubDate>Mon, 30 May 2022 03:46:34 +0000</pubDate>
      <link>https://dev.to/bisvarup/recommended-way-of-creating-software-2h4g</link>
      <guid>https://dev.to/bisvarup/recommended-way-of-creating-software-2h4g</guid>
      <description>&lt;p&gt;Inspired from some talks and books, here is the framework I would define&lt;/p&gt;

&lt;p&gt;Part I&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Write some tests of the part of the feature you want to make&lt;/li&gt;
&lt;li&gt;Make the tests fail (duh! there is no code to pass it)&lt;/li&gt;
&lt;li&gt;Write minimum code to pass the test cases&lt;/li&gt;
&lt;li&gt;Refactor&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Part II&lt;br&gt;
From OOA &amp;amp; D book&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Make the software/feature do what the customer wants it to do&lt;/li&gt;
&lt;li&gt;Apply OO principles to add flexibility&lt;/li&gt;
&lt;li&gt;Strive for a maintainable &amp;amp; flexible design&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;From Part I and Part II, the point 1 would correlate with Part I, points 1 &amp;amp; 2,  Part II points 2,3 would correlate with Part I point 3, the refactor phase.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>OO principles from OOA &amp; D</title>
      <dc:creator>Bisvarup Mukherjee</dc:creator>
      <pubDate>Mon, 30 May 2022 03:33:36 +0000</pubDate>
      <link>https://dev.to/bisvarup/oo-principles-from-ooa-d-3mb3</link>
      <guid>https://dev.to/bisvarup/oo-principles-from-ooa-d-3mb3</guid>
      <description>&lt;ul&gt;
&lt;li&gt;Encapsulate what varies&lt;/li&gt;
&lt;li&gt;Code to an interface rather than to an implementation&lt;/li&gt;
&lt;li&gt;Each class in your application should have one reason to change&lt;/li&gt;
&lt;li&gt;Classes are about behaviour and functionality&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>LLD of a system</title>
      <dc:creator>Bisvarup Mukherjee</dc:creator>
      <pubDate>Mon, 30 May 2022 03:31:55 +0000</pubDate>
      <link>https://dev.to/bisvarup/lld-of-a-system-2ifp</link>
      <guid>https://dev.to/bisvarup/lld-of-a-system-2ifp</guid>
      <description>&lt;ul&gt;
&lt;li&gt;Create a set of requirements that your system would handle.&lt;/li&gt;
&lt;li&gt;Create the use case diagram of the system, and make sure all the requirements are properly handled in the use case diagram.&lt;/li&gt;
&lt;li&gt;Do domain analysis, aka describe the problem in terms that the customer will be able to understand&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>Better estimate your features</title>
      <dc:creator>Bisvarup Mukherjee</dc:creator>
      <pubDate>Tue, 24 May 2022 16:05:45 +0000</pubDate>
      <link>https://dev.to/bisvarup/better-estimate-your-features-2k6h</link>
      <guid>https://dev.to/bisvarup/better-estimate-your-features-2k6h</guid>
      <description>&lt;ul&gt;
&lt;li&gt;Take time to consider planning the project, breaking down into tasks, &amp;amp; creating some groundwork. (2-3D)&lt;/li&gt;
&lt;li&gt;Writing in TDD format. Red-green-refactor. (Depends on project and dev experience)&lt;/li&gt;
&lt;li&gt;Design completeness. (2-3D)&lt;/li&gt;
&lt;li&gt;Design rework. (Depends)&lt;/li&gt;
&lt;li&gt;Content completeness. (1-2D)&lt;/li&gt;
&lt;li&gt;Content rework. (Depends)&lt;/li&gt;
&lt;li&gt;Creating proper test situation for local/stage testing (sometimes for some features there needs to be some groundwork done before that feature can be tested). (Depends, sometimes .5D, to 3-4D)&lt;/li&gt;
&lt;li&gt;Oncall shift.&lt;/li&gt;
&lt;li&gt;Unseen p0 items. (Depends)&lt;/li&gt;
&lt;li&gt;Vacation timeoff. (Depends)&lt;/li&gt;
&lt;li&gt;Sick timeoff. (Depends)&lt;/li&gt;
&lt;li&gt;Coworkers not having access to environment. (3-7D)&lt;/li&gt;
&lt;li&gt;KT incase you are taking timeoff and there is a replacement in your place. (1D)&lt;/li&gt;
&lt;li&gt;Coworkers who you have dependency on taking timeoffs. (2-3D)&lt;/li&gt;
&lt;li&gt;Design reveiw.(2-3D)&lt;/li&gt;
&lt;li&gt;Content review.(1-2D)&lt;/li&gt;
&lt;li&gt;Internal testing.(1W)&lt;/li&gt;
&lt;li&gt;Documentation.(2-3D)&lt;/li&gt;
&lt;li&gt;Create insights &amp;amp; queries.&lt;/li&gt;
&lt;li&gt;Craft feature emails to send to eng team (1D)&lt;/li&gt;
&lt;li&gt;Create PPTs and other forms of comms for higher leadership to demo the feature (1-2D).&lt;/li&gt;
&lt;li&gt;Adhoc interviews if you need to take them&lt;/li&gt;
&lt;li&gt;Mandatory adhoc courses&lt;/li&gt;
&lt;li&gt;Your new code breaking existing test cases&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;p.s1 Not all of these may be applicable for every feature, for example a small feature with &amp;lt;=2 storypoint may not need all of these considerations, but this framework would still help.&lt;/p&gt;

&lt;p&gt;p.s2 The estimates given above are assuming a mid sized project (2-3 months). &lt;/p&gt;

</description>
      <category>programming</category>
      <category>engineering</category>
      <category>software</category>
    </item>
    <item>
      <title>How to get into big tech</title>
      <dc:creator>Bisvarup Mukherjee</dc:creator>
      <pubDate>Sat, 21 May 2022 12:49:40 +0000</pubDate>
      <link>https://dev.to/bisvarup/how-to-get-into-big-tech-fg4</link>
      <guid>https://dev.to/bisvarup/how-to-get-into-big-tech-fg4</guid>
      <description>&lt;p&gt;Right now I am SWE 2 at Uber and previously I was a UI 2 at Flipkart, so here is my opinion on a few questions I receive.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q) How do you get interview calls?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Ans)From my personal experience, having a good college background helps in the initial years. If that is not the case for you, then getting you foot into one of the decent size brands also helps.&lt;/p&gt;

&lt;p&gt;From my personal experience, once I got into Flipkart, I was getting interview calls from renowned companies that I was not getting earlier.&lt;/p&gt;

&lt;p&gt;Now breaking into the first renowned company is the trick for many out there. For that I suggest to apply from all channels aka&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Apply on job postings on the company page&lt;/li&gt;
&lt;li&gt;Apply on Naukri&lt;/li&gt;
&lt;li&gt;Apply on other job portals&lt;/li&gt;
&lt;li&gt;Directly ping HRs&lt;/li&gt;
&lt;li&gt;Directly ping Engineering managers, many of them say they are hiring for their team.&lt;/li&gt;
&lt;li&gt;Ping engineers working on the company you are targeting.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Points 4,5,6 may get you referrals and that would help you get interviews. &lt;/p&gt;

&lt;p&gt;Closing thought, I feel it requires a bit of luck as well to get the interview call, so keep trying.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q) What kind of questions are asked during the interview? Specially DS questions?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Ans) Every specialization would have it's own set of rounds. &lt;/p&gt;

&lt;p&gt;For example for FE (frontend engineering) it maybe &lt;strong&gt;machine coding round&lt;/strong&gt; (where they may ask you to build some project) &lt;strong&gt;javascript round&lt;/strong&gt; (where they will assess your FE skills), &lt;strong&gt;design and architecture round&lt;/strong&gt; (where they will test your system design skills) &lt;strong&gt;coding round&lt;/strong&gt;(where they may ask you DS algo based questions) and finally a &lt;strong&gt;manager round&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;For DS algo based questions, I just did as many questions I could do (around 80 within a time period of 2-3 months) of leetcode mediums.&lt;br&gt;
Just make sure you touch the popular topics and cover some breadth. That should be enough for the most part.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
    </item>
  </channel>
</rss>
