<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>typeof just.in</title><description>Justin George&apos;s writing and interviews.</description><link>https://typeofjust.in</link><language>en</language><item><title>Coding In AI coding era</title><link>https://typeofjust.in/posts/coding-in-ai-agent-era</link><guid isPermaLink="true">https://typeofjust.in/posts/coding-in-ai-agent-era</guid><description>Coding has become boring and exciting in the AI coding era. You have access to enough knowledge to do almost anything, and at times you end up doing nothing. What I mean by AI coding Era here is - the availability of tools like Claude/Codex and other popular coding agents for the masses. What&apos;s exci</description><pubDate>Tue, 15 Sep 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Coding has become boring and exciting in the AI coding era. You have access to enough knowledge to do almost anything, and at times you end up doing nothing.&lt;/p&gt;
&lt;p&gt;What I mean by AI coding Era here is - the availability of tools like Claude/Codex and other popular coding agents for the masses.&lt;/p&gt;
&lt;h2&gt;What&apos;s exciting about this&lt;/h2&gt;
&lt;p&gt;As a developer, you feel invincible. Any task thrown at you - you can handle it.&lt;/p&gt;
&lt;p&gt;Even if it&apos;s a new domain,&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;you&apos;ll learn the domain and use cases in few hours&lt;/li&gt;
&lt;li&gt;use skills/prompts prepared by experts in the space&lt;/li&gt;
&lt;li&gt;build a prototype or plan to understand what works&lt;/li&gt;
&lt;li&gt;implement something in a few hours or days.&lt;/li&gt;
&lt;li&gt;ship that in a week or two.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;What&apos;s not exciting&lt;/h2&gt;
&lt;p&gt;You start with a task,&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ask an AI agent to research the topic&lt;/li&gt;
&lt;li&gt;build a plan around it&lt;/li&gt;
&lt;li&gt;ask an AI agent to build it&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;During each of these phases - we wait for the AI agent to work through the steps one by one.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;We wait&lt;/strong&gt;.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Of course - we can pick up other tasks when agents are working - but at some point, it&apos;s too much context switching. You might rush through any of the tasks that you are handling in parallel.&lt;/p&gt;
&lt;p&gt;No wonder people built &lt;a href=&quot;https://www.ycombinator.com/launches/OgV-chad-ide-the-first-brainrot-ide&quot;&gt;brainrot IDE&lt;/a&gt; to fight the boredom and found their way to YC.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Don&apos;t get me wrong - I love coding with AI agents. But at times you miss the joy of finding the right &lt;a href=&quot;https://stackoverflow.com/&quot;&gt;Stack Overflow&lt;/a&gt; answer&lt;br /&gt;
or putting your head down and shipping something all by yourself.&lt;/p&gt;
</content:encoded></item><item><title>Killing ideas faster</title><link>https://typeofjust.in/posts/killing-ideas-faster</link><guid isPermaLink="true">https://typeofjust.in/posts/killing-ideas-faster</guid><description>If you read my blog about the side projects/posts/side-project-endeavours I have done, you can clearly see that I have a problem. The problem is, whenever an idea strikes, I start building it : The problem I have made countless side projects. If I take a look at my drive, there are at least 50 proje</description><pubDate>Sat, 20 Sep 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;If you read my blog about the &lt;a href=&quot;https://typeofjust.in/posts/side-project-endeavours&quot;&gt;side projects&lt;/a&gt; I have done, you can clearly see that I have a problem. The problem is, whenever an idea strikes, I start building it :)&lt;/p&gt;
&lt;h2&gt;The problem&lt;/h2&gt;
&lt;p&gt;I have made countless side projects. If I take a look at my drive, there are at least 50 projects. About 15 of them might&apos;ve made it to the MVP (minimum viable product) and around 5–6 of them are actually launched.&lt;/p&gt;
&lt;p&gt;This is the cycle.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I get an idea.&lt;/li&gt;
&lt;li&gt;I  open the terminal, install Laravel or Next.js.&lt;/li&gt;
&lt;li&gt;Set up the boilerplate stuff (that&apos;s a lot).&lt;/li&gt;
&lt;li&gt;By the time I get to the idea, I usually lose interest.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So, the problem is clear. I get too excited about some ideas, jump into coding without giving much thought, and lose interest halfway through.&lt;/p&gt;
&lt;h3&gt;How it should be&lt;/h3&gt;
&lt;p&gt;Before jumping into even writing a single line of code, I&apos;ve learned to ask myself,&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Is this problem worth solving?&lt;/li&gt;
&lt;li&gt;Is this already solved, or can it be improved?&lt;/li&gt;
&lt;li&gt;Is this something that I&apos;m passionate about?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The third point is the most important one. If you are not passionate enough about something, the odds are that you won&apos;t go very far with it.&lt;/p&gt;
&lt;p&gt;The idea might be good, it might be worth solving. But without the passion driving you to build it, you might not go very far. At least that&apos;s how it works in my case.&lt;/p&gt;
&lt;h3&gt;The solution&lt;/h3&gt;
&lt;p&gt;I&apos;ve learned to deal with problems 1 and 2 with research.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;em&gt;Is this problem worth solving?&lt;/em&gt; Understand the problem, the users, and the pain points.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Is this already solved, or can it be improved?&lt;/em&gt; Understand the existing solutions, what are the limitations, etc.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Problem 3 is a bit tricky. I don’t think I can refrain from writing code. It’s a curse 😄&lt;/p&gt;
&lt;p&gt;But now there&apos;s a way to get some clarity in under an hour. This is where AI coding tools like v0 have been impactful. I can start with my ideas, and in a few minutes, I have a working prototype. I play around with it a little more, and I&apos;ll soon find out whether I care enough about this problem to build it.&lt;/p&gt;
&lt;p&gt;Within 30 minutes, I have a working prototype. Beyond the working prototype, I get greater clarity on whether I care enough about this problem to build it.&lt;/p&gt;
&lt;p&gt;And the good thing is, I’ve only spent significant time on one project, while discarding 5–10 others in just a couple of hours.&lt;/p&gt;
&lt;p&gt;It&apos;s not perfect, but it&apos;s a lot better than before.&lt;/p&gt;
</content:encoded></item><item><title>Working in a team</title><link>https://typeofjust.in/posts/how-to-work-in-a-team</link><guid isPermaLink="true">https://typeofjust.in/posts/how-to-work-in-a-team</guid><description>&gt; This is a guide that helped me while working in engineering and product teams for B2B SaaS products. This post is highly opinionated and focused on SaaS product and engineering teams. 1. Understand your role - Don’t just know your designation—understand your responsibilities. - Be clear about expe</description><pubDate>Sat, 09 Aug 2025 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;This is a guide that helped me while working in engineering and product teams for B2B SaaS products. This post is highly opinionated and focused on SaaS product and engineering teams.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;1. Understand your role&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Don’t just know your designation—understand your responsibilities.&lt;/li&gt;
&lt;li&gt;Be clear about expectations from your managers and peers, and strive to go above and beyond.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;2. Obsess about the product&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Understand the industry; know what’s happening around you. Be aware of industry leaders.&lt;/li&gt;
&lt;li&gt;Understand your customers and their goals—what are they trying to achieve?&lt;/li&gt;
&lt;li&gt;What innovations are driving the industry? What are the new trends?&lt;/li&gt;
&lt;li&gt;Know what your competitors are doing.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;3. Be open to learning new things&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Learn continuously. Don’t restrict your learning to your designation.&lt;/li&gt;
&lt;li&gt;Learn about product, marketing, industry, and design.&lt;/li&gt;
&lt;li&gt;You don’t have to be an expert in everything, but being aware of what’s happening in other fields will give you leverage.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;4. Let go of your ego&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Be open-minded.&lt;/li&gt;
&lt;li&gt;Be willing to learn from everyone; talk to leaders and experts in their areas of work.&lt;/li&gt;
&lt;li&gt;Even if you think you’re the expert, remember there’s always someone better than you at something.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;5. Talk to people from other departments; see how they work&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;You will learn a thing or two from talking to others about work.&lt;/li&gt;
&lt;li&gt;Always be curious. Be inspired and inspire others.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;6. Be a problem solver&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Don’t expect others to solve your problems for you. That won’t work in the long run.&lt;/li&gt;
&lt;li&gt;If you’re unable to arrive at a solution and want to discuss with someone else, make sure to share your findings and the solutions you’ve tried. That shows the effort you’ve put in before reaching out.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;7. Don’t expect hand-holding or spoon-feeding&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Bring ideas to the table and take initiative.&lt;/li&gt;
&lt;li&gt;Make sure you grab every opportunity you get.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;8. Be accountable&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;If you commit to getting something done, get it done—without someone having to follow up.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;9. Be kind to others&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Lend a helping hand when someone’s in need.&lt;/li&gt;
&lt;li&gt;Be nice to others, and there’s a good chance they’ll be nice to you.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;10. Be a manager of one&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://signalvnoise.com/posts/1430-hire-managers-of-one&quot;&gt;OG Advice ↗&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title>AI, Interns, and the Changing Face of Frontend Hiring</title><link>https://typeofjust.in/posts/ai-interns-frontend-hiring</link><guid isPermaLink="true">https://typeofjust.in/posts/ai-interns-frontend-hiring</guid><description>Over the last five years, we&apos;ve had many final-year college students join us as frontend interns. We used various methods to shortlist candidates in the first round: take-home assignments, online tools to build a small UI in a few hours, and even pen-and-paper assignments yes, you heard that right. </description><pubDate>Tue, 08 Jul 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Over the last five years, we&apos;ve had many final-year college students join us as frontend interns.&lt;/p&gt;
&lt;p&gt;We used various methods to shortlist candidates in the first round: take-home assignments, online tools to build a small UI in a few hours, and even pen-and-paper assignments (yes, you heard that right).&lt;/p&gt;
&lt;p&gt;All of this worked well over the last few years. However, I wanted to move on from pen-and-paper assignments, as they feel outdated and make evaluation difficult.&lt;/p&gt;
&lt;p&gt;I asked the talent acquisition team to assign a take-home project, give candidates two days to build the UI, and have them share the code via GitHub and host it online.&lt;/p&gt;
&lt;p&gt;The assignments typically involve building something like a small calendar or a multi-step form.&lt;/p&gt;
&lt;p&gt;Everything went well—until this year.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;This year, every assignment appeared to be AI-generated. I&apos;m not against students using AI to build their assignments.&lt;/p&gt;
&lt;p&gt;The first problem is that, from each college, nearly 80–100 students take up this assignment. The majority of the assignments look the same: the code is readable and neat, so we end up shortlisting most of them.&lt;/p&gt;
&lt;p&gt;The second problem arose when I conducted three interviews. I deliberately spent 15–30 minutes with each candidate to understand their knowledge of the assignments they had built.&lt;/p&gt;
&lt;p&gt;I was disappointed with all three interviews, as none of the candidates could answer basic questions—questions essential for building those impressive assignments.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;There are a few ways to tackle this.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Use an online interview platform with plagiarism checks to filter out some candidates. But this discourages the use of AI tools, which I don&apos;t want.&lt;/li&gt;
&lt;li&gt;Look at the students&apos; GitHub profiles or what they&apos;ve built. This is a solid step, but so far, I haven&apos;t seen many quality web apps from students.&lt;/li&gt;
&lt;li&gt;Go back to the good old pen-and-paper assignment—which feels outdated!&lt;/li&gt;
&lt;/ol&gt;
&lt;hr /&gt;
&lt;p&gt;AI coding tools are definitely improving the productivity of experienced developers. But I feel newcomers are at a disadvantage. They get caught up in &quot;vibe-coding&quot; and build things without realizing how everything works under the hood.&lt;/p&gt;
</content:encoded></item><item><title>Side project endeavours</title><link>https://typeofjust.in/posts/side-project-endeavours</link><guid isPermaLink="true">https://typeofjust.in/posts/side-project-endeavours</guid><description>Finding other people who love the products you build brings great joy. And that&apos;s what led me to create side projects. I do not deny all the glitters of entrepreneurship, the MRR, ARR, etc.. impacted me, but the passion for building things was the driving force, always. I&apos;ve built a few products, so</description><pubDate>Sun, 06 Apr 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Finding other people who love the products you build brings great joy. And that&apos;s what led me to create side projects. I do not deny all the glitters of entrepreneurship, the MRR, ARR, etc.. impacted me, but the passion for building things was the driving force, always.&lt;/p&gt;
&lt;p&gt;I&apos;ve built a few products, some were paid, and most were free. But all of them have something in common. None of them really took off.&lt;/p&gt;
&lt;p&gt;Sharing all the projects I&apos;ve released (there are more, which did not see the public light), and what has happened to them.&lt;/p&gt;
&lt;h2&gt;PaperOak, a free RSS reader, for web and Android&lt;/h2&gt;
&lt;p&gt;I came across Feedly, an RSS reader. I found it very useful, articles from multiple blogs in one place. But one problem, the search in Feedly was limited. If you need a better search, upgrading to premium was the solution.&lt;/p&gt;
&lt;h4&gt;Inspiration&lt;/h4&gt;
&lt;p&gt;Simple things like search should not be a paid feature.&lt;br /&gt;
This is not a strong enough reason to build something, but sometimes, this is enough as well. There are products out there that provide free services to their paid counterparts.&lt;/p&gt;
&lt;h4&gt;Launch and growth&lt;/h4&gt;
&lt;p&gt;With the help of my friend, we started the development. We decided to take Laravel PHP for the backend, React for the web app, and the android app on the side.&lt;/p&gt;
&lt;p&gt;After developing for a couple of months, the app was released in the play store, and a PWA (Progressive Web App) also. Things went smooth for a while, we had about 2000 users in about 7 months and we even pitched the idea to a local startup accelerator (we didn’t get that though 😀).&lt;/p&gt;
&lt;h4&gt;What happened then&lt;/h4&gt;
&lt;p&gt;In the next 2 months, we received an email from Google talking about paperoak violating Google’s privacy policy, and our developer account was terminated, taking our app offline.&lt;/p&gt;
&lt;p&gt;That was s surprise, and chasing Google‘s team for what policies we violated was futile.&lt;/p&gt;
&lt;p&gt;It didn’t make sense to continue without a native app. And that was it, Paperoak was dead.&lt;/p&gt;
&lt;h4&gt;Lessons learned&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Big companies can screw you. Businesses that are built on top of third-party services (Google Play, App store, Facebook games, etc...), these providers have the capacity and capability to modify the rules, pull the plug, and offer no real justification.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2&gt;Raileo, website monitoring tool&lt;/h2&gt;
&lt;p&gt;Raileo is a tool that does monitor different aspects of a website. It was a feature-rich product with capabilities like&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Uptime&lt;/li&gt;
&lt;li&gt;SSL validity&lt;/li&gt;
&lt;li&gt;Pagespeed scores&lt;/li&gt;
&lt;li&gt;Keyword monitoring&lt;/li&gt;
&lt;li&gt;Team-based billing&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Inspiration&lt;/h4&gt;
&lt;p&gt;I was working as a Front-end developer at Stayabode. We started measuring the webpage performance impact after each release, using the lighthouse tool. We maintained this in an excel sheet for about 2 months, and it was not easy to maintain. So, I decided to build something small to tackle this challenge.&lt;/p&gt;
&lt;h4&gt;Launch and growth&lt;/h4&gt;
&lt;p&gt;I started working on pagespeed scores, using lighthouse API, a neat dashboard was built to measure the performance, accessibility, and SEO and it worked well for us.&lt;br /&gt;
To offer a complete package (website monitoring), I decided to add more features (that would bring users they said). While introducing features like keyword monitoring and status pages, I started a complete rewrite of the codebase, considering maintainability and as a startup. Within 2-3 months, launched it to the world.&lt;/p&gt;
&lt;h4&gt;What happened then&lt;/h4&gt;
&lt;p&gt;Raileo had about 800 users on the free plan (in 1 year), and none of them upgraded. I forgot to mention, that I’m so bad at marketing.&lt;/p&gt;
&lt;p&gt;As an A/B test, I removed the free plan and moved to a 14-day free trial. And in a month, Raileo got 1 paying customer ($10/month), and I couldn’t be happier.&lt;/p&gt;
&lt;p&gt;I continued working on it, improving the UX, and bringing various settings into modules. But after about 1.5 years of working on it, I realized that I cannot make this a success. The product was solid, but no one to sell it.&lt;/p&gt;
&lt;p&gt;I decided to put Raileo for acquisition in &lt;a href=&quot;https://microacquire.com/&quot;&gt;microacquire&lt;/a&gt;. Surprisingly I got 30+ requests. And I went with the one where they had a team to maintain the project and I’ll not have to support this any longer. And I got out.&lt;/p&gt;
&lt;p&gt;Raileo will have a special place in my mind. Raileo helped me to think from a user perspective, to build a better and mature system, to build a system that does about 5000+ URL monitoring every 5 seconds, a journey that I’ll never forget&lt;/p&gt;
&lt;h4&gt;Lessons learned&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Release sooner. Roll out the basic features that your product requires and see if that raises any interest among users.&lt;/li&gt;
&lt;li&gt;Go lean. Stop adding features you think someone needs. Unless you have users, spend your time marketing instead of adding new features.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2&gt;PWA inside, a directory of Progressive Web Apps&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://web.dev/progressive-web-apps/#introduction&quot;&gt;Progressive Web app&lt;/a&gt; are websites that behave more or less like a native app. Users can install them, access them offline, etc...&lt;/p&gt;
&lt;h4&gt;Inspiration&lt;/h4&gt;
&lt;p&gt;We have a marketplace or store for android apps and iPhone apps. PWA has been around for a while, but they have not gained that much visibility. A store/marketplace that lists all these PWA sounded useful, a place where people can find apps that can be installable.&lt;/p&gt;
&lt;h4&gt;Launch and growth&lt;/h4&gt;
&lt;p&gt;I started building a solution. Started collecting PWAs from other directories and added them. Slowly gave the power to users to add their own PWAs. PWA Store had around 1000 submissions and minimal daily visitors.&lt;/p&gt;
&lt;h4&gt;What happened then&lt;/h4&gt;
&lt;p&gt;There was some manual work in adding new submissions.  And I couldn’t (didn’t) spend any time marketing this, except for the &lt;a href=&quot;https://www.producthunt.com/products/pwa-inside&quot;&gt;Product Hunt launch&lt;/a&gt;. And most of all, I started losing interest in the idea (how typical). I stopped adding new PWAs and that was it. After a year, I discontinued PWA Inside&lt;/p&gt;
&lt;h4&gt;Lessons learned&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Unless the process can be automated, the tasks become tedious and less interesting.&lt;/li&gt;
&lt;li&gt;I think there&apos;s an education gap when it comes to PWA. Definitely, developers and tech enthusiasts might know about it, but not everyday users.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2&gt;Stats PH, Product Hunt launch statistics&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://www.producthunt.com/&quot;&gt;Product Hunt&lt;/a&gt; is a community where makers/entrepreneurs/indie hackers launch their projects/products/side hustles (there are a lot of names).&lt;/p&gt;
&lt;p&gt;&lt;em&gt;By the way, I&apos;m not very happy with the name (Stats PH) I came up with 😀&lt;/em&gt;&lt;/p&gt;
&lt;h4&gt;Inspiration&lt;/h4&gt;
&lt;p&gt;This was a fun project, not with a business idea in mind. I wanted to see the launch data, trends, and statistics inside the Product Hunt platform. If you search the internet, there are lots of articles sharing &quot;tips&quot; on how to do a Product Hunt launch. I thought some backing these claims would be nice to see.&lt;/p&gt;
&lt;h4&gt;What happened then&lt;/h4&gt;
&lt;p&gt;I got busy at work. Had no desire to carry this forward.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;These are a few of the projects rolled out to the public. There are at least 5+ other projects which are fully built but not rolled out for various reasons (I have the developer-entrepreneur curse. Diving right into code whenever you get some project idea, without doing any idea validation ).&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I would rather be a failed entrepreneur than someone who never tried. Because even a failed entrepreneur has the skill set to make it on their own. — Naval&lt;/p&gt;
&lt;/blockquote&gt;
</content:encoded></item><item><title>Influence People - Dale Carnegie - Book Summary</title><link>https://typeofjust.in/posts/win-friends-and-influence-people-dale-carnegie</link><guid isPermaLink="true">https://typeofjust.in/posts/win-friends-and-influence-people-dale-carnegie</guid><description>&quot;How to win friends and influence people&quot; is a book by Dale Carnegie. The reason for me to read this book is, I have difficulty talking to people, coming up with topics to talk about, and keeping the conversation going. I wouldn&apos;t have cared much about it, but the nature of my job demands that to so</description><pubDate>Sun, 09 Mar 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&quot;How to win friends and influence people&quot; is a book by Dale Carnegie.&lt;/p&gt;
&lt;p&gt;The reason for me to read this book is, I have difficulty talking to people, coming up with topics to talk about, and keeping the conversation going.&lt;/p&gt;
&lt;p&gt;I wouldn&apos;t have cared much about it, but the nature of my job demands that to some extent. Leading a team and building product, demads you to get out of my comfort zone and talk to people.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;The book talks about the following points.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Don&apos;t criticize, condemn or complain. Convey your message in a way that the other person understand the reasoning behind it. When criticizing, the other person will be defensive and things might not go the way you hoped for. Don&apos;t nag.&lt;/li&gt;
&lt;li&gt;Give honest and sincere appreciation. People love to be appreciated and complimented for their work.&lt;/li&gt;
&lt;li&gt;Be interested in what others want. Ask questions, listen to them, and understand their perspective.&lt;/li&gt;
&lt;li&gt;Smile :)&lt;/li&gt;
&lt;li&gt;Remember the name of the people you are meeting or interacting with. It makes them feel important.&lt;/li&gt;
&lt;li&gt;Be a good listener. Instead of talking about yourself, listen to what the other person has to say. Talk about their interests rather than yours. Make them feel important, sincerely.&lt;/li&gt;
&lt;li&gt;Look for areas of agreement, than disagreement. Avoid arguments. If you are wrong, admit it, apologize, and move on.&lt;/li&gt;
&lt;li&gt;When talking with people, don&apos;t start off with the things you differ on. Start with the things you agree on. Be friendly.&lt;/li&gt;
&lt;li&gt;Let the other person feel that the idea is theirs.&lt;/li&gt;
&lt;li&gt;Try to see things from other person&apos;s point of view. &lt;em&gt;Dale Carenige states that even if this is the only value you take away from this book, this will change your life.&lt;/em&gt; Be empathetic and sympathetic.&lt;/li&gt;
&lt;li&gt;How to get things done with people? Make sure the work is interesting, important, and challenging. Stimulate competition.&lt;/li&gt;
&lt;li&gt;If you want to criticize/improve someone, begin with praise and honest appreciation. A good way to make people at ease is talk about your own mistakes before criticizing the other person.&lt;/li&gt;
&lt;li&gt;Ask questions instead of giving orders. Its a slight difference in the way to deliver your message.&lt;/li&gt;
&lt;li&gt;Even if you are right and the other person is definitely wrong, let them save face.&lt;/li&gt;
&lt;li&gt;Everyone likes to be appreciated. Praise the slightest improvement and praise every improvement.&lt;/li&gt;
&lt;li&gt;If you want someone to improve, encourage them. Make them feel like whatever they are doing wrong/not doing, is easy to correct.&lt;/li&gt;
&lt;/ol&gt;
&lt;hr /&gt;
&lt;p&gt;I had a hard time reading this book. &lt;strong&gt;The points mentioned in this book are solid and valid, no doubt about it.&lt;/strong&gt;&lt;br /&gt;
But they were told with too many examples to my liking. Nonetheless, a good read.&lt;/p&gt;
&lt;hr /&gt;
</content:encoded></item><item><title>Why I like driving</title><link>https://typeofjust.in/posts/why-i-like-driving</link><guid isPermaLink="true">https://typeofjust.in/posts/why-i-like-driving</guid><description>I&apos;ve been driving a bike for 8 years and a car for about 5 years. Driving always felt liberating except in Bangalore traffic. Long drives were nice, not tiring, and something I looked forward to. Even a small drive was refreshing and enjoyable. I was never able to figure out why I liked it so much. </description><pubDate>Sun, 06 Oct 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I&apos;ve been driving a bike for 8 years and a car for about 5 years. Driving always felt liberating (except in Bangalore traffic).&lt;/p&gt;
&lt;p&gt;Long drives were nice, not tiring, and something I looked forward to. Even a small drive was refreshing and enjoyable.&lt;/p&gt;
&lt;p&gt;I was never able to figure out why I liked it so much. I don&apos;t drive too fast, I wasn&apos;t a speed junky. I kept within the limits and enjoyed driving.&lt;/p&gt;
&lt;p&gt;One epiphany I had was &quot;I like driving because I&apos;m in control&quot;.&lt;/p&gt;
&lt;p&gt;In life, we go through a lot of things. Many things you don&apos;t have control over just happen to you.&lt;/p&gt;
&lt;p&gt;All you can do is, go with the flow. You can&apos;t slow down if you feel like, you can&apos;t go fast just because you want to.&lt;/p&gt;
&lt;p&gt;You play with the cards you dealt with, and you try to make the best out of it.&lt;/p&gt;
&lt;p&gt;Driving on the other hand, you press a pedal to stop and step on another pedal to go faster. It&apos;s just within your reach.&lt;/p&gt;
</content:encoded></item><item><title>Running away from Internet</title><link>https://typeofjust.in/posts/running-away-from-internet-and-phone</link><guid isPermaLink="true">https://typeofjust.in/posts/running-away-from-internet-and-phone</guid><description>When I was in school, we had no computer at home. My dad had a basic phone which could make phone calls, send messages and play snake. For any internet usage, I had to go to the nearest internet cafe. In college, I didn&apos;t have a personal computer/laptop until the second year 2012. Until then, the de</description><pubDate>Sat, 14 Sep 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;When I was in school, we had no computer at home. My dad had a basic phone which could make phone calls, send messages and play snake.&lt;br /&gt;
For any internet usage, I had to go to the nearest internet cafe.&lt;/p&gt;
&lt;p&gt;In college, I didn&apos;t have a personal computer/laptop until the second year (2012). Until then, the desktops placed inside the hostel library were the solution.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;I was reaching out&lt;/strong&gt; to consume internet via internet cafe or hostel library.&lt;/p&gt;
&lt;p&gt;Now, the internet is with me, all time, everywhere I go. And I&apos;m trying to get rid of it.&lt;/p&gt;
&lt;p&gt;In the last few years, I&apos;ve noticed the internet (through phone and laptop) takes up a hefty amount of my time.&lt;/p&gt;
&lt;p&gt;I would&apos;ve never thought a situation like this would come. That I would get tired of watching YouTube videos, movies and scroll through internet.&lt;/p&gt;
&lt;p&gt;In the last 5-6 months, I&apos;ve realized that getting rid of this addiction is not simple. It&apos;s more than willpower and determination.&lt;/p&gt;
&lt;p&gt;The phone is just a reach to the pocket away, with the notification sounds and the unlimited network data.&lt;/p&gt;
&lt;p&gt;I&apos;m battling phone dependency with the phone itself.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Setting 30 minutes daily usage on YouTube&lt;/li&gt;
&lt;li&gt;Uninstalled Twitter from phone, logged out the browser session. Twitter is accessible through laptop only.&lt;/li&gt;
&lt;li&gt;I never bothered to try out Instagram and I&apos;m glad I didn&apos;t. Got rid of Facebook ~8 years ago.&lt;/li&gt;
&lt;li&gt;Prime Video, Netflix uninstalled from Phone. Keeping Hotstar only for English Premier League. Probably I should uninstall that too and watch on Laptop.&lt;/li&gt;
&lt;li&gt;Sleep mode activated from 11:00 PM to 6:45AM, making only Contacts, Messages and Phone apps accessible.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I wish getting rid of the smart phone itself was easier. But with the convenience of Google Maps, Google Pay and WhatsApp video calling, I don&apos;t see this&lt;br /&gt;
happening anytime soon.&lt;/p&gt;
&lt;p&gt;When I think about the restrictions I&apos;ve put on the phone usage, makes me chuckle. Trying a full 180 in 10 years, from desperately trying to get online to&lt;br /&gt;
desperatly trying to get off of it.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;From trying to consume internet to internet consuming you&lt;/strong&gt;, peddling my way back to the old days.&lt;/p&gt;
</content:encoded></item><item><title>More than 9 to 5</title><link>https://typeofjust.in/posts/more-than-nine-to-five</link><guid isPermaLink="true">https://typeofjust.in/posts/more-than-nine-to-five</guid><description>&lt;Dictionary word=&quot;Narayana Murthy&quot; explanation=&quot;Narayana Murthy is co-founder of Infosys, an MNC based out of India&quot; /&gt; said India&apos;s work culture needs to change and that youngsters should be prepared to work for 70 hours a week. That created some spark in the industry. I found myself backing that s</description><pubDate>Sun, 01 Sep 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;strong&gt;Narayana Murthy&lt;/strong&gt; said India&apos;s work culture needs to change and that youngsters should be prepared to work for 70 hours a week.&lt;br /&gt;
That created some spark in the industry.&lt;/p&gt;
&lt;p&gt;I found myself backing that suggestion to some extent. If you look at my &lt;a href=&quot;https://typeofjust.in/career&quot;&gt;career&lt;/a&gt;, each job change required a lot of learning. Moving from Java to PHP, then to React&lt;br /&gt;
and Node.js, all those were possible with late-night learning, and building things.&lt;/p&gt;
&lt;p&gt;Over the years, I did a lot of &lt;a href=&quot;https://typeofjust.in/posts/side-project-endeavours&quot;&gt;side projects&lt;/a&gt; as well. None of this was made during my 9-5, but after that. Maybe 10-1 (in the night) and weekends.&lt;/p&gt;
&lt;p&gt;Returning to what Narayana Murthy said, he might be talking about spending 70 hours for the company. I have mixed feelings about it.&lt;/p&gt;
&lt;p&gt;According to me, everyone&apos;s career goal should be to learn, improve, and excel, both personally and professionally. If you think the company can help you reach your potential,&lt;br /&gt;
I&apos;d definitely spend more time there, considering I&apos;m fairly compensated well.&lt;/p&gt;
&lt;p&gt;But if my corporate job is a dead end from a learning perspective after job hours will be spent on learning and practicing what I like and what I want.&lt;/p&gt;
&lt;p&gt;In the long term, both approaches will work, since you are upskilling on a continuous basis.&lt;/p&gt;
&lt;p&gt;Have a long-term goal, work towards it, and spend your hours &amp;amp; days wisely.&lt;/p&gt;
&lt;p&gt;To summarise,&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A strict 9-5 doesn&apos;t have to work for your career, especially if you are starting out.&lt;/li&gt;
&lt;li&gt;If you have a boring job that you don&apos;t like, spend your spare time learning what you love and improve yourself. Do projects and use that as a leverage for your next move.&lt;/li&gt;
&lt;li&gt;If you are doing what you love at your current job, push yourself &lt;u&gt;if you want&lt;/u&gt; to learn more and make it big.&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>Better Frontend Developer resume</title><link>https://typeofjust.in/posts/better-frontend-developer-resume</link><guid isPermaLink="true">https://typeofjust.in/posts/better-frontend-developer-resume</guid><description>I&apos;ve been reviewing frontend resumes for my team for about 2 years, and I&apos;ve reviewed at least 500 of them. There are a few things that I look forward to in the resume based on the level of experience. Resume of a Fresher How I would categorize Fresher is someone who is right out of college or has l</description><pubDate>Fri, 19 Apr 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I&apos;ve been reviewing frontend resumes for my team for about 2 years, and I&apos;ve reviewed at least 500 of them. There are a few things that I look forward to in the resume based on the level of experience.&lt;/p&gt;
&lt;h2&gt;Resume of a Fresher&lt;/h2&gt;
&lt;p&gt;How I would categorize Fresher is someone who is right out of college or has less than 1 year of industry experience. Even though they might&apos;ve been doing some freelancing during their college days, they don&apos;t have professional experience in a company.&lt;/p&gt;
&lt;h4&gt;Build things&lt;/h4&gt;
&lt;p&gt;As a Fresher, you have to keep learning. Pick what you are interested in and be good at it. This could be CSS, React, Angular,  etc.., whatever you like, learn by building projects.&lt;/p&gt;
&lt;p&gt;I often see lot of projects such as &quot;Netflix Clone&quot;, &quot;Amazon Clone&quot;, &quot;To-Do application&quot; which are mostly taught by YouTube tutorials. Although these are fine, I&apos;m really bored of seeing them. You don&apos;t stand out in the crowd.&lt;/p&gt;
&lt;p&gt;But, even if you are doing these projects, do it your way. Instead of cloning them as they are, put your own twist to it, make it better or playful.&lt;/p&gt;
&lt;p&gt;What I would suggest is, after learning the basics, build something on your own. If you ask me, here&apos;s how I might do it.&lt;/p&gt;
&lt;p&gt;I&apos;ll go to &lt;a href=&quot;https://dribbble.com/&quot;&gt;dribbble&lt;/a&gt; or some other design community, find a good design, such as &lt;code&gt;Dashboard&lt;/code&gt; or &lt;code&gt;Landing Page&lt;/code&gt; and try to replicate it. The plus side of this is, you will challenge yourself more, start building from scratch, and build something completely different.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Build at-least 3 to 5&lt;/strong&gt; good projects, push the code to GitHub, and use GitHub pages to publish them.&lt;/p&gt;
&lt;p&gt;Every time I review freshers website, I go through their GitHub profile (if they&apos;ve mentioned one), I check out the live projects and the code.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;1-5 years of experience&lt;/h2&gt;
&lt;p&gt;I would follow the same approach to some extent for this category as well. But the difference is, candidates who fall in to this division have more professional experience to put in their resumes.&lt;/p&gt;
&lt;p&gt;So, if they have done projects and added them to GitHub, that&apos;ll definitely be a plus. On top of it, I&apos;ll check what have they&apos;ve worked on in their company.&lt;/p&gt;
&lt;p&gt;You can explain about the complex tasks that you have undertaken, the interesting problems you tackled, and the impact you made.&lt;/p&gt;
&lt;p&gt;Usually, I see a few red flags in this category.&lt;/p&gt;
&lt;h3&gt;Red flags&lt;/h3&gt;
&lt;p&gt;At times, I see candidates saying &quot;Spearheaded the development of this feature, which added $15k to the MRR,&quot; and similar things like that.&lt;/p&gt;
&lt;p&gt;This statement is very hard for me to evaluate against a frontend developer. I&apos;m not questioning the capabilities as a frontend developer, but the feature development probably included a lot of other folks as well. Backend developer, Product Manager, QA Engineer, Designer etc..&lt;/p&gt;
&lt;p&gt;If such resumes are shortlisted, I ask what their role was in the above outcome and how they contributed to it. Most of the time, it&apos;s as simple as doing whatever they are told. So taking the whole credit for something doesn&apos;t sound right to me.&lt;/p&gt;
&lt;p&gt;Another red flag I often see is, statements like,&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&quot;did so and so to improve the pagespeed by 15%&quot;&lt;/li&gt;
&lt;li&gt;&quot;Changed the onboarding flow to improve the customer conversion by 70%.&quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Although statements like these are valid, when asked about how they came about these metrics and numbers, most of the time they don&apos;t have a clear answer.&lt;/p&gt;
&lt;p&gt;So, my advice is, if you have done it and measured it, be ready to explain it. Be honest with what you put in your resume.&lt;/p&gt;
&lt;p&gt;Once the interview starts, the interviewer will be able to cut through all the &lt;em&gt;BS&lt;/em&gt; you&apos;ve written there.&lt;/p&gt;
&lt;h2&gt;&amp;gt; 5 years of experience&lt;/h2&gt;
&lt;p&gt;All of the above points are applicable to senior folks as well. Often, I came across resumes that talked about the basics as something great.&lt;/p&gt;
&lt;p&gt;For eg:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&quot;I Worked with React hooks and class components to speed up the development process.&quot;&quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is such a basic React 101 you should not be boasting about. Senior resumes should talk about the complex problems they have solved and the impact they have had on the company, the team, and the product.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Build things, be experimental, and be adventurous. Don&apos;t play it safe if you want to stand out.&lt;/li&gt;
&lt;li&gt;Be honest with what you put in your resume.&lt;/li&gt;
&lt;li&gt;Be ready to explain what you&apos;ve written in your resume.&lt;/li&gt;
&lt;li&gt;Learn constantly and keep improving.&lt;/li&gt;
&lt;/ol&gt;
</content:encoded></item><item><title>Subscriptions</title><link>https://typeofjust.in/posts/subscriptions</link><guid isPermaLink="true">https://typeofjust.in/posts/subscriptions</guid><description>Below are the resources I use to keep in touch with the rest of the world. Tech Newsletters 1. Bytes JavaScript newsletterhttps://bytes.dev/share/YmllZ2UtdG9uZ3VlLTEuanBn 2. Bytes React Newsletterhttps://reactnewsletter.com/ 3. Performance Newsletterhttps://perf.email/ 4. Ness Labshttps://nesslabs.c</description><pubDate>Fri, 20 Oct 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Below are the resources I use to keep in touch with the rest of the world.&lt;/p&gt;
&lt;h2&gt;Tech&lt;/h2&gt;
&lt;h3&gt;Newsletters&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;https://bytes.dev/share/YmllZ2UtdG9uZ3VlLTEuanBn&quot;&gt;Bytes JavaScript newsletter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://reactnewsletter.com/&quot;&gt;Bytes React Newsletter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://perf.email/&quot;&gt;Performance Newsletter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://nesslabs.com/&quot;&gt;Ness Labs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.joshwcomeau.com/&quot;&gt;Josh W Comeau&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://dmitripavlutin.com/&quot;&gt;Dmitri Pavlutin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://overreacted.io/&quot;&gt;Overreacted&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://tkdodo.eu/blog&quot;&gt;TkDodo&apos;s blog&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;YouTube Channels&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/@jherr&quot;&gt;Jack Herrington&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/@WebDevSimplified&quot;&gt;Web Dev Simplified&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/@Honeypotio&quot;&gt;Honeypot&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Twitter&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;https://twitter.com/jh3yy&quot;&gt;jhey&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://twitter.com/addyosmani&quot;&gt;Addy Osmani&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://twitter.com/stratechery&quot;&gt;Stratechery&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://twitter.com/googlesearchc&quot;&gt;Google Search Central&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://twitter.com/_ericelliott&quot;&gt;Eric Elliott&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
</content:encoded></item><item><title>Technical architects should write code more often</title><link>https://typeofjust.in/posts/technical-architects-should-write-code-often</link><guid isPermaLink="true">https://typeofjust.in/posts/technical-architects-should-write-code-often</guid><description>When I got promoted to Associate Frontend Architect, I was given few goals. 1. Help with the foundation of the new product. 2. Build a component library that will be used across all of our products. 3. Make the current product better. 1 and 2 were refreshing challenges, setting up the right practice</description><pubDate>Sat, 01 Jul 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;When I got promoted to Associate Frontend Architect, I was given few goals.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Help with the foundation of the new product.&lt;/li&gt;
&lt;li&gt;Build a component library that will be used across all of our products.&lt;/li&gt;
&lt;li&gt;Make the current product better.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;1 and 2 were refreshing challenges, setting up the right practices, and building the right way (there is no one right way).&lt;/p&gt;
&lt;p&gt;So that&apos;s exactly what I did. After working together with the team to set up the base, everything was handed over to the team and I moved on to other tasks. Few of the things covered in the initial process were,&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Spent time to understand how to build quality components.&lt;/li&gt;
&lt;li&gt;How to structure the project/code in a scalable way.&lt;/li&gt;
&lt;li&gt;What libraries to use, keeping long term in mind.&lt;/li&gt;
&lt;li&gt;Rigorous PR review to make sure we stick to the patterns.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Everything turned out well, or at least that&apos;s what I thought.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;After few months, I had to do minimal changes to the code, and I realized, there are some drawbacks to the laid-out approach in certain areas. To be fair, this looked good on paper and in the PR review, but when I had to work on it, few approaches were limited, error-prone, and complex.&lt;/p&gt;
&lt;p&gt;That gave me a new realization. Even though some implementations look good from a theoretical point of view or on small scale, as the app grows, these could create bottlenecks. It does not matter how strict the PR reviews are, certain things will be overlooked.&lt;/p&gt;
&lt;p&gt;I decided to implement features in the app now and then. Considering I have to contribute to multiple applications, I should make sure my tasks,&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Does not create bottlenecks in the delivery process.&lt;/li&gt;
&lt;li&gt;Have enough time to implement. This will ensure that I don&apos;t fall behind even if my attention is moved to some other project for a while.&lt;/li&gt;
&lt;li&gt;Complex enough to work with different modules.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The above measures helped me to stay updated with the codebase, improve the PR reviews, and improve the system, constantly.&lt;/p&gt;
</content:encoded></item><item><title>Zeigarnik Effect - Laws of UX</title><link>https://typeofjust.in/posts/zeigarnik-effect-laws-of-ux</link><guid isPermaLink="true">https://typeofjust.in/posts/zeigarnik-effect-laws-of-ux</guid><description>Zeigarnik Effect is a study by Bluma Zeigarnikhttps://en.wikipedia.org/wiki/Bluma_Zeigarnik which talks about how people remember interrupted tasks more than the completed or uninterrupted tasks. The study was done in various stages on about ~1000 participants. The experiment goes on like this. - Ea</description><pubDate>Fri, 10 Feb 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Zeigarnik Effect is a study by &lt;a href=&quot;https://en.wikipedia.org/wiki/Bluma_Zeigarnik&quot;&gt;Bluma Zeigarnik&lt;/a&gt; which talks about how people remember interrupted tasks more than the completed or uninterrupted tasks. The study was done in various stages on about ~1000 participants.&lt;/p&gt;
&lt;p&gt;The experiment goes on like this.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Each of the participants were given a number of tasks.&lt;/li&gt;
&lt;li&gt;Some of them were interrupted in the middle of a task and were asked to move on to next.&lt;/li&gt;
&lt;li&gt;Sometimes, the participants were allowed to finish the tasks.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;After the tasks were attended after a given time, participants were asked to recall the tasks they did. Partipants were able to re-collect about the interrupted tasks more than the completed tasks.&lt;/p&gt;
&lt;p&gt;You can read the complete study &lt;a href=&quot;https://codeblab.com/wp-content/uploads/2009/12/On-Finished-and-Unfinished-Tasks.pdf&quot;&gt;here&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://typeofjust.in/images/posts/zeigarnik-effect/zeigarnik-effect-complete-form.png&quot; alt=&quot;Zeigarnik Effect on progrssive approach&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Why would that be?&lt;/h2&gt;
&lt;p&gt;Why would you remember an interrupted task more than the completed one? The explanation put forward by Zeigarnik Effect is, if a task is not completed, a state of tenstion is created and the&lt;br /&gt;
&lt;strong&gt;quasi-need&lt;/strong&gt; is instilled.&lt;br /&gt;
Recall serves a sign indicating the existence of such tension, and system remains under tension. Great recall comes when the task is almost completed and interrupted.&lt;/p&gt;
&lt;h2&gt;Strings attached&lt;/h2&gt;
&lt;p&gt;Its not like you remember all of the interrupted tasks. You might not remember the interrupted task if you do not enjoy the task you are doing. The effect is valid if the user is disappointed or feels incomplete with the incompleted task.&lt;/p&gt;
&lt;h2&gt;&lt;img src=&quot;https://typeofjust.in/images/posts/zeigarnik-effect/zeigarnik-effect-profile-update.png&quot; alt=&quot;Zeigarnik Effect on visual incentives&quot; /&gt;&lt;/h2&gt;
&lt;h2&gt;How would Zeigarnik Effect apply in software product design&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;If your user is supposed to fill a long form, try to break them down to steps and make that an incremental approach for the user.&lt;/li&gt;
&lt;li&gt;Provide some visual incentives to users for completed tasks, and motivate them to complete the rest.&lt;/li&gt;
&lt;li&gt;Help them to restart right where they left off.&lt;/li&gt;
&lt;li&gt;Make the entire product experience more pleasurable and less like a chore.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://typeofjust.in/images/posts/zeigarnik-effect/zeigarnik-effect-watching-video.png&quot; alt=&quot;Zeigarnik Effect on providing a pleasurable experience&quot; /&gt;&lt;/p&gt;
</content:encoded></item><item><title>Atomic Habits - Book summary</title><link>https://typeofjust.in/posts/atomic-habits-book-summary</link><guid isPermaLink="true">https://typeofjust.in/posts/atomic-habits-book-summary</guid><description>Atomic Habits talk about how you can achieve remarkable results with tiny changes to your habits. We have the practice of tying everything to goals. I&apos;ll lose 10 pounds in 1 month, I&apos;ll learn a new programming language, etc. There are 2 problems with goals. 1. If the journey to your goals is long, y</description><pubDate>Fri, 20 Jan 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Atomic Habits talk about how you can achieve remarkable results with tiny changes to your habits. We have the practice of tying everything to goals. I&apos;ll lose 10 pounds in 1 month, I&apos;ll learn a new programming language, etc.&lt;/p&gt;
&lt;p&gt;There are 2 problems with goals.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;If the journey to your goals is long, you might get demotivated soon if you don&apos;t see instant results. In a week, if you&apos;ve managed to reduce only 1 pound, 10 pounds might seem very far. And if you get demotivated, you might end up abandoning your goal.&lt;/li&gt;
&lt;li&gt;If you achieve your goal, what do you do after that? Your journey is accomplished and you might not have anything more to look forward to, and you are back where you started.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Setting goals is good. But you have to back that up with a system. The system is tiny portions that&apos;ll help you to reach your goal. If you want to achieve your goal, set a system in place.&lt;/p&gt;
&lt;p&gt;If you plan to learn a new language, set up a system&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;pick a language you find interesting&lt;/li&gt;
&lt;li&gt;allot a specific time every day for your studies&lt;/li&gt;
&lt;li&gt;Understand what topics are important for you to lean&lt;/li&gt;
&lt;li&gt;find projects you can build to practice your skills&lt;br /&gt;
etc.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If you have a system in place, you can apply the same to different goals and not necessarily get rid of it after you reach your goal. You can focus on getting 1% of your goal regularly. Initially, 1% might sound very less, but over time that compounds to a more significant portion.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Atomic Habits is a book by James Clear, an easy &amp;amp; proven way to build good habits and break bad ones.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr /&gt;
&lt;p&gt;If you want to build better habits, it&apos;s important to focus on your identity more than the goal itself. Another way to put it, instead of focusing on what you want to achieve, emphasize who you wish to become. If you want to become an athlete, think about what an athlete would do in their life.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;They will train every day&lt;/li&gt;
&lt;li&gt;Have a diet plan and stick to it.&lt;/li&gt;
&lt;li&gt;Work on their mental and physical well-being.&lt;/li&gt;
&lt;li&gt;Get good sleep&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Now that you know the habits of an athlete, work toward developing them in your daily life.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The most effective way to change your habits is to focus not on what you want to achieve, but on who you wish to become.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Laws of behavior change&lt;/h2&gt;
&lt;h3&gt;Law 1: Make it obvious&lt;/h3&gt;
&lt;p&gt;If you decide I&apos;ll study for 1 hour every day, there are a lot of uncertainties. When will I study? What will I study ? and you could drift off from making a new habit because of these uncertainties.&lt;/p&gt;
&lt;p&gt;Habit stacking is a good strategy to start new habits. If you want to start something new, stack it with your current habits. If you want to create a pattern of learning every day, you can stack this new habit like this.&lt;/p&gt;
&lt;p&gt;I wake up → Brush my teeth → Have a cup of coffee → &lt;em&gt;Complete 1 lesson in JavaScript from Udemy&lt;/em&gt; → Go for a walk.&lt;br /&gt;
When you stack it like this, it allows you to create a set of simple rules that guide your future behavior.&lt;/p&gt;
&lt;p&gt;Your environment is vital to building good habits and staying away from bad ones. If you want to sleep early every day, identify what in your environment doesn&apos;t allow you to do that.&lt;br /&gt;
Maybe it&apos;s the mobile phone or Television. Before going to bed, try keeping your mobile phone in some other room, or keep the TV remote inside cabinet instead of keeping them in your bed.&lt;/p&gt;
&lt;p&gt;If you want to eat healthily, keep healthy food in the most accessible places. When you are hungry, you go for what you can grab faster.&lt;br /&gt;
Organize your room/house/environment to build better habits and stay away from bad ones.&lt;/p&gt;
&lt;h3&gt;Law 2: Make it attractive&lt;/h3&gt;
&lt;p&gt;To build better habits you have to make them attractive and to get rid of bad habits, make them unattractive.&lt;br /&gt;
Most of the time, we give preference to our &quot;wants&quot; over &quot;needs&quot;. You want to watch YouTube instead of exercising. Build a positive habit of exercising (need), and pair it with something that you want to do (watch YouTube).&lt;/p&gt;
&lt;blockquote&gt;
&lt;ol&gt;
&lt;li&gt;After I open YouTube, I&apos;ll do ten push-ups&lt;/li&gt;
&lt;li&gt;After 10 push-ups, I&apos;ll watch YouTube for 15 mins&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;p&gt;If you make your habits attractive this way, there&apos;s more likely to end up doing them.&lt;/p&gt;
&lt;p&gt;Similarly, to get rid of a bad habit you have to make it unattractive. Highlight the benefits of avoiding a bad habit and making it seem unattractive.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;If I watch YouTube for a long time, I&apos;ll feel tired and have no energy to go for a walk afterward.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;Law 3:  Make it easy.&lt;/h3&gt;
&lt;p&gt;Prepare your environment so you to do your habits more easily.&lt;br /&gt;
If you want to study more, keep distractions out of your study room. Avoid studying in the living room where there&apos;s a television. If you want to work out, ready your gym bag ahead of time.&lt;/p&gt;
&lt;p&gt;At times it could be intimidating when you look at a habit as a whole. For example, reading a chapter every day or running a 5k every day is challenging to start. Instead of that, make the smallest part of these activities your habit.&lt;br /&gt;
I&apos;ll read one page of a book every day, I&apos;ll walk for 10 minutes every day, and I&apos;ll study for 15 minutes every day. When you start small, you&apos;ll end up continuing the activity for longer than you envisioned.&lt;/p&gt;
&lt;p&gt;Similar to how you make it easy to start a habit, you should make it difficult to continue a bad one. Consider you are spending too much time on social media. You could ask your spouse or friend to set an App Password for you. Now, if you have to use social media, you&apos;ve to go to them to unlock the app. And slowly you might stay away from social media to avoid the hassle of unlocking the phone.&lt;/p&gt;
&lt;h3&gt;Law 4: Make it attractive&lt;/h3&gt;
&lt;p&gt;We are more likely to repeat something when that experience is satisfying. Whenever we get that instant reward, we are more likely to repeat the same activity in the future.&lt;/p&gt;
&lt;p&gt;Habit tracking is another way of making habits attractive. After completing a habit and when we check it off in the calendar, that is a pleasurable moment that gives you a positive vibe. Habit tracking can be helpful to make sure you don&apos;t mess up with the habit history unknowingly.&lt;br /&gt;
For example, it is impossible to remember all the days you worked out in the past month, you might&apos;ve missed a few. But if you keep a habit tracker, you can precisely notice your habit history and make it better.&lt;/p&gt;
&lt;p&gt;Making a pact with somebody to stay with the habit can also help you. You can make a pact with your spouse/friend, if you miss out on a workout day, you&apos;ll do something in return for them. Like, washing their dishes, or giving them $100.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Life happens and there will be times we have to set aside our habits for a day. But try not to miss 2 days continuously, because bouncing back from a long gap can be difficult.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr /&gt;
&lt;h2&gt;Takeaways&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Habit building is not done in a day or a week. Start slowly, be consistent, and improve.&lt;/li&gt;
&lt;li&gt;Reward yourself when you complete a habit.&lt;/li&gt;
&lt;li&gt;Make bad habits unattractive and difficult to do. Make good habits easy to do.&lt;/li&gt;
&lt;li&gt;Try not to miss on your habits two days in a row.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Building a good habit&lt;/h3&gt;
&lt;p&gt;Even before reading the book, I had 2 goals in mind, for myself.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Read more books in 2023 (12 books).&lt;/li&gt;
&lt;li&gt;Learn more things in 2023.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The plan I had in mind fits perfectly well within the framework of atomic habits.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;After every chapter, I&apos;ll note down the summary.&lt;/li&gt;
&lt;li&gt;After every topic I learn, I&apos;ll either note down the summary or share what I&apos;ve learned with my colleagues.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Stopping a bad habit&lt;/h3&gt;
&lt;p&gt;I don&apos;t like how much time I spent on Twitter. Twitter is the only social media I&apos;m in, and most of the accounts I follow are of&lt;br /&gt;
developers and entrepreneurs. But Twitter will plug &lt;em&gt;&apos;things I might like&apos;&lt;/em&gt;  videos, and my brain falls for it.&lt;br /&gt;
When I realize I didn&apos;t want to be there, 45 minutes already lost.&lt;/p&gt;
&lt;p&gt;I don&apos;t want to quit Twitter altogether. Because I find lot of good stuff there.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Conversations on React and best practices.&lt;/li&gt;
&lt;li&gt;What&apos;s new in CSS and brilliant designs.&lt;/li&gt;
&lt;li&gt;Discover new prodcts, libraries and frameworks.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;So, to avoid the Twitter trap, here&apos;s what I did.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;I deleted my Twitter app. Now, If I&apos;ve to go to Twitter, I should open my browser and visit Twitter, like a madman.&lt;/li&gt;
&lt;li&gt;After browsing for every 15 minutes. I&apos;ll log out. So the next time I subconsciously open Twitter, I&apos;ll have to login. This makes&lt;br /&gt;
me think twice should I really go in there or not.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;And so far, it&apos;s going very well.&lt;/p&gt;
</content:encoded></item><item><title>HTTP Cookies</title><link>https://typeofjust.in/posts/http-cookies</link><guid isPermaLink="true">https://typeofjust.in/posts/http-cookies</guid><description>When you work with Web applications, cookies are useful to store some pieces of information in the browser. Some common use cases for cookies are, 1. Storing authentication tokens to authorize requests 2. Has the user closed a Subscribe to Newsletter modal? 3. User preference on dark theme vs light </description><pubDate>Mon, 09 Jan 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;When you work with Web applications, cookies are useful to store some pieces of information in the browser.&lt;/p&gt;
&lt;p&gt;Some common use cases for cookies are,&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Storing authentication tokens to authorize requests&lt;/li&gt;
&lt;li&gt;Has the user closed a Subscribe to Newsletter modal?&lt;/li&gt;
&lt;li&gt;User preference on dark theme vs light theme.&lt;/li&gt;
&lt;li&gt;Used by most analytics tools such as Google Analytics, Facebook Pixel, Quora Pixel etc.&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;ℹ️    Few of the above examples can be stored in local storage or session storage.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Cookies can be set from both the server and the client.&lt;/p&gt;
&lt;h3&gt;Adding new data to the cookie&lt;/h3&gt;
&lt;h4&gt;How to set cookies from the browser, using JavaScript code.&lt;/h4&gt;
&lt;pre&gt;&lt;code class=&quot;language-js&quot;&gt;// adding new value to cookie
document.cookie = &quot;theme=dark&quot;;

