Flexiple Logo
  1. Home
  2. Blogs
  3. Tech Interviews
  4. Kaustumbh Jaiswal, Freelance Software Engineer at Thimblerr

Kaustumbh Jaiswal, Freelance Software Engineer at Thimblerr

Author image

Ekta Singh

Content Marketer

Published on Thu May 30 2024

Introduction

- Hello Kaustumbh, would love to know about your professional background.

-

Hi, I’m Kaustumbh Jaiswal, and I graduated from DSC Bangalore in 2020. After that, I worked with a mobility solutions company called Six Research and Development for around 9-10 months as a software development engineer. Then I moved to Amazon, where I worked on the Sedar bank account verification team as a software development engineer for about a year and three months.

After my job at Amazon, I decided that the corporate world wasn't for me, so I quit my job and started working on my own startup, Quiddo. At Quiddo, I co-founded a crypto investment application called Cryptido, where users could connect their exchange accounts and invest in expert-suggested crypto trading strategies. We were able to scale it up to around 1500 users and over $20,000 in assets.

However, I learned an important lesson about timing being crucial when starting a startup. We started Cryptido during a funding crunch and a crypto bear market, so the company couldn't generate enough revenue to sustain itself. That's when we decided to shut it down, and I started freelancing.

I worked with a few companies as a freelancer, including Thimblerr, which I got to know through Flexiple. My most recent work has been with a startup called Watson Health, which is in the pharmaceutical space and building automation software for pharmacies. 

Day in the life of a software engineer

- What does a typical day look like for you as a software engineer?

It really depends on the company I'm working for and the kind of projects I'm involved in. Typically, my day starts with a scrum or stand-up meeting where the entire team gets together to discuss what we worked on the previous day, any blockers we're facing, and what we plan to work on that day.

After the stand-up, around 6-7 hours of my day is usually spent coding, debugging, writing tests, doing some documentation work, designing systems, getting my code reviewed, and reviewing my peers' work as well. I try to reserve about an hour or so for any ad-hoc meetings that might come up during the day.

- How much time do you spend coding versus in meetings? 

The split between coding and meetings depends on the specific client and project I'm working on. If my role involves more system design and building scalable solutions, then I tend to spend more time on the design and architecture aspects, while the implementation can be done by junior developers. In that case, the split might be around 60% coding and 40% meetings/design work.

But in general, I'd say it's roughly a 60-40 split, with the majority of my time going toward actual coding and the rest towards meetings, design, and other non-coding tasks.

- What’s your mantra to get quality work done daily?

One strategy that has worked well for me is to divide my time into slots based on the time zones of my clients. For example, if I'm working with clients in the US, I'll dedicate the time slot between 9 PM to 1 AM (IST) to them, and the 12 PM to 6 PM (IST) slot for any Indian clients. I also try to have some overlap, like 10 AM to 12 PM (IST), to be available for any urgent meetings or discussions.

This way, I'm able to manage my time efficiently and not overexert myself. I also make sure to strictly adhere to these time slots so that I can stay focused and deliver quality work for each of my clients.

Tech Stack 

- With so many new tools popping up in the tech world every day, it can be hard to keep track! Can you tell us some specific tools that you swear by? Give us a peek into your tech stack.

-

- 1. Hardware Setup

I have a 32-inch monitor that I use as my primary display. Since my laptop is a 14-inch MacBook Pro, the larger monitor gives me more screen real estate to work with, especially when I'm doing more intensive coding or design work. I have a two-screen setup, with my laptop screen acting as a secondary display.

In addition to the monitor, I also use an external keyboard and mouse. I find this setup to be much more comfortable and ergonomic than just relying on the laptop's built-in peripherals.

2. Software 

A. Go-to browser

For my software setup, I try to keep my personal and work-related browsing separate. I use Microsoft Edge for all my work-related activities, where I create separate user profiles for different clients. This helps me stay organized and ensure I'm using the right credentials for each project.

B. Core work and coding tools

When it comes to the actual coding and development tools, I tend to use the IDE that best suits the language I'm working with. For Python, I prefer PyCharm, for JavaScript and React I use VS Code, and for Java I like IntelliJ IDEA. I also make extensive use of AI-powered tools like ChatGPT and Copilot, especially for quick debugging or generating boilerplate code. These tools have really helped me speed up my development workflows.

C. Favorite programming language

As for my preferred programming languages, I've worked with a variety of them, including Python, JavaScript, TypeScript, HTML, and CSS. I don't have a strong preference for any one language, as I believe it's important to be adaptable and comfortable working with different technologies based on the project requirements.

