Flexiple Logo
  1. Home
  2. Blogs
  3. Tech Interviews
  4. Rameesh Roshan, Software Engineer at Deel

Rameesh Roshan, Software Engineer at Deel

Author image

Ekta Singh

Content Marketer

Published on Thu Jun 06 2024

Introduction

Hi Rameesh, would love to know a bit about your professional background. 

Hi, I’m Rameesh and I actually started off studying mechanical engineering in college. But later on, I had the opportunity to switch paths and do a full-stack development course at an institute in Bangalore.

After completing that program, I began my career in 2021 and have been working as a frontend developer at the same company for over two and a half years now. So it's been an interesting journey transitioning from mechanical engineering into the world of software.

Day in the life of a software engineer

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

Right now, my team is focused on building a new product, so a big part of my day involves things like design reviews, bug fixes, and testing. We try to be very disciplined with our sprint planning - we don't take on more than 8 story points per sprint.

After the initial sprint planning meetings at the start of each week, we have more frequent standup sessions, about every 2 days or so. The duration of these has increased over time as the team has grown larger.

But outside of those meetings, I try to optimize my time for focused, uninterrupted coding work. Whenever new issues or tasks come up between teammates, we create tickets for them right away, even if they can't fit into the current sprint. That way, we can address them quickly without losing momentum.

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

We have a few key strategies to keep things running smoothly. First, we're really disciplined about our sprint planning - we make sure no individual ticket exceeds 8 story points. That helps us avoid getting bogged down. And if anything comes up mid-sprint that needs to be addressed, we create a new ticket for it right away. Even if we can't fit it into the current sprint, we solve it quickly instead of letting it linger.

The other big thing is being selective about meetings. We've reduced the frequency of unnecessary sessions over time as the team has grown. Now we really try to protect time for focused, uninterrupted coding work.

It's all about that balance - being disciplined with planning and prioritization, while also carving out space for high-quality development. Keeps me productive and efficient day-to-day.

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

For my hardware setup, the company provided me with a basic 14-inch laptop. When I first started, I was working on a low-code platform and mainly doing local development. But these days, I'm focused on building apps with Angular and React.

 Since I have a fully remote role, I don't need to be in an office. I just have my laptop and can work from anywhere. Although, just last week I did get a new external monitor. The laptop alone was starting to struggle a bit, especially when running test cases, so the extra screen has been really helpful.

2. Software 

In terms of the actual coding tools, I'm a big fan of Visual Studio Code. I use it with a bunch of plugins and extensions, like JS6 formatting tools, to streamline my workflow. And for testing, we rely on frameworks like Jest.

The core technologies I work with day-to-day are React, TypeScript, Material UI, and Tailwind CSS. JavaScript is definitely my preferred programming language - I'm most comfortable and familiar with it from my training.

It's a pretty standard tech stack for a modern front-end development team. The key is having the right tools and libraries to build efficient, high-quality web applications.

Big Tech vs Startups

I noticed you've only worked in startups until now. Do you prefer them over big companies? 

Since I'm still early in my career, I've actually preferred working at a more established company so far. The reason is that I wanted to get that foundational knowledge of software development cycles and processes. I felt that would give me a strong baseline to build upon.

But I can definitely see the appeal of the startup environment too. From talking to friends, it sounds like the work at a startup is often much more varied. You don't have as clearly defined roles - even as a frontend engineer, you might end up getting involved in backend or DevOps work as well. The learning curve is steeper, but the experience can be really broad.

In a larger corporate setting, the work is often more siloed and specialized. I'm focused on front-end development, and that's pretty much what I do day-to-day. For some, that could start to feel a bit monotonous over time.

The tradeoff is that the processes and workflows are usually more defined and stable at a big company. There's less ambiguity and uncertainty. Whereas at a startup, things are constantly in flux and you have to be very adaptable.

Ultimately, I think it comes down to personal preference and what stage of your career you're in. For me right now, I've appreciated the opportunity to hone my frontend skills at Patia. But down the line, I can see the appeal of the faster-paced, more varied work at a startup. It's something I'll likely explore once I've built up more experience.

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

When you start a new software engineering role, the key priority in the first month should be to maintain your coding skills and continue learning. Don't make the mistake I did, where I initially focused too much on low-code platforms and didn't keep up my actual coding practice.

Instead, make sure you're dedicating time every week, even after work hours, to writing code and improving your technical abilities. Don't let that fundamental skill development lapse, even as you're getting up to speed on the codebase and workflows at the new company.

2. Next 3 months

In the following 3 months, one pitfall to avoid is getting complacent with a light workload. Even if you only have a couple of tickets assigned in a given sprint, don't just coast. Instead, proactively ask for more work.

It's easy to get into a habit of doing the bare minimum when things are slow. But that can make it harder to ramp back up when the pace inevitably picks up.

Stay hungry and keep challenging yourself to take on more, so you don't risk becoming a procrastinator.

3. 6-12 months

Over the longer term, in that 6-12 month timeframe, the key is to build strong coding habits and not let them slip, even as the workload fluctuates. Get used to the cadence of frequent sprints and always be ready to tackle new tasks, rather than reverting to a relaxed mode when things seem lighter.

Maintaining that consistent, diligent work ethic will serve you well and ensure you're continually growing your skills, rather than stagnating. It's all about developing the discipline to keep leveling up, no matter how the workload ebbs and flows.

Upskilling in Tech 

So you’ve been in the industry for over 10 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 