// reading cookie value
console.log(document.cookie) // &apos;theme=dark&apos;
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Setting cookie, from server&lt;/h4&gt;
&lt;p&gt;Similar to how your client code can create cookies, your server/API also can add new values to cookies.&lt;br /&gt;
Let&apos;s say you are authenticating a user. User consent is sent to the server, the server validates the user, and sends back a Session Token to the client.&lt;/p&gt;
&lt;p&gt;The client will use this session to authorize further API requests.&lt;/p&gt;
&lt;p&gt;When your server responds to login requests, it can send a session token as a cookie in response headers.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-js&quot;&gt;Set-Cookie: token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Why would I use cookies over local storage or session storage?&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Cookies are sent to API Calls automatically (unless settings prohibit), so there&apos;s no reason to explicitly send them in case of authorization tokens and other necessary cookies.&lt;/li&gt;
&lt;li&gt;Unlike local storage and session storage, you have more control over cookies. You can set which pages can access them, how long should it live, and domain accessibility as well.&lt;/li&gt;
&lt;li&gt;Cookies provide security options which will be discussed in this post.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Lifetime of a cookie&lt;/h3&gt;
&lt;p&gt;It is possible to set a time limit for cookie expiry.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-js&quot;&gt;// setting expiry on client side
document.cookie = &quot;theme=dark; expires=Mon, 09 Jan 2023 12:00:00 UTC&quot;;