Big Tech vs Startups 

- I noticed you've worked in both big tech (Amazon) and growth-stage startups (Thimblerr). Firstly, can you tell me your preference between the two? 

I think my preferences have depended on the career phase I’m in. When you’re in college, it’s quite common for engineers to want to work at a big tech company - it was the same for me. I joined Amazon after college. Fun fact, I even got an offer from Google while I was gearing up to build my startup. I rejected it because I did not want to work in a corporate setting anymore.

I’d say right now I do prefer startups because of the sheer amount of incredible work you’re able to take and the impact you are able to make.

- How would you compare startups with big tech?

I think two key differences between a startup and a big company are, first, learning, and second, growth. 

At a startup, you get to learn a lot because you’re mostly building things from scratch. The projects you work on carry a lot of responsibility and importance, which means you create a high impact with your work. This level of involvement is not as common at bigger companies, although it does depend on the team you’re in.

The growth trajectory while working at a startup, compared to an MNC or a big company, is much different. 

In my personal experience, I thrived more at a startup because communication was more direct and straightforward. There are fewer processes in place, so you can focus on execution, which fuels your growth.  That doesn’t mean you don’t see growth in an MNC. It’s just slower, and due to the process-driven nature of big companies, it can be very different.

- What are the key qualities of someone who would be a perfect fit for a startup versus big tech?

I think this purely depends on someone’s personal preferences and what they seek from a job at a particular phase in their career. If you prefer having some decent stability in your life - maybe you’re in that juncture of your life where a stable job will do great things for you, then you’re suited more for a corporate culture. 

But if you’re at a phase of your career/life where you want to keep exploring more things, you want to see more growth and meet new people, and maybe someday want to start your startup - then it makes sense to join a startup. You will get familiar with how things are built from scratch, you will learn from the wins and failures and those will be invaluable learnings for your career moving forward which are easier to see firsthand at a startup than at a big company. 

- Since we're on the topic of getting into tech, I'd love to hear your top tips for someone navigating their first 12 months in a role. Let's break it down into three parts: the ideal 1-month, 3-month, and 6 to 12-month period.

1. First month

In the first month of starting a new software engineering role, the key focus should be on getting a thorough understanding of the business context. This means learning about the product the company is building, why they're building it, who the target users are, and what the future scope of the product looks like. Developing this business acumen will help you situate your technical work within the broader goals of the organization. 

Additionally, in that initial month, it's important to understand the company's communication guidelines and preferred ways of working, especially if you're in a remote or hybrid setup. Identifying the right channels and cadence for asking questions, providing updates, and collaborating with the team will ensure you can be productive and aligned from the very beginning.

2. Next 3 Months:

Once you have a good grasp of the business and communication norms, the focus for the next 3 months should shift to delivering high-quality code and work that seamlessly integrates with the rest of the team's efforts. Pay close attention to how your individual contributions fit into the bigger picture and the impact you're able to create. This will demonstrate your ability to be a strong, collaborative team player.

3. 6 to 12 Months:

In the 6-12 month timeframe, start taking on more ownership beyond just your core coding responsibilities. This could involve things like onboarding new employees, mentoring junior team members, or providing strategic insights on the product and its development. Expanding your involvement in the company beyond your immediate engineering tasks will show your versatility and willingness to grow into a more well-rounded, impactful member of the organization.

- If you had to give a KPI to know that you’ve succeeded in each of these phases, what would those be? 

1. First month

During the initial month, my main goal is to fully understand the company, its products, and the services we offer.

By the end of this period, I aim to know which teams are working on what projects, how they communicate, and how I can communicate with them effectively. I will prioritize collaboration as it's the best way to grasp the intricacies of our product.

2. Next 3 Months:

In the following three months, I will focus on writing high-quality code that seamlessly integrates with the rest of the team's work.

3. 6 to 12 Months:

In the latter half of my first year, I plan to expand my role beyond my primary responsibilities. I want to become an indispensable member of the engineering team by actively supporting my colleagues in various ways. This includes mentoring junior engineers and helping the company onboard new talent.

While specific KPIs may vary depending on one's seniority and role within the engineering team, I think the underlying principles remain the same. It is essential to not only complete assigned tasks but also to contribute to the company's success in ways that extend beyond one's primary responsibilities.

- Finally, let’s say someone has completed their first year at their job, at the end of 12 months, if they want to have a successful appraisal, what should their pitch be to the manager given the KPIs you’ve mentioned?