As someone who originally studied mechanical engineering, upskilling and transitioning into software development was a major part of my journey. The motivation really stemmed from the fact that I had tried applying for IT jobs after college, but kept getting rejected due to lack of experience.

Even though I had some basic programming exposure from my studies, it clearly wasn't enough. So when the pandemic hit, one of my friends suggested I enroll in a full-stack development course. I figured I had nothing to lose at that point, so I went for it.

It was a big commitment - I had to stay with friends for 8 months straight, foregoing family functions and events, just to fully immerse myself in the curriculum. But I knew if I wanted to make this career switch work, I needed to go all-in on upskilling.

2. Learning Approach

During that 8-month course, I had a very structured learning routine. The program itself had 2 hours of classes per day. Then I would spend an additional 1 hour on peer discussions and problem-solving.

In the mornings, I would dedicate time to practicing coding exercises and BSA (Behavioral, Situational, Aptitude) questions. This hands-on work was crucial because I realized that even when you know the concepts, being able to articulate them in an interview setting takes practice.

Towards the end, I also started doing mock interviews to get that real-world experience.

Learning the material is one thing, but being able to communicate your knowledge effectively is a separate skill that requires deliberate preparation.

It was an intensive, disciplined regimen. However I knew I needed to make up for my non-traditional background, so I was willing to put in the time and effort to get my skills to the level required for software engineering roles.

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'?

Based on my observations, the truly exceptional engineers at my company share a few key qualities that set them apart from the rest:

1. The Breadth of Knowledge:

Even if an engineer is primarily focused on a specific domain like frontend development, the great ones have a broad understanding of the entire technology stack. They know how to set up a local database, run backend services, and troubleshoot Docker issues. This cross-functional knowledge allows them to be more self-sufficient and contribute beyond just their core responsibilities.

2. Depth of Expertise:

In addition to that broad awareness, the standout engineers also have deep, confident expertise in the primary languages and frameworks they work with day-to-day. They're not just familiar with the basics - they've truly mastered their craft and can tackle complex problems head-on.

3. Collaborative Spirit:

When they encounter issues they can't resolve on their own, great engineers don't hesitate to ask for help from their teammates. They recognize that everyone has different perspectives and strengths and that collaboration is key to growth. By openly sharing knowledge, they not only solve the immediate problem but also expand the collective expertise of the whole team.

4. Adaptability and Curiosity:

These engineers aren't afraid to venture outside their comfort zone. If they come across a new technology or challenge they're unfamiliar with, they approach it with an open, curious mindset. They're willing to learn and adapt, rather than getting stuck or refusing to tackle something new.

In essence, the standout engineers blend technical prowess with a collaborative, adaptable mindset. They have the breadth to contribute across the full stack, the depth to excel in their specialty, and the mindset to continuously grow alongside their teammates. It's this unique combination that sets them apart as true leaders and invaluable assets to the team.

Assessing Job Offers: Beyond Salary

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

The biggest thing I would focus on is the work culture. Even if the actual day-to-day tasks are comparable, the team dynamic and overall vibe of the workplace would be a crucial consideration for me. I really want to get a sense of how the engineers collaborate and support each other.

Work-life balance is important too. In my current remote role, I have a good handle on maintaining that healthy separation between work and personal time, with only around 8 hours per day. But if one of the new offers seemed like it would be more demanding, that could sway my decision.

Beyond just those two main points, I'd also want to understand more about the growth opportunities each company could provide. Is there a clear path for continued learning and advancement, or would I risk feeling stagnant over time? That long-term potential for development is key.

Ultimately, it would come down to finding the right holistic fit - an environment where I can thrive both personally and professionally.

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? 

Well, the way I see it, if someone is actively interviewing at other companies, they've likely already decided they want to leave their current role for one reason or another. It could be due to issues with the work environment, compensation, or even just a desire to relocate.

But in a scenario where the choice is between staying put with a promotion versus taking an external offer, I think the safer bet is usually to go with the internal opportunity, assuming the current company is a good, stable organization.

The reason is, that you already know the ins and outs of how this company operates. You have relationships with your colleagues, an understanding of the work, and a proven track record. Staying put means you can continue building on that foundation and become an even more valuable asset.

That said, there may be other personal factors at play that could sway the decision one way or the other. Things like work-life balance, growth potential, or location preferences could all come into consideration.

Ultimately, it comes down to what's most important to you. If the external offer presents a truly transformative opportunity, that may be worth exploring.

I'd say sticking with a promotion in your current, familiar company is often the safer and more sensible choice.

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?

One of the key things I do is to take regular breaks when I'm getting stuck on a task. If I'm working on something for more than 15-20 minutes without making progress, I'll step away for a bit instead of pushing through. Sometimes all it takes is a short break to come back with a fresh perspective.

I actually picked up this habit during my coding boot camp as well. The instructors advised us not to spend more than an hour trying to solve a high-level problem. If you're just spinning your wheels, it's better to take a step back rather than burning yourself out.

And being a remote worker, I have the flexibility to work at the times when I'm most productive, even if that means late nights sometimes. If I'm in a good flow state and really focused, I'll keep going, rather than adhering to strict 9-to-5 hours.

At the same time, I make sure to balance that out by spending quality time with my family, especially my nieces. Having those personal connections and hobbies outside of work is crucial for maintaining that sense of work-life separation.

The key is to listen to your mind and body. If you start feeling drained or frustrated, don't power through - take a break, get some fresh air, reset. Burnout is a real risk in this industry, so being proactive about your wellbeing is so important.

Related Blogs

Browse Flexiple's talent pool

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