// setting expiry from server response
Set-Cookie: token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9; Expires=Mon, 09 Jan 2023 12:00:00 UTC;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Cookies that have an expiry time are called permanent cookies.&lt;/p&gt;
&lt;p&gt;Another type of expiry is when the browser session ends. These are called session cookies.&lt;/p&gt;
&lt;h3&gt;Cookie accessibility in domains&lt;/h3&gt;
&lt;p&gt;Similar to how you set an expiry time, you can set the Domain attribute as well.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-js&quot;&gt;Set-Cookie: token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9; Domain=typeofjust.in
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If you set a domain value, your cookie will be accessible to the specified domain and its subdomains. If you do not specify a domain, a cookie will be only accessible to the host that sets the cookie.&lt;/p&gt;
&lt;h3&gt;Cookie path&lt;/h3&gt;
&lt;p&gt;The path attribute is helpful to determine what pages should access your cookie.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-js&quot;&gt;Set-Cookie: token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9; Path=/posts
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;With the above example, if I set a cookie on the &lt;code&gt;/posts&lt;/code&gt; path,&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-js&quot;&gt;🚫 cookie cannot be read from `/about`.
✅ cookie accessible from `/posts/1`
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Cookie Security&lt;/h2&gt;
&lt;h3&gt;SameSite&lt;/h3&gt;
&lt;p&gt;Cookie has a &lt;code&gt;SameSite&lt;/code&gt; directive which can be used to control security. This directive is helpful to make sure your cookies are available only to the site that matches the domain which created it.&lt;/p&gt;
&lt;p&gt;SameSite directive has 2 possible values.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;None&lt;/li&gt;
&lt;li&gt;Lax (default)&lt;/li&gt;
&lt;li&gt;Strict&lt;/li&gt;
&lt;/ol&gt;
&lt;h5&gt;SameSite=Lax&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;Cookies will not be sent to cross-site subrequests, but are sent when the user is navigating to the origin site. If your site (Site A) has a backlink on another site (Site B), when the user clicks on the Site A link in Site B, Site A cookies will be sent with the request.&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;SameSite=Strict&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;Cookies will be sent only in a first-party context (host which set the cookie) and not sent with requests initiated by other sites.&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;SameSite=none&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;Sent in both first-party context and cross-site requests.&lt;/li&gt;
&lt;li&gt;Secure is required to have this setting. &lt;code&gt;Secure; HttpOnly&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;HTTP can’t set cookies with Secure directives.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2&gt;Cookie limits in different browsers&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Firefox 108.0.2, &amp;gt; 30000* cookies&lt;/li&gt;
&lt;li&gt;Chromium: 109.0.5414.87, 180 cookies&lt;/li&gt;
&lt;li&gt;Safari Version 16.2, &amp;gt; 10000 *&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-js&quot;&gt;* Firefox was getting pretty hung up with 30000 cookies.
* Unlike Firefox, Safari had problems at 10000
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Resources&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies&quot;&gt;https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>The Manager&apos;s Path - Book summary</title><link>https://typeofjust.in/posts/the-managers-path-book-summary</link><guid isPermaLink="true">https://typeofjust.in/posts/the-managers-path-book-summary</guid><description>&gt; The Manager&apos;s Path is a book by Camille Fournier, a guide for tech leaders navigating growth and change. This post summarizes the following sections. 1. How to be managed 2. Mentoring 3. Role of a tech lead 4. Managing people How to be managed. If you want to be managed right at your workplace, yo</description><pubDate>Sat, 24 Dec 2022 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;The Manager&apos;s Path is a book by Camille Fournier, a guide for tech leaders navigating growth and change.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This post summarizes the following sections.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;How to be managed&lt;/li&gt;
&lt;li&gt;Mentoring&lt;/li&gt;
&lt;li&gt;Role of a tech lead&lt;/li&gt;
&lt;li&gt;Managing people&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;How to be managed.&lt;/h2&gt;
&lt;p&gt;If you want to be managed right at your workplace, you should have some level of expectations in place.&lt;/p&gt;
&lt;h3&gt;One-on-One meetings&lt;/h3&gt;
&lt;p&gt;It&apos;s a good practice to have a call regularly to talk about your suggestions, feedback, and any other concerns. If your company does not have this system in place, talk to your manager and explain the benefits of One-on-One meetings.&lt;/p&gt;
&lt;p&gt;One-on-One meetings can be a great place to discuss,&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Feedback you have for your manager, and your expectations from the manager. If you think certain items are overlooked, this might be the right time to point them out.&lt;/li&gt;
&lt;li&gt;Ask for feedback, and grow from it. If the feedback is positive or negative, learn to take it gracefully, understand how that can be improved, and learn from it.&lt;/li&gt;
&lt;li&gt;Like it or not, you might have to work with your managers for a long time. So, it is important to build a good relationship. Both of you should be in a comfortable place for you to share the tough things you might be going through. Being open about challenges will help your manager to understand your struggle and help you in the workplace, maybe with leaves, or adjusting the work allocations.&lt;/li&gt;
&lt;li&gt;Share your plans for your career, and ask your manager for suggestions. Understand their point of view on how to achieve that, what to look for and what to learn.&lt;/li&gt;
&lt;li&gt;If you have any concerns about your team or teammates, let your manager know. If your co-worker is lacking in teamwork or skills, your manager should handle that. Managers might not have noticed some things your teammate is going through, but bringing some light to it on this One-on-One will not only help your teammate but benefit your entire team.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Sometimes One-on-One can feel forceful, boring, or redundant. But you must practice and perfect it. Prepare your points before going on one-on-ones, and update your notes after each One-on-One. Make sure you are making progress after each One-on-One, both career-wise and relationship-wise with your manager.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Mentoring&lt;/h2&gt;
&lt;p&gt;A lot of companies have a mentoring program, especially if they are hiring interns or students right after graduation, as freshers. A good system for mentoring plays a key role for the mentor, mentee as well as the company.&lt;/p&gt;
&lt;h3&gt;For the Company&lt;/h3&gt;
&lt;p&gt;When an intern/fresher joins a company for real-world experience, they have a lot of expectations. They will be excited and motivated to start a new journey and show the company what they are capable of.&lt;br /&gt;
The company needs to keep in mind,&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Interns should not be hired to do jobs for less pay. Goal should be to train them, and give them a good experience so that, they&apos;ll be impressed with your company and be willing to work for a longer time.&lt;/li&gt;
&lt;li&gt;A good internship program can reflect well on the company as that will improve the relationship with the college, and thus open a window to hire talented graduates.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;For the mentor&lt;/h3&gt;
&lt;p&gt;Mentors are usually people with greater than 2 years of experience in the company, who have an understanding of how things work and looking to climb up their career ladder.&lt;br /&gt;
An efficient mentoring system is essential for the mentor as much as it is for the mentee.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Mentoring helps mentors to develop new skills, in their communication, networking, and overall technical understanding.&lt;/li&gt;
&lt;li&gt;Manager/company has trusted the mentor to do the right set of training and shape up the interns for a career within the company. Doing well on the expectations can bode well for the mentor in the upcoming appraisal cycle.&lt;/li&gt;
&lt;li&gt;Mentoring is a chance for the mentor to come out of the daily engineering tasks and bond with interns and be a role model for them.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;To do the job well,&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Mentors should have a system for training. By the time an intern joins, the mentor should be well prepared with the set of learning materials and projects to build. Without a proper curriculum, the internship could be disoriented and it&apos;ll end up unfruitful for the intern and the company.&lt;/li&gt;
&lt;li&gt;Listening to mentees is crucial. While in college, students are not trained well enough to work within a job environment. A good mentor should listen to the challenges of mentees adjusting to the system and extend a helping hand. It is important for the interns to feel comfortable and welcomed within the company.&lt;/li&gt;
&lt;li&gt;Spoon feeding will hurt in the long run. Empower interns by letting them explore task-related things. Instead of asking questions without any research, educate them to explore and find their answers. You&apos;ll have to listen to those answers and correct them if needed.&lt;/li&gt;
&lt;li&gt;Mentoring will help mentors develop communication skills and networking skills, which is helpful if they are looking for management roles in the future.&lt;/li&gt;
&lt;/ol&gt;
&lt;hr /&gt;
&lt;h2&gt;Role of a tech lead&lt;/h2&gt;
&lt;p&gt;A tech lead is often one with strong technical skills and good managerial skills. A tech lead doesn&apos;t have to be the senior person within the team but managed to show potential beyond technical areas.&lt;br /&gt;
Tech lead is a position with a lot of responsibilities and a lot of expertise.&lt;/p&gt;
&lt;p&gt;As a tech lead, you are expected to,&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Manage a team, deliver features and enhancements, and take care of the technical debut.&lt;/li&gt;
&lt;li&gt;Break down given product roadmaps, understand the architectural implementation and challenges, bring solutions and lead the development.&lt;/li&gt;
&lt;li&gt;Listen to your teammates, value their opinions, and make sure they are recognized in their roles.&lt;/li&gt;
&lt;li&gt;Often acts like a product manager, even when you have a product manager. Go in-depth about the technical implementation and educate your managers and peers about the challenges and solutions.&lt;/li&gt;
&lt;li&gt;Be part of standup calls and update meetings, so that your team can focus on the development part and you represent them in various meetings.&lt;/li&gt;
&lt;li&gt;Empower your teammates to get things done. When shit goes wrong, instead of doing things on your own, guide your team in the right direction and help them to get things done.&lt;/li&gt;
&lt;li&gt;Share your time between coding and managing projects. Even though you might be a talented developer, you will end up spending less time on coding than you usually do.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;With all of this going on, it is important that you find time to improve your technical skills and encourage your team to do the same.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Managing People&lt;/h2&gt;
&lt;h3&gt;New hires&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;When you have new people join your team, have an open conversation with them. What do they like, why did they decide to join the company, and what ticks them off? All of these could help build trust between both of you and build a strong relationship.&lt;/li&gt;
&lt;li&gt;Have a clear training plan for the new joiners. Create a 30/60/90 days training plan. Put forth realistic expectations and see if the new hires live up to them. If the new hire doesn&apos;t meet those expectations, it is possible that you have misfired.&lt;/li&gt;
&lt;li&gt;Prepare an onboarding/training guide and keep them up-to-date. Setting clear expectations for training can make sure everyone is on board. And with changing tech stacks and systems, keep updating those guides.&lt;/li&gt;
&lt;li&gt;Get feedback from new hires, after their training period. New to the system, they&apos;ll have a fresh take on the system and raise points like an outsider.&lt;/li&gt;
&lt;li&gt;Do regular 1-on-1. Use this meeting to understand your team member&apos;s career goals and ambitions. Don&apos;t make this meeting a status update, Use this platform to understand their concerns, and feedback, find out if they need assistance, etc.&lt;/li&gt;
&lt;li&gt;Create a culture of continuous feedback. Be it positive or negative, don&apos;t wait for performance time for these discussions. Make sure you appreciate your team members when they do something right, and guide them if things are not going the planned way.&lt;/li&gt;
&lt;li&gt;When companies do performance reviews put genuine effort into doing the assessments. When you have to assess your team members, instead of trying to Irish through it, allocate time and provide genuine feedback. Vague statements in the review will help your peers to grow, it&apos;ll just confuse and throw them off. Keep your feedback clear and back it up with examples.&lt;/li&gt;
&lt;li&gt;It is necessary to have a clear plan for your team members, on how they can grow. What can they do to climb up the career ladder or reach their dream job? If they are not performing well, have a conversation with them about what are your expectations and how to get those levels.&lt;/li&gt;
&lt;/ol&gt;
&lt;hr /&gt;
&lt;h2&gt;Managing teams&lt;/h2&gt;
&lt;p&gt;Managing a team is a bit different than managing individuals. You have to focus on the collective output rather than the individual outcome.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;For an engineering manager, it is very important to stay updated with technical skills. Even though they&apos;ll be writing less code, they are responsible for taking decisions, assessing the feasibility of certain implementations, understanding bottlenecks, and code review. This does not mean that you have to be smarter than all of your team members in technical skills. Having the right balance of technical skills and management skill is necessary for an engineering manager. As an engineering manager, if you don&apos;t stay updated with your technical skills, you&apos;ll become obsolete.&lt;/li&gt;
&lt;li&gt;It is important to keep up the team&apos;s mental health. If the team is not doing well and is down, take them out for lunch or dinner, and let some pressure out. If there are too many deliverables that are stressing your team out, it is important to break them down and take a look at task vs resource allocation. If it&apos;s not possible to shop certain things within the given timeline due to acceptable reasons, talk to your product manager, identify priority items and ship them.&lt;/li&gt;
&lt;/ol&gt;
&lt;hr /&gt;
&lt;p&gt;The book has 3 more sections.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Manging multiple teams&lt;/li&gt;
&lt;li&gt;Managing managers&lt;/li&gt;
&lt;li&gt;Bootstrapping culture.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I&apos;m not summarizing them here, as I don&apos;t want this post to get lengthy. But I recommend giving this book a read if you are a tech lead, engineering manager, or aspiring to be one.&lt;/p&gt;
</content:encoded></item><item><title>Starting with TypeScript - 01</title><link>https://typeofjust.in/posts/starting-with-typescript-01</link><guid isPermaLink="true">https://typeofjust.in/posts/starting-with-typescript-01</guid><description>TypeScript gives you some superpowers when you work with JavaScript. JavaScript is a dynamically typed language. Let&apos;s see what I mean by that with an example. Let&apos;s say you have a variable called name. javascript let name = &apos;JavaScript&apos;; The data type of name is a string, but you can still assign v</description><pubDate>Fri, 23 Dec 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;TypeScript gives you some superpowers when you work with JavaScript.&lt;br /&gt;
JavaScript is a dynamically typed language. Let&apos;s see what I mean by that with an example.&lt;/p&gt;
&lt;p&gt;Let&apos;s say you have a variable called &lt;code&gt;name&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;let name = &apos;JavaScript&apos;;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The data type of &lt;code&gt;name&lt;/code&gt; is a string, but you can still assign values of other data types, &lt;code&gt;number&lt;/code&gt; for instance.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;let name = &apos;JavaScript&apos;;
console.log(typeof name) // string