I think you should be pretty confident in your abilities if you feel that the amount of work you are doing and the pay you are getting for it aren't justified. It happens to me a lot with clients. For example, when I quote a certain price, they might say it's too expensive or they can't afford it. In these situations, I have a conversation with them and explain that if they want to hire a good-quality engineer, they have to pay a certain premium.

The same thing applies when working at a company. If you've been with a company for about a year and feel that your contributions and the business you've created are much more than what you're being compensated for, you should bring it up with your manager. If they also recognize your efforts, they would be willing to renegotiate your payment terms. However, if they don't acknowledge your contributions, then I think it's better to consider switching to a different company.

Upskilling in Tech 

- So you’ve been in the industry for almost 5 years now - I’m sure you must have picked up new skills during this time. Can you tell me what was the motivation for upskilling and how did you go about it? 

- 1. Motivation

For me, the motivation to learn varies from individual to individual. I usually learn when I'm curious about something while working on a project. For example, if a thought crosses my mind about how dependency injection internally works for a Java bean or Java class, I simply go ahead and read about it through a quick Google search or ask Chat GPT.

However, my primary way of learning is by taking on new projects and challenges in my current work. This way, the time I invest in learning aligns with the hours I'm putting into my work, and I get to learn something new in the process. So, I usually learn through my work and the new things I pick up in my current projects.

Rather than randomly taking up a course or learning something that I might never need, I believe it's better to focus on what I'm currently working with and the different technologies being used in my current role. I try to see how I can leverage those to do a better job. In the tech industry, new frameworks and technologies are launching every day, and it's very difficult to keep up with all of them. So, I find it more practical to learn through my work.

My motivation is the impact I can create - being able to add more value and solve meaningful problems excites me the most.

The trigger for me is not just about learning new tech stacks/languages, but understanding how companies have applied technologies to solve real-world challenges. I like to learn decision-making frameworks and gain insights from how others have tackled problems, not just theoretical knowledge.

- 2. Learning approach

Medium blogs are definitely a good resource. I used to write extensively on Medium a couple of years back and have published some articles that were accepted into top journals. However, I haven't found much time lately to continue writing, but I may get back to it sometime.

For learning something trivial or a small thing, I find the best resources are either Ask GPT or Copilot because they save a lot of time. But if you want to go more in-depth about a topic, it's better to search for it on YouTube or read a detailed blog post.

- 3. Practical Application

Open-source contributions are definitely a good learning source, and you can build a personal brand while doing it. However, I believe that the will to learn is more important than just going out and learning a skill.

For example, if you know something can be done in a certain way, but you think there might be a better, more optimized approach, you can research it. If you find an optimized way, spend a couple of hours learning that skill and immediately plug it into your work. The idea is not to learn it now and plug it in later, as I feel that recall doesn't work like that.

Whatever task you are doing, first see what solution you are implementing. The next step would be to search for better ways to do it. If there are, learn it, implement it, and get done with it. If not, then just move ahead with your current approach.

Qualities of 10x engineers

- I'm sure you've come across your fair share of engineers often labeled as '10x engineers' in your career. What do you think sets these folks apart? Tell us qualities or traits you believe contribute to someone being considered a '10x engineer'?

I think the first and foremost quality that sets apart a good engineer is the "go figure" mentality. If you don't know how to get something done or if you're stuck on an error or issue, you should have the mentality of "This is the problem I'm facing. How do I fix it and solve it on my own?" You can use any resources for it - watch videos, Google search, GPT, AI, anything. You should just get the job done. That "go figure" mentality is really important, along with the eagerness to learn.

I've worked with some engineers who, when facing an issue they can't solve, just hand it over to a senior and say, "Hey, please help me out. I'm not getting how to solve it." But I think an engineer should have the eagerness to learn and grow more.

Another thing is that they should focus on good coding quality standards. They should make sure that whatever system they are designing or code they are delivering not only fulfills the current needs but will also align with future needs and how the product must evolve. They need to have that farsightedness and vision as well.

Some non-technical traits I would say, which might differ from person to person, are that a great engineer has good leadership skills. At some point, they're not going to be doing all the work themselves. There will come a time when they're doing maybe 20% of the most critical work and 80% should be delegated to other people. So I think a good engineer should have good leadership skills and be extremely good at delegation as well.

- What advice would you give someone to become a 10x engineer?

I think the most important thing to get a good job is to just focus on your skill set. In today's era, when remote work has become so prevalent thanks to COVID, which sped up the entire process, anyone working in any country can get a good remote job. It's pretty easy now compared to maybe three or four years back.

So you should purely focus on your skill set, owning your craft, developing more projects, and showcasing your skills. If you are able to do that, you should definitely be able to land a good job.

I don't believe colleges matter much at all. The role of college only helps you get your first job. After that, you are on your own.

The most important thing about NITs or IITs is definitely the network, not the placements or companies that visit them. Even if you belong to a tier 2 or tier 3 college, you can definitely make it just by working on your skills.

- How do you think companies can retain these engineers? 

I think the first thing is that the company should really be open to suggestions. For example, if someone is making a suggestion from a tech perspective, whether it's related to hiring, business, or product, the company should be receptive to it. That is one of the key points.

The second is obviously the pay. The engineer should be compensated well enough for the amount of work they're getting done.

Another thing I look for in a good company is that they should focus on delegating the work and getting it done in the best way possible. It shouldn't be about micromanaging, like saying "You have to be available in the office" or "You have to work from this shift to that shift." That shouldn't be there. Engineers should be given more flexibility to work on their own timings or whatever works best for them.

Negotiating salaries in Tech 

- Negotiating salaries can be very tricky. Can you share what’s your typical approach to it? 

So I will answer this from a freelance perspective - one of the key things I do before applying to any company, getting started with the interview process, or working with any clients is to quote my hourly or monthly rate to them upfront. I make it clear from the very beginning, saying, "This is the hourly rate that I'll be charging you."

If a certain client or company is not willing to pay that amount, they get screened out in the first step itself. There's no need to waste time going through their entire interview process and then negotiating salary at the end. This approach has been working out pretty well for me. I always quote my rate first before getting started with any interview process or even applying. I check what their budget is and if it suits my needs or not.

Once I've quoted my budget and gone through the interview, some of the things I ask them are:

  • What are they looking for in an engineer?
  • What is the product they are building?
  • What is the problem they want to solve?
  • Why are they hiring an engineer?
  • What would be the benefits if they hired a high-quality engineer versus a lower-quality one?

By doing this, the client or company ends up negotiating with themselves because they are placing more and more justification for the salary you are asking for. They are answering the questions themselves - you're just asking them the right questions. This strategy works well.

If you feel that you are getting underpaid or the company is undercutting you, then I believe it's better to go for some other offer.

- In your opinion, what other things can be negotiated other than the CTC?

Equity or ESOPs is definitely the next thing to consider after salary. Most startups are very flexible in negotiating equity because it's something they don't have to pay upfront, as many of them are already running on tight burn rates and have to answer to investors. So, I think you can very well negotiate the ESOPs you are getting with most startups.

One thing with respect to ESOPs that I believe would work even better in favor of the candidates is to try and negotiate the vesting schedule. Most companies follow a four-year vesting schedule, which is pretty long. But if, for example, a company is offering you a slightly lower pay but is open to negotiating the vesting schedule so that your ESOPs get vested in a couple of years or maybe three years, with just a cliff of six or eight months, then I think that would be a favorable option.

Assessing Job Offers: Beyond Salary

- How do you assess multiple job offers beyond just the CTC?  

1. Work arrangement

For me, the first and most important thing is remote work. The company should be open to me working remotely. That is my top priority.

2. Company Funding

The second thing I usually look at is what kind of funding the company has. Does the company even have funds to pay me, and will it have enough funds to pay me in the coming three to six months?

3. Role commitment

The third thing I look at is how long the company is looking to hire me. Are they looking for a short-term role or a longer-term commitment? So those are the three main things I usually consider before getting started with a company.

4. Tech stack

I'm not very big on just working with a specific tech stack and nothing else. I am very flexible. If there's a tech stack the company uses that I'm not aware of, I'm pretty open to learning it and getting the work done. So yes, those three would be my top priorities to make a decision between two offers. 

Assessing Job Offers: Promotion vs New Job

- At some point, you or someone you know might have an offer for a new role outside your current company or a promotion internally. How would you decide between the two? 

1. Equity offered

One thing I would first check is if I have been offered any equity and where I currently stand in my vesting cycle. For example, if I have six to eight months left until my ESOPs fully vest, I would definitely be willing to stay at the same company, even if the other company might be offering me a 20% to 30% hike on my current CTC or pay. That is one thing I would definitely consider.

2. Team

Another factor is the team. It depends on how supportive your teammates and manager are. For example, if the company is very flexible when you need to take a leave or go on a holiday, that's another thing I would consider. It also depends on the rapport I have developed with my teammates and managers.