name = 11;
console.log(typeof name) // number
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This might feel like a superpower, but it could lead to confusion about valid values and inconsistencies.&lt;/p&gt;
&lt;p&gt;Typescript can help you to identify these at development time and show warnings if you try to assign different data types.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The first time I started with Typescript, I got annoyed and ended up giving the type &lt;code&gt;any&lt;/code&gt; to everything 🫣, which negates the power of TypeScript. But this time, I&apos;m more focused on learning it 🏁.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Basic data types&lt;/h2&gt;
&lt;p&gt;Basic data types like string, number, and boolean can be used with TypeScript like below.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;let name: string = &apos;JavaScript&apos;;
let version: number = 2015,
let isDeprecated: boolean = false;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now, if you try the following thing, which is totally acceptable in JavaScript,&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;let name: string = &apos;JavaScript&apos;;
name = 123; // ⛔️
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;typescript will show you a warning &lt;code&gt; Type &apos;number&apos; is not assignable to type &apos;string&apos;.&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;Arrays&lt;/h2&gt;
&lt;p&gt;If you have an array of numbers, you can use the following syntax to add type safety to them.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;const numbers: number[] = [1, 2, 3, 4];

// If you try to add a string to the array, TypeScript will show you a warning, Type &apos;string&apos; is not assignable to type &apos;number&apos;.  
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;TypeScript will warn you in other operations like push and contact.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;const languages: string[] = [&apos;JavaScript&apos;, &apos;Java&apos;];
languages.push(2015) // ⛔️ _Argument of type &apos;number&apos; is not assignable to parameter of type &apos;string&apos;._
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;What do you do if your array can contain both numbers and strings?&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;let mixedArray: Array&amp;lt; string| number&amp;gt; = [];
mixedArray  = [&apos;1&apos;, 2, 3]
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Object&lt;/h2&gt;
&lt;p&gt;Consider the below object,&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;const language = {
  name: &apos;JavaScript&apos;,
  version: 2022
}

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can try to modify the value of version to a string, &lt;code&gt;language.version = &apos;2022&apos;&lt;/code&gt; and JavaScript won&apos;t complain. To add type safety, you can create a type for your &lt;code&gt;language&lt;/code&gt; object.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;type Language = {
    name: string,
    version: number,
    isDeprecated: boolean
}