3. Growth

If you are looking for growth, I think it depends a lot on the company. For example, if your current company is at a very early stage, doesn't have stable funding, and has gone through multiple near-death situations, then if you get an offer from a much bigger company with more stability in terms of funding and revenue, it would make more sense to jump ship, provided you have already vested your shares. If not, then it's better to stay at the same company.

4. Work arrangement

I would not go for the physical on-site offer and would still continue with the remote option. Location flexibility is one of my key priorities.

Navigating Layoffs

- The past year has been tough for engineers facing layoffs. Did anyone in your circle get laid off in the last year?

Yes, I had a friend who went to the US for his master's degree and was working at Amazon. He worked there for about two to three months and then was laid off. It was really difficult for him to find another job in the US because he had just graduated and only had around three to four months to get a job so that the company would sponsor his H-1B visa.

- Do you have any advice for people going through a layoff right now?

I think it totally depends on your skills. Even if a company is laying you off, in most cases, it's because they cannot afford your salary anymore.

If you are a skilled engineer and have faith in your abilities, you can definitely find a job quickly.

It might take a month, three months, four months, or even six months, but you will eventually find a job.

- What do you think can be a good job search strategy for engineers going through a layoff right now?

I think the only strategy that works is to apply to as many companies as you can. That's the only thing. Use different platforms like LinkedIn, and Wellfound (previously known as AngelList). You can even reach out to Flexiple! There are many platforms out there. There surely exists a job, or, many jobs, that you would like to go for. The key thing here is to keep applying and not get demotivated or demoralized.

Avoiding Burnout and Maintaining Work-life Balance

- Given that you’ve spent a long time in this fast-paced industry - what strategies do you recommend for avoiding burnout and maintaining a healthy work-life balance?

If I do feel I'm burning out, the first step is validating the root cause. Is it an excessive workload despite my efficiency? Or am I being inefficient and creating unnecessary burnout myself? Once I identify the true driver and assume it's not my own productive practices lacking, then I have an open discussion with my manager. A healthy relationship where you can surface these issues is important.

My personal strategy is that after an intense burnout period, I make a point to take 2 to 3 days completely off, beyond just weekends. Whether a short vacation or extended staycation - totally unplugging and doing non-work activities I enjoy is crucial for bouncing back. 

1. On the job

I would not advise people to work the way I do because I work crazy hours. There have been times when I have been working on two or three contracts at the same time. I definitely would not recommend that to anyone who's looking for work-life balance or gets burned out easily.

My suggestion for them would be to be time-disciplined. Fix the number of hours you'll be working. For example, set a schedule from 10:00 a.m. to 6:00 p.m. or 11:00 a.m. to 7:00 p.m., whatever works for you. Fix those hours and make that your work schedule. During those hours, make sure that you're completely productive and not getting distracted by other stuff. Fixing those timers can really help avoid burnout.

2. Off the job

I enjoy playing sports. I play basketball and football. I also like reading books, so that's something I like to do a lot. Another thing I try to do is learn one new thing every day. It might be related to any random topic. The other day, I was learning about why girls usually prefer to keep longer nails whereas boys don't, and why it's considered a cultural phenomenon for girls to have bigger nails which are usually considered pretty. I was reading about that. I'm just curious and like to read and know about anything I can possibly get my mind on.

Rethinking Tech Hiring 

- Have you ever faced any funny or ridiculous incidents during the hiring process of any company? 

Not really, nothing as such. However, one thing I find odd is asking freshers coding questions related to data structures and algorithms (DSA) for hiring. I think that does not do anything. It simply tells how well you have practiced your DSA. It gives absolutely no insight into the quality of the candidate or the amount of work they are capable of doing. I believe that is just a fad being followed in the industry and does not work that way.

I think a better approach to hiring would be to have a quick interview and maybe ask a couple of technical questions regarding the tech stack you are using at your company or whatever the candidate is familiar with. If you are satisfied that the candidate has given good answers and you have faith that they will be able to deliver as promised, then you can directly go ahead and hire them.

If you still have any doubts or want to assess the other technical skills of the candidate, you can give them a take-home task. For example, give them a problem statement and say, "This is what needs to be built. You go figure it out. Just build it." If the candidate comes back to you with the correct solution, you should directly go and hire them, because that's what is more important in the end - getting the work done.

Related Blogs

Browse Flexiple's talent pool

Explore our network of top tech talent. Find the perfect match for your dream team.