const language: Language = {
  name: &apos;JavaScript&apos;,
  version: 2022
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The type safety of your object is assured, but we have an error now.&lt;br /&gt;
&lt;code&gt;Property &apos;isDeprecated&apos; is missing in type &apos;{ name: string; version: number; }&apos; but required in type &apos;Language&apos;. &lt;/code&gt;&lt;/p&gt;
&lt;p&gt;In the &lt;code&gt;Language&lt;/code&gt; type, &lt;code&gt;isDeprecated&lt;/code&gt; is present, but that key is missing from the &lt;code&gt;language&lt;/code&gt; object. Either you can add &lt;code&gt;isDeprecated&lt;/code&gt; to the language,&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;const language: Language = {
  name: &apos;JavaScript&apos;,
  version: 2022,
  isDeprecated: false
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;or make &lt;code&gt;isDeprecated&lt;/code&gt; optional using &lt;code&gt;?&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;type Language = {
    name: string,
    version: number,
    isDeprecated?: boolean
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Union type&lt;/h2&gt;
&lt;p&gt;At times, a variable could have 2 types of value. What we&apos;ve seen so far, assigning only one data type to a variable, but with the help of union type, you can have the option to add multiple possible data types.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;let fruit: string | null;
fruit = null;
fruit = &apos;apple&apos;;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;TypeScript will allow you to have &lt;code&gt;null&lt;/code&gt; or any kind of string value to the &lt;code&gt;fruit&lt;/code&gt; variable.&lt;/p&gt;
&lt;h2&gt;Intersection type.&lt;/h2&gt;
&lt;p&gt;With intersection type, you can build new types, by extending or combing your existing other types. See the example below. Both &lt;code&gt;User&lt;/code&gt; and &lt;code&gt;Employee&lt;/code&gt; can act as independent types, and we created a new type &lt;code&gt;UserEmployee&lt;/code&gt; from both of them.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;type User = {
    name: string,
    age: number
}

type Employee = {
    id: number
};

type UserEmployee = User &amp;amp; Employee;

const employee: UserEmployee = {
    name: &apos;Ben&apos;,
    age: 20,
    id: 102222
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Literal types&lt;/h2&gt;
&lt;p&gt;If your variable can have only a defined set of values, literal types can be used to define those values.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;let position: &apos;initial&apos; | &apos;absolute&apos; | &apos;fixed&apos;;

position = &apos;relative&apos;; // ⛔️ Type &apos;&quot; relative&quot;&apos; is not assignable to type &apos;&quot;initial&quot; | &quot;absolute&quot; | &quot;fixed&quot;&apos;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;In the above example, &lt;code&gt;position&lt;/code&gt; can have only values from &lt;code&gt;&apos;initial&apos;, &apos;absolute&apos;, and &apos;fixed&apos;&lt;/code&gt;.&lt;/p&gt;
&lt;h2&gt;Enums&lt;/h2&gt;
&lt;p&gt;Enums are useful when you have to define a set of constant values.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;const enum Position {
    RELATIVE = &apos;relative&apos;,
    FIXED = &apos;fixed&apos;
}

const divPositino = Position.RELATIVE;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Numeric values are also allowed inside enums&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;const enum Room {
    ONE = 1,
    TWO,
    THREE
}

const room = Room.ONE; // 1
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;One cool thing about numeric enum is that it has auto-incrementing behavior. In the &lt;code&gt;Room&lt;/code&gt; enum, only &lt;code&gt;ONE&lt;/code&gt; has the value. But subsequent keys will have auto-incremented values.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;const room = Room.THREE; // = 3 🔥
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;p&gt;Few benefits of using TypesScript,&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Avoid surprises by defining types, and catching errors at development time.&lt;/li&gt;
&lt;li&gt;When you work with a large team, setting a base expectation with types can be helpful and scalable. The initial learning curve can be justified with readable and predictable code.&lt;/li&gt;
&lt;li&gt;Autocomplete suggestions with IDE. If you have a variable of type &lt;code&gt;string&lt;/code&gt;, your IDE can help you with possible operations you can do on that.&lt;/li&gt;
&lt;/ol&gt;
&lt;hr /&gt;
&lt;p&gt;Checkout &lt;a href=&quot;https://www.typescriptlang.org/&quot;&gt;TypeScript official documentation&lt;/a&gt; for more features, and play around with TypeScript &lt;a href=&quot;https://www.typescriptlang.org/play&quot;&gt;here&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title>Lukas Herman of Stagetimer</title><link>https://typeofjust.in/interviews/lukas-herman-founder-of-stagetimer</link><guid isPermaLink="true">https://typeofjust.in/interviews/lukas-herman-founder-of-stagetimer</guid><description>Lukas Hermann started in the Software world early on with freelance projects. After working with a couple of companies, later on, Lukas bootstrapped his own project &lt;Dictionary word=&quot;stagetimer&quot; explanation=&quot;stagetimer.io is a Remote-controlled Countdown Timer&quot; /&gt;. You can find Lukas on Twitterhttps</description><pubDate>Sat, 29 Oct 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Lukas Hermann started in the Software world early on with freelance projects. After working with a couple of companies, later on, Lukas bootstrapped his own project &lt;strong&gt;stagetimer&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;You can find Lukas on &lt;a href=&quot;https://twitter.com/_lhermann&quot;&gt;Twitter&lt;/a&gt; and on his &lt;a href=&quot;https://lukashermann.dev/&quot;&gt;website&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In this interview, Lukas Hermann is sharing his journey bootstrapping stagetimer after leaving his job. &lt;a href=&quot;https://stagetimer.io?source=typeofjustin&quot;&gt;Stagetimer&lt;/a&gt; is doing €4500 MRR and the future is looking bright for stagetimer.&lt;/p&gt;
&lt;h3&gt;Question: What was the motivation to start stagetimer?&lt;/h3&gt;
&lt;p&gt;I was visiting my friend&apos;s studio to set up some IT hardware. He was using an old timer app on a spare laptop and always had to run into the recording room to start the countdown timer and then run out again.&lt;br /&gt;
I was thinking “Surely there is a nifty online app for this problem that just syncs through the cloud.” But I couldn&apos;t find one. I almost couldn&apos;t believe it!&lt;br /&gt;
So I made a simple prototype that weekend, using my experience as a software developer. The post about it on Reddit got a good response. This is when I decided to make it available online.&lt;br /&gt;
This app is a great way for me to learn the ins and outs of building a product and running a business.&lt;/p&gt;
&lt;h3&gt;Question: How did you validate your Idea for stagetimer?&lt;/h3&gt;
&lt;p&gt;Initially, I had no idea how to validate Stagetimer. I knew it needed users, but where do I find them? As a developer, I had no idea where video and event professionals hang out. So I looked in the next best place I could think of: subreddits.&lt;/p&gt;
&lt;p&gt;After some searching I found r/CommercialAV. Good enough, I thought and wrote a simple post introducing the app and asked for feedback.&lt;/p&gt;
&lt;p&gt;Contrary to most people’s Reddit experience I found the comments rather positive and helpful, even pointing out other subreddits where I should post it.&lt;/p&gt;
&lt;p&gt;In hindsight, it was neither the perfect place nor the time, but it worked out anyhow.&lt;/p&gt;
&lt;p&gt;I got a number of users on my prototype, back then just a free tool.&lt;/p&gt;
&lt;p&gt;It took another 6 months until I earned my first dollar.&lt;/p&gt;
&lt;p&gt;Why so long? Building it out enough to justify a premium plan while having a full-time job took a while. But the day I rolled out the update I got my first paying customer. I posted the update on Twitter with little more than 300 followers. The customer learned about Stagetimer from that very first Reddit post.&lt;/p&gt;
&lt;h3&gt;Question: What are some hurdles you faced while building stagetimer?&lt;/h3&gt;
&lt;p&gt;The most challenging part is due to the actual use-case of Stagetimer. It’s a timer used during live events. Meaning it has to work very reliably with very little delay. When the operator clicks the button on his computer the speaker’s device has to receive the command immediately.&lt;/p&gt;
&lt;p&gt;Just the other day I ran an update that caused the server to be down for 5 minutes. During that time we received 4 support emails inquiring about the downtime!&lt;/p&gt;
&lt;p&gt;So Stagetimer has to be reliable but also feel reliable.&lt;/p&gt;
&lt;p&gt;One thing I do during development is to add a 500ms latency to every request. This made me design the UX robust enough that it feels reliable even with 500ms latency. It’s extra work, of course, but worth it.&lt;/p&gt;
&lt;p&gt;Another thing is instant user feedback. As soon as the connection drops, be it server downtime or the user’s internet connection, a notification appears informing the user. This way people feel a sense of control even in case of errors.&lt;/p&gt;
&lt;h3&gt;Question: How’s stagetimer doing in terms of customer growth and revenue?&lt;/h3&gt;
&lt;p&gt;At the time of writing our MRR is at €4500.&lt;/p&gt;
&lt;p&gt;But our monthly revenue is significantly higher due to event licenses, a 10-day access pass we sell without recurring payments.&lt;/p&gt;
&lt;p&gt;We started the year with a growth forecast of 16% MoM. However, it’s going so well that our actual growth is closer to 22% MoM. This means we would have 10× just this year. Probably not going to happen though since December is going to be very calm.&lt;/p&gt;
&lt;h3&gt;Question 6: How are you attracting customers? What are your primary acquisition channels?&lt;/h3&gt;
&lt;p&gt;Google and word of mouth.&lt;/p&gt;
&lt;p&gt;50% of users come through Google Ads or good old organic search. Another 40% comes recommended by other users.&lt;/p&gt;
&lt;p&gt;We tried Facebook ads for a while, but the CAC was higher than Google. We also tried YouTube ads, but either our video was bad or it was just not as effective. We got tons of impressions, but no clicks. Lastly, we also tried to reach out to YouTube channels in the audiovisual space for sponsorships, but the ones who wrote back declined. I think most make enough from gigs and want to stay free to talk about the tech they enjoy. Conversely, we got plenty of YouTube endorsements from people who just tried out our tool, liked it, and wanted to review it.&lt;/p&gt;
&lt;h3&gt;Question: What did you do before starting stagetimer?&lt;/h3&gt;
&lt;p&gt;I am a software engineer and worked as a frontend developer in a small Germany based startup in the metal industry.&lt;/p&gt;
&lt;p&gt;I financed my studies by working as a freelancer, mainly making WordPress sites.&lt;/p&gt;
&lt;p&gt;The entrepreneurial bug never really left me. So after 2 years at my first job, the startup mentioned above, I needed to venture on my own again.&lt;/p&gt;
&lt;h3&gt;Question: What did the first version of stagetimer look like?&lt;/h3&gt;
&lt;p&gt;Primitive 😀&lt;/p&gt;
&lt;h4&gt;MVP:&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://typeofjust.in/images/interviews/stagetimer/mvp.png&quot; alt=&quot;Stagetimer MVP UI&quot; /&gt;&lt;/p&gt;
&lt;h4&gt;Current:&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://typeofjust.in/images/interviews/stagetimer/now.png&quot; alt=&quot;Stagetimer MVP UI&quot; /&gt;&lt;/p&gt;
&lt;p&gt;What was in the MVP is still the core feature, and it’s free! Start a countdown, and show a message. That’s it.&lt;/p&gt;
&lt;p&gt;I didn’t set aside any features. On the contrary, only through communication with our first users did we learn what kind of features they needed and in turn implemented them.&lt;/p&gt;
&lt;h3&gt;Question 10: What plans do you have for the future?&lt;/h3&gt;
&lt;p&gt;Some key features still need to be included.&lt;/p&gt;
&lt;p&gt;I’m currently working on a downloadable offline version. Highly requested by users who face difficult internet situations like conference centers or firewalled corporate networks.&lt;/p&gt;
&lt;p&gt;Then we need to add team billing which will give us a lot of potentials to grow our MRR.&lt;/p&gt;
&lt;p&gt;Other than that Stagetimer has always been an experiment in entrepreneurship and lifestyle business for me. I will make sure it runs reliably and addresses most of our customer’s needs. Then I’ll use the steady revenue it provides to develop more products.&lt;/p&gt;
&lt;h3&gt;Question 11: Do you have any advice for fellow Indie Hackers?&lt;/h3&gt;
&lt;p&gt;If you haven’t started yet, what are you waiting for? In 6 months you wish you had started 6 months ago.&lt;/p&gt;
</content:encoded></item><item><title>Conversation with Marie, co-founder of Tally</title><link>https://typeofjust.in/interviews/bootstrapping-tally-with-marie</link><guid isPermaLink="true">https://typeofjust.in/interviews/bootstrapping-tally-with-marie</guid><description>Tallyhttps://tally.so?source=typeofjustin helps you to create forms in the simplest way possible. In this episode Tally co-founder Marie talks about the journey of Tally to $32k MRR and the hard work behind it. Question: Online survey/form building tools is a very competitive space. What gave you th</description><pubDate>Fri, 21 Oct 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;a href=&quot;https://tally.so?source=typeofjustin&quot;&gt;Tally&lt;/a&gt; helps you to create forms in the simplest way possible. In this episode Tally co-founder Marie talks about the journey of Tally to $32k MRR and the hard work behind it.&lt;/p&gt;
&lt;h3&gt;Question: Online survey/form building tools is a very competitive space. What gave you the confidence to start Tally in that space?&lt;/h3&gt;
&lt;p&gt;As makers, we struggled with finding the right tool to create forms for our previous start-ups and jobs. Google Forms is very functional, but just doesn’t look good and tools like Typeform, Jotform, and Formstack make you hit a paywall very fast (and can be expensive depending on what type of form you’re building). For an early-stage startup or indie makers&lt;/p&gt;
&lt;p&gt;It is a very competitive space, but we felt like there was a place for a new type of form builder experience with a different business model.&lt;/p&gt;
&lt;p&gt;We wanted to make form building easy, beautiful, and free without limits (so no limits on the number of responses, input fields, or forms). We’re big fans of the notion’s editor approach and wanted to create a fast, seamless, and fun form-building experience where you start from a blank page and can create any type of form by just typing text or adding blocks.&lt;/p&gt;
&lt;p&gt;All of this brought us to the idea of creating Tally.&lt;/p&gt;
&lt;h3&gt;Question: One of the tactics you’ve mentioned that helped Tally in its journey is its customer support, providing a personal touch in customer support rather than automated replies. Would you be able to keep up with your growing user base?&lt;/h3&gt;
&lt;p&gt;Our growth is fueled by our customers, not by investors. And since we’re customer-funded, our users are our number 1 priority. In order to make our users happy we have a laser focus on customer support. We spend 50% of our time talking to our users and answering questions on Slack, Twitter, or email. We strongly believe that real-time and personal support is what helps us differentiate ourselves, and what turns users into ambassadors.&lt;/p&gt;
&lt;h4&gt;The process&lt;/h4&gt;
&lt;p&gt;The main channels through which we interact with users are Slack, email, and Twitter.&lt;br /&gt;
Slack: Filip handles technical questions on Slack and we aim to respond within the hour.&lt;br /&gt;
Email: we use Missive as a collaborative team inbox. I handle the first line of support and assign technical questions or bug reports to Filip. Facebook and Twitter DMs are also handled through Missive.&lt;/p&gt;
&lt;p&gt;Next to these channels, feature requests can also be submitted through Tally forms embedded in our roadmap and our help center.&lt;/p&gt;
&lt;p&gt;We aim to document all questions we receive and work on optimizing the structure and searchability of our help center. In the future we want to make our support content more accessible by publishing feature requests, enabling public upvoting, publishing useful Slack conversations, and creating more detailed tutorials for the technical features.&lt;br /&gt;
However, to keep our response time short and keep a finger on the pulse of our users we will hire an extra pair of hands on this front.&lt;/p&gt;
&lt;h3&gt;Question: What was the first version of Tally like?&lt;/h3&gt;
&lt;p&gt;We started building in the summer of 2020 and showed our MVP to the world in September. Our MVP was a very basic version of the form builder, you could insert questions and that was it, you couldn&apos;t even publish a form. We didn&apos;t have a large network of our own, so we started sharing our first version of our form builder with the people closest to us.&lt;/p&gt;
&lt;p&gt;After processing their feedback we started with cold outreach to creators, Indie Hackers, and startup founders, who might be interested in our product. For months, we kept building and iterating while talking to our small community of early users.&lt;/p&gt;
&lt;p&gt;In March 2021 we felt ready to launch on Product Hunt. We had a small community of 1.500 users and released some of the crucial (basic) features to be able to compete with other form builders out there. We wanted to cover basic form features and input types but didn’t have the possibility yet to customize forms or embed them for example. We focussed on the simplicity of our form builder and the fact that it’s free.&lt;/p&gt;
&lt;h3&gt;Question: How do you find your users? What are your marketing channels?&lt;/h3&gt;
&lt;p&gt;When you discover Tally, it&apos;s most likely through one of our 55.000 users. &quot;The best advertising is done by happy users&quot; and happy clients help us spread the word about Tally.&lt;br /&gt;
Besides word of mouth, our product itself has become our biggest acquisition channel. Tally is largely free, and free users have a &quot;made with Tally&quot; badge displayed on their forms. This results in more visibility for our product, new users, and eventually paying subscribers. We describe how our growth flywheel works in this post.&lt;/p&gt;
&lt;p&gt;We also build in public and share our startup journey on Twitter. Currently, our main acquisition channels are:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Search&lt;/li&gt;
&lt;li&gt;&quot;Made with Tally&quot; marketing&lt;/li&gt;
&lt;li&gt;Twitter&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Question: Making people excited about your product is hard. How did you find your first 10 users?&lt;/h3&gt;
&lt;p&gt;We found our very first users through cold outreach. We scanned Product Hunt and Twitter and made lists of hundreds of prospects and started doing cold outreach, asking for their feedback. Often without success, but those who did take the time to reply became part of our community of early users and ambassadors.&lt;/p&gt;
&lt;p&gt;We were also actively answering questions in no-code communities and on Twitter, Reddit, and Indie Hackers.&lt;/p&gt;
&lt;p&gt;Around 3% of our free users convert into paying subscribers and our first paying user actually started paying before we had premium features. We drafted a custom plan for him and he’s still a Tally user today.&lt;/p&gt;
&lt;h3&gt;Question: What’s the growth of Tally look like?&lt;/h3&gt;
&lt;p&gt;We currently have 55.000 users and 32K MRR. Our revenue grows 11% MoM and our user base 9% MoM, but we expect it to slow down as we grow. We have around 45.000 visitors/month on our website.&lt;/p&gt;
&lt;h3&gt;Question: What were the challenges you faced while building Tally?&lt;/h3&gt;
&lt;p&gt;While the first 2 years were all about finding new users and doing things that don&apos;t scale, our growing user base is now presenting us with a whole new set of challenges.&lt;/p&gt;
&lt;p&gt;Scaling customer support: as mentioned before we will hire help for customer support to keep our response time short.&lt;br /&gt;
Keep on improving our product at a high pace: As our user base grows, more and more time goes into customer support, moderation and administration. This leaves us with little time to spend on actually building and improving the product. We are planning to hire an engineer to help out Filip on the product front so we can keep on delivering on our promise to build the simplest, yet most powerful form builder out there.&lt;/p&gt;
&lt;p&gt;Keep scammers at bay: because Tally is mostly free with no limits on form submissions, it also attracts abusers who engage in malicious activities: creating phishing forms for example. We don&apos;t want to compromise on our free tier by introducing limits, so a growing amount of our time goes into blocking scammers and finding new ways to prevent abuse.&lt;/p&gt;
&lt;h3&gt;Question: If Covid didn’t hit, do you think you would’ve built Tally with your co-founder?&lt;/h3&gt;
&lt;p&gt;That’s very hard to say. We launched another startup before Tally, but in a completely different space (Hotspot: a marketplace that connects hotels and travel influencers).&lt;/p&gt;
&lt;p&gt;We’re very happy to be active in the no-code space now and can relate a lot more with our (tech) audience than we did with our previous startup. But who knows, maybe Hotspot worked out if it weren’t for Covid and we would have never ended up building Tally.&lt;/p&gt;
&lt;h3&gt;Question: From your experience, what advice would you give somebody starting their ventures?&lt;/h3&gt;
&lt;h4&gt;Some financial advice&lt;/h4&gt;
&lt;p&gt;make sure you have the financial runway to pay your bills for at least a year. We had worked and saved up for over 10 years and Filip had sold his previous startup which gave us the financial space to jump into a startup adventure.&lt;/p&gt;
&lt;h4&gt;The art of persisting.&lt;/h4&gt;
&lt;p&gt;Every day, I&apos;m replying to emails, answer questions, and write help docs and Filip is coding and helping users out non-stop. Life as a bootstrapped founder sounds more glamorous than it is, but every dollar you make will make you insanely happy.&lt;/p&gt;
&lt;h4&gt;Don&apos;t be afraid to ask.&lt;/h4&gt;
&lt;p&gt;Every problem you encounter has been solved by someone else before you. There&apos;s always a great community out there that wants to see you succeed and will help you out. So, just ask!&lt;/p&gt;
</content:encoded></item><item><title>A good interviewer</title><link>https://typeofjust.in/posts/a-good-interviewer</link><guid isPermaLink="true">https://typeofjust.in/posts/a-good-interviewer</guid><description>&gt; 🚧 This article talks about engineering interviews, but certain points can be applicable across industries. For me, the worrisome thing about changing careers is interviews. Learning new things, and preparing for the interview is easy compared to taking the actual interview. Interviews are hard en</description><pubDate>Thu, 01 Sep 2022 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;🚧 This article talks about engineering interviews, but certain points can be applicable across industries.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;For me, the worrisome thing about changing careers is interviews. Learning new things, and preparing for the interview is easy compared to taking the actual interview.&lt;/p&gt;
&lt;p&gt;Interviews are hard enough for the candidate without the interviewer making them harder. The interviewee has all kinds of thoughts that are making them nervous.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;What if I don’t crack this interview?&lt;/li&gt;
&lt;li&gt;What if I suck at this, I’ll look like a fool in front of the interviewer.&lt;/li&gt;
&lt;li&gt;If I don’t crack this, my friend who referred me, what will they think?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;And the list goes on and on.&lt;/p&gt;
&lt;p&gt;Interviewers can’t do much about these thoughts. Except make the interview not intimidating and a pleasant experience for the candidate.&lt;/p&gt;
&lt;p&gt;A pleasant interview will set the right tone about your company. Because, after HR, the interviewer is the next person the candidate talks to. I will never join a company if the interviewer is arrogant, or rude.&lt;/p&gt;
&lt;h2&gt;Starting the interview&lt;/h2&gt;
&lt;p&gt;Most of the time, when the candidate joins the interview, they are tense. A relaxed mind can think better, communicate better, and be more confident about themselves.&lt;/p&gt;
&lt;p&gt;It’s a good idea to start with small talk.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Where are they from and what’s unique about the place?&lt;/li&gt;
&lt;li&gt;How are they enjoying remote work/coming back to the office?&lt;/li&gt;
&lt;li&gt;Anything else you found from the resume, like hobbies or side projects they worked on.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A 2-3 minute small talk can calm the candidate and fill them with some positivity.&lt;/p&gt;
&lt;h2&gt;Diving to interview topics&lt;/h2&gt;
&lt;p&gt;Job Interviews shouldn’t be like a quiz, but more conversation should be added.&lt;/p&gt;
&lt;h3&gt;Why so?&lt;/h3&gt;
&lt;p&gt;When you do a quiz format, you end up getting mugged-up book answers. But when you converse, you can have a real talk about things from the same level.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;How would you do so-and-so?&lt;/li&gt;
&lt;li&gt;What’s your thought process for doing something, what would you use for it, and why would you choose those tools?&lt;/li&gt;
&lt;li&gt;when was the last time you faced something similar?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You get the gist.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;🚧 These questions might differ for a fresher as they might have less exposure to real-world implementation. In that case, I resort to some problem-solving questions. I’m more interested in the pseudo-code, doesn’t have to be in any programming language.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Working with the candidate&lt;/h2&gt;
&lt;p&gt;It is possible that the candidate gets stuck on certain questions. Reasons for that could be, that they are not familiar with the scenario explained, or terminology, or just forgot it.&lt;/p&gt;
&lt;p&gt;If you feel the candidate has misunderstood, It&apos;ll help to rephrase the question to make sure the candidate understands what you&apos;re talking about.&lt;/p&gt;
&lt;p&gt;If you feel the candidate is stuck at a certain point or at some stage in problem-solving, give them a slight nudge. Try to see where they are stuck and giving small clues gets them going. After all, as developers, we take help from online communities on daily basis.&lt;/p&gt;
&lt;p&gt;And if all of this is not working out, better move on to the next question.&lt;/p&gt;
&lt;h2&gt;Taking the decision after the interview.&lt;/h2&gt;
&lt;p&gt;The decision-making can be the hard part of the interview.&lt;/p&gt;
&lt;p&gt;At times, it is pretty clear the candidate is not a good fit for the role. And sometimes you find the right candidate for the role.&lt;/p&gt;
&lt;h3&gt;Rewind&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Take a hard look at the job responsibilities for the role candidate is interviewing. How good would the candidate be in that role?&lt;/li&gt;
&lt;li&gt;Even though the candidate might’ve missed a few details in the interview, do you see the potential in them to pick up things and be ready for the role?&lt;/li&gt;
&lt;li&gt;Would you be ready to accept them to your team, and work with them?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If the answer for all the above points is yes, it’ll be good to move them to the next round.&lt;/p&gt;
&lt;p&gt;And if it’s a NO, it&apos;s best not to proceed with the next rounds. There’s no reason to feel bad for the candidate, it’ll work out for everybody. The candidate doesn’t have to stick with a role that he’s not a good fit for, and the company should not end up with somebody who’s not a right fit.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;It is much, &lt;em&gt;much&lt;/em&gt; better to reject a good candidate than to accept a bad candidate - Joel Spolsky,&lt;br /&gt;
&lt;a href=&quot;https://www.joelonsoftware.com/2006/10/25/the-guerrilla-guide-to-interviewing-version-30/&quot;&gt;The Guerrilla Guide to Interviewing&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Improving your interview&lt;/h2&gt;
&lt;p&gt;You always have room to improve your interview process. The interview methods and questions keep evolving, and you should make sure you keep up with them.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Talk with your peers about their interview process and discuss your methods as well. Learn from the methods that have worked well for them, and avoid the mistakes they made.&lt;/li&gt;
&lt;li&gt;Let someone with interview experience shadow your interviews. An experienced peer of yours can join your interview, and observe the process. After the interview, you both can talk about how did the interview process go.&lt;/li&gt;
&lt;li&gt;Do research about your questions. You should know your questions and answers well. And that&apos;ll help you to judge the answers better. Not every candidate answers the question in the same way.&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>Say more than Hi</title><link>https://typeofjust.in/posts/say-more-than-hi</link><guid isPermaLink="true">https://typeofjust.in/posts/say-more-than-hi</guid><description>In 2020, remote work took over the software industry. After year long experiment, lot of companies decided to embrace remote work, and hybrid. Even with a more than a year remote work, people still miss a key thing about asynchronous work. And a key part of this how you start a conversation with you</description><pubDate>Sun, 14 Aug 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;In 2020, remote work took over the software industry. After year long experiment, lot of companies decided to embrace remote work, and hybrid.&lt;/p&gt;
&lt;p&gt;Even with a more than a year remote work, people still miss a key thing about asynchronous work. And a key part of this how you start a conversation with your co-worker.&lt;/p&gt;
&lt;p&gt;People are no longer working during the same hours. Everybody try to make the best out of remote work and except few overlapping hours, people get things done at their own leisure.&lt;/p&gt;
&lt;p&gt;This is a common pattern I’ve seen while communicating via Slack/MS Teams.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-js&quot;&gt;Jim: Hi

// after 2 hours
Dwight: Hello

// after 30 minutes
Jim: I wanted to know about so-and-so...

// after 10 minutes
Dwight: This is how you do so-and-so...
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If you look at the above conversation, to get to the point more than 2 hours is wasted. I’m not saying every conversation is like this, but some of them are.&lt;/p&gt;
&lt;p&gt;What’s missing here?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;When the communication is started, there’s no context.&lt;/li&gt;
&lt;li&gt;A good amount of time is wasted without getting to the point&lt;/li&gt;
&lt;li&gt;If Jim had communicated what they wanted to know in the first message, Dwight could’ve had some time to think about it and reply.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;How can this be better?&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-jsx&quot;&gt;Jim: Hi, I wanted to know about so-and-so...

// after 2 hours
Dwight: This is how you do so-and-so...
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Before I talked about having no context for these type of communication, and that could be problematic. When Jim pings &lt;code&gt;Hi&lt;/code&gt; to Dwight, a lot of things could run in Dwight’s mind.&lt;/p&gt;
&lt;p&gt;Dwight have no clue why Jim is messaging, and Dwight can think all sorts of things.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Why is Jim messaging me, he hasn’t messaged me in a long time?&lt;/li&gt;
&lt;li&gt;is it about the last thing he requested, I had told him I’ll give this next Friday?&lt;/li&gt;
&lt;li&gt;or did I/he mess up something?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Your brain is wicked thing, it starts running wild at times. Let’s not do that. Let’s be more wise and embrace asynchronous work.&lt;/p&gt;
</content:encoded></item></channel></rss>