Introduction
Hi Akshay, would love to know a bit about your professional background.
Hi, I’m Akshay, I graduated from NIT Trichy in 2014. I have around ten years of experience now, and I've worked with a variety of companies at different stages. I've been a part of larger companies like Microsoft and Google, as well as smaller ones.
My current company is at the Series A stage, and I joined them when they were at the seed stage. Similarly, my previous company was also at the seed stage when I joined, and I've also worked with a company that was at the pre-IPO stage.
Throughout my career, I've primarily focused on the backend side of things, working with infrastructure and backend technologies.
Day in the life of a software engineer
- What does a typical day look like for you as a software engineer?
It depends on my current company. Currently, we have daily meetings from 9:00 to 9:30 AM and from 9:30 to 10:00 AM. Apart from that, I usually start my work around 10:00 or 11:00 AM and do deep work from then until about 5:00 PM.
My schedule is quite flexible, and it mostly depends on when I want to work and when I have to discuss things with different stakeholders, sometimes in India and sometimes in the US. We have two-week sprints, so the tasks are spread across that period, and I don't have daily deadlines.
After work, I try to work out. That’s about it!
- How much time do you spend coding vs in meetings?
It varies depending on the company and the project I'm working on. In my current company, we don't have any product managers, so as engineers, we also wear the product manager hat.
We're a team of around 30 engineers, and sometimes I discuss with our customer support person to understand the issues customers are facing and how we can prioritize them as part of our engineering efforts.
At the start of a project, when we're finalizing the scope, design, and overall timeline, a lot of meetings happen. However, once the execution starts and we've finalized how we want to implement things, the number of meetings decreases, and the focus shifts to implementation. At that point, I mostly interact with the two or three team members I'm directly working with on the project.
- What’s your mantra to get quality work done daily?
It depends on the individual and what increases their overall efficiency. For me, creating a to-do list and prioritizing tasks has been helpful. I divide tasks into multiple sections based on their importance and urgency.
Every day before starting work, I review the tasks I want to complete that day and prioritize them. Having these goals in mind automatically makes me more efficient, as I plan my days accordingly. When you prioritize tasks beforehand, it helps you stay focused on what you want to achieve.
I believe junior developers who are starting their careers should try to have a constant, fixed routine and avoid the tendency to slack off when there's no pressure and then stretch near deadlines.
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
When I'm in the office, I use a monitor, which helps when I need to switch between different things. However, in previous companies, I've also worked just using my laptop without any additional monitor, and it has worked well for me.
2. Software
A. Go-to browser
I use Google Chrome as my primary browser.
B. Core work and coding tools
Currently, I use PyCharm for Python development at my company. Earlier, when I was working on Java projects, I used IntelliJ. Both IDEs ha ve numerous plugins available. For example, we use Docker for local development, and there are plugins to integrate Python or IntelliJ with Docker, among many other useful plugins.
C. Favorite programming language
I have mostly worked with Java, and I'm currently working with Python as well. However, I don't have a particular preference between the two.
Big Tech vs Startups
- I noticed you've worked in both big tech (Google) and growth-stage startups (Kognitos). Firstly, can you tell me your preference between the two?
I prefer the startup environment more.
- How would you compare startups with big tech?
1. Teams
There are multiple factors at play, and it depends a lot on which team you work within a bigger company. The culture can differ across teams even within the same large organization.
As you grow more senior, it's more about the impact you create, which is how you can grow and get promoted.
In startups, it's often easier to demonstrate impact because there are many things to be done. In bigger companies, it depends on the team you're in. If you're in a team where a lot has already been accomplished, there might not be much scope for improvement.
2. Projects
I enjoy working on a mix of tech-heavy projects and product decisions that involve stakeholder management. I find this mix easier to find in startups.
In bigger companies, if you're very senior, you might focus more on stakeholder management and product decisions rather than tech-heavy things. In startups, it's easier to do a mix of both, and I don't want to miss out on my technical depth as I grow and focus on management or design aspects.
3. Speed
Another factor is the speed of execution and ownership. In a big company like Google, a mid-level developer with 3-4 years of experience might need to get approvals from multiple teams, which can slow down the process. It makes sense for a company like Google, as they can't afford bugs, but I prefer the approach of implementing fast, failing fast, and iterating.
Startups also have processes in place to prevent bugs and ensure proper testing, but iteration speed is important. You can implement projects quickly and gain a broader horizontal breadth of experience in the same time.
4. Compensation
Financially, you might earn slightly more in a big company (around 1.3x), considering public stocks as part of your compensation.
In the case of startups, if you believe in the company's potential, you can earn a lot if it grows big. It's like investing in angel investments instead of safe stocks or large caps. The risk-reward ratio depends on your personal financial goals and how much confidence you have in the startup's growth potential.
Navigating a New Tech Role
1. First month
Focus on learning the tech and interacting with people to understand the domain.
Do your due diligence by reading knowledge documents and identifying who you can discuss questions with. Batch your questions together to save people's time, and do your research beforehand.
Listen more than you speak, even if you don't understand everything initially. Be patient and gradually gain domain knowledge. If you're a senior joining a new company, wait until you've learned the domain before providing meaningful inputs.
2. Next 3 months
Identify the team you want to work in and understand how you can provide impact and help the company grow.
Plan a roadmap with your manager for the next three months to a year.
Focus on making a good first impression by delivering tasks within the estimated timeframe. People will be more willing to interact with you if you have a good reputation.
3. 6-12 months
In the six to twelve-month period, your focus will depend on your role and designation. If you're a senior person like a staff engineer, contribute to your team and also provide value across different teams by participating in design discussions.
Once you have a good hold on your day-to-day tasks, look for opportunities to make an impact across teams, regardless of your seniority level.
This is also a good time to seek feedback from peers and managers to identify areas for course correction.
- If you had to give a KPI to know that you’ve succeeded in each of these phases, what would those be?
It's difficult to generalize KPIs because they depend a lot on the team, project, and complexity. Some projects are very straightforward, and you can understand them within a week and start working easily. Other projects, like the one I'm currently working on, are very complex, and it can take two to three months to properly understand them.
Rather than setting strict KPIs like understanding the entire codebase within the first month, focus on being as efficient as possible during the first three to four months to make a good first impression.
Discuss with your manager and team what exactly needs to be done and prioritize accordingly. For example, you might be given a new project that doesn't require deep domain knowledge, allowing you to contribute immediately.
A good first impression will make it easier to get good projects and leverage support from stakeholders in other teams when needed.
- At the end of someone’s first year, what should their pitch to the manager be to ensure a successful appraisal, considering the KPIs you've mentioned?
Every company has defined values, even startups. When going for a promotion or creating a packet in bigger companies, showcase how you've demonstrated these values through your work.
For example, if customer obsession is a value, highlight how your work has positively impacted customers. If frugality in using resources is a value, show how you've improved performance, created an impact, and reduced the cost of running a service.
Throughout the twelve months, discuss with your manager what you should do to create an impact and help both the company and yourself grow. Document these discussions and showcase how you've accomplished the things your manager mentioned.
Most companies want to see the impact you've made, but the expectations will differ depending on whether you're a junior or senior developer. By keeping these things in mind and working accordingly, you should be well-prepared for a successful appraisal.
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 I've gained more experience, I've realized the importance of breadth over depth. Instead of memorizing specifics, I focus on understanding the broader scope of technologies.
I prioritize knowing that a solution exists rather than memorizing syntax or getting into the specifics of everything.
My current goal is to stay on top of trending tech in this industry, without going too deep into the details. If I need to implement something specific, I know I can easily find the information through Google or other resources.
2. Learning approach
I learn about new developments through networking and interacting with different people, as well as by reading articles on platforms like Medium and LinkedIn.
I think it's essential to understand what you want to become in the long run, such as a CTO, VP of Engineering, or Architect, as each role requires different skill sets and areas of focus. For example, an Architect needs to have a strong technical foundation and be on top of all technical aspects, while a VP of Engineering focuses more on ensuring timely execution and managing people across different teams.
Personally, I aspire to be in a role similar to a VP of Engineering, where I can interact with different stakeholders, wear the product hat, and still be deeply involved in the technical side of things. I believe upskilling should align with your long-term career goals.
Qualities of 10x engineers
1. Technical qualities:
From what I've observed, the smartest engineers generally have a strong depth of knowledge in two or three areas, while also maintaining a wide breadth of understanding across various domains.
It's often described as being a "T-shaped" engineer, with vertical depth in one area and horizontal breadth in many others. Of course, to grow technically, it's important to have worked on challenging and meaningful projects that allow you to develop expertise.
2. Non-technical qualities:
I would argue that non-technical skills and attributes are equally, if not more, important in determining an engineer's success and growth. While technical progress is a given, I believe that the core differentiating factors lie in an individual's attitude and what drives them.
As you progress in your career and take on more responsibilities, it becomes increasingly important to be systematic in your approach to work.
When you're overseeing multiple teams or projects, you need to have a clear system in place to keep track of everything and ensure that nothing falls through the cracks. I’ve seen great engineers excel at this.
I believe that the best engineers are those who are committed to continuous growth and learning.
They are not content with stagnating or relying solely on their existing skills - this mindset of continuous improvement and willingness to step outside of one's comfort zone is what sets apart the most successful engineers in the long run.
- What advice would you give someone to become a 10x engineer?
1. Be curious
Don't just accept things as they are given to you. Always ask questions and try to understand the reasoning behind decisions - even if you're not the one making the final call, by being curious and seeking to understand, you'll constantly be learning and growing. Stay up-to-date with the latest trends and developments in your field. Attend conferences, read technical blogs and papers, and participate in online communities.
2. Think beyond your immediate role
Put yourself in the shoes of a senior engineer or decision-maker. Consider the factors they would have to weigh when choosing a tech stack or designing a system. By doing this, you'll develop a more holistic understanding of the engineering process.
3. Focus on the why, not just the what:
Strive to understand the underlying principles and reasons behind any use case. When you encounter a new technology or approach, ask yourself: Why was this chosen over the alternatives? What problems does it solve? What are its strengths and weaknesses?
4. Seek out challenging projects
Look for opportunities to work on complex problems, collaborate with experienced engineers, and take on more responsibility.
I think becoming a great engineer is a journey, not a destination. It's about cultivating the right mindset, habits, and approach to your work.
By being curious, thinking beyond your immediate role, focusing on the why, continuously learning, and seeking out challenges, you'll be well on your way to achieving excellence in your engineering career.
- How do you think companies can retain these engineers?
When someone is looking at a company, they are looking at - the financial side, the learning opportunities, and the work culture.
Of course, different people will prioritize those things differently. Essentially, if any one of those things is bad, it's going to drive people away. You can't have the absolute best of everything, there has to be some balance. Like, maybe you provide great work and culture, but the financial package isn't the absolute top of the market. That's okay, some people will leave but many will still stick around for the other positives.
Just be clear on what you're offering and don't go to extremes on any one thing. If the work culture is toxic, nobody will want to stay long-term. I'm speaking hypothetically here, but I've heard stories of companies paying insanely well but having awful culture and work, leading to tons of turnover within 1-2 years.
The key is understanding the three pillars you're providing - compensation, learning, and culture - and being upfront about that value proposition when talking to candidates. If someone's current priority is just maximizing cash, don't oversell them on other aspects. But if you're giving wildly different compensation for similar work, that's going to encourage resentment.
It's impossible to retain everyone forever. Just be transparent about what you're offering and let people decide if that fits their current priorities.
Joining FAANG
- Do you think all FAANG engineers are 10x engineers?
No, it's not the case that everyone at those big tech firms is some genius-level engineer. That's an oversimplification. Calling someone a "good engineer" is pretty broad.
It depends on the type of work and what specific skills are required. Like, someone could be an amazing front-end engineer but lack other areas of expertise. You can’t just drop that person into a startup where they need to wear multiple hats - their specific skills might not be a great fit for that context.
The engineers at big tech companies are generally smart people. But being a well-rounded "good engineer" requires different knowledge when you're dealing with scaling a startup versus just going deep on one area at a large firm.
At big companies, engineers often get pigeonholed into very niche roles and don't get exposure to the full horizontal stack or infrastructure side of things. But engineers at startups tend to be more knowledgeable about the full technical stack and all the ancillary domain areas because they're exposed to more of the end-to-end problem space.
So in summary, I wouldn't say all engineers at FAANGs are automatically "great" - it really depends on how you define that and what skills are most important for your particular use case.
- A lot of engineers aspire to work at Google. Do you have any advice for those looking to join Google as an engineer? Anything they can do with their resumes, interviews, or job search process?
Hmm, actually - I've noticed the percentage of people wanting to work at the bigger tech companies has actually declined. A good number of top engineers are now leaving those big firms to join startups instead. But getting experience at a FAANG can still be valuable, even if you plan to move to a smaller startup after 2-3 years there. The FAANG resume brand makes it easier to make that transition.
1. On interviews
If your goal is to join a FAANG, cracking the interviews is key. Google specifically, really focuses on data structures and algorithms for junior roles. Practicing those DSA concepts is critical for acing their interviews. Amazon is similar - heavy emphasis on coding interviews around DSA.
For more senior roles, companies like Uber will also grill you on system design and low-level design rather than just coding problems. If you've worked on solid projects and have deep knowledge in those domains, you can prepare effectively using online resources.
But for junior roles at Google, honestly just nailing the DSA interviews is the main thing, even though those skills don't directly translate to day-to-day work.
2. On networking
In terms of networking with FAANG engineers, it's tougher because they don't tend to go to a lot of events. For me, I already had friends working at those companies from previous roles. But directly networking to just land a FAANG job isn't as helpful - the interviews are really about practicing and preparation.
Networking is more valuable if you want to stay in the loop on technology trends, get advice for starting a company, find talented folks to work with, etc. But specifically for just landing interviews at a FAANG, networking probably isn't going to be a big advantage over simply preparing for and crushing those coding interviews.
Negotiating salaries in Tech
When I'm in salary negotiations, I actually try not to throw out a number first. I prefer to get the company to provide their initial offer, and then go from there. But you definitely want to do your homework on industry standards for the role you're interviewing for.
I've been fortunate to have good relationships where I can openly discuss compensation with friends and colleagues in similar roles. That gives me a data point for what's reasonable. Not everyone has that though. There are sites like Blind and Fishbowl where you can see crowdsourced salary data, as well as potentially using other offers as negotiation leverage.
The key is understanding what your personal priorities are. If you're deciding between two very similar companies and roles, and it's mainly coming down to compensation, then yeah - negotiate hard based on the market data. But if you're really enthusiastic about one particular opportunity because of the work and growth potential, you may be willing to accept a lower base salary. In that case, be upfront - say you're super jazzed about the role, but the pay is lower than you can accept, and see if they can bridge the gap.
Most companies won't lowball you for no reason. They'll likely match a reasonable market rate once you make a case for yourself. When evaluating offers, look at the full picture - base, bonus, equity, their trajectory if it's a startup, the work itself. Figure out which factors are most important to you.
The negotiation strategy can differ depending on whether you're choosing between your dream job vs. the highest pay. But have a data-driven number in mind that you won't go below.
Assessing Job Offers: Beyond Salary
- How do you assess multiple job offers beyond just the CTC?
1. Culture
When you're looking to join a company long-term, work culture is critical - you don't want to end up in a toxic environment no matter what they're paying. That's an automatic red flag for me.
2. Company’s runway
If it's a startup, you really have to research their trajectory and funding situation. Are they well-capitalized with a decent runway, or at risk of going under in a year or two? Understanding the company's financial health and positioning is key before making that commitment.
3. Company’s Vision
Personally, I also get really motivated when I genuinely believe in the company's vision and what they're working towards. I want to feel bought into their mission and optimistic about their ability to execute against the competition based on metrics like ARR growth, quality of founders/investors, etc. Conviction in the long-term potential gets me excited.
4. Team
The caliber of the team itself is another big consideration. What kinds of engineers and leaders will I be working with and learning from day to day? If it's an all-star crew from top companies, that carries a lot of weight for my professional development.
So in summary, when salary isn't the primary driver, I'm evaluating the work culture, the company's financial health, whether I'm bought into their vision and opportunity, and the quality of mentors and teammates I'll be surrounded by. Those intangible factors of fit, belief in the mission, and potential to grow carry just as much weight as the straight compensation numbers.
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. Salary vs work
For me personally, it always comes down to what I want to be working on and learning. Even with an internal promotion, if I'm just going to be on the same projects and it's mainly a title/compensation bump, that's not as compelling to me. Don't get me wrong, better pay is nice, but honestly, we're fortunate that our industry compensates pretty well in general. So salary has never been the biggest factor for me.
2. Role
The main things I'd evaluate are: What kind of new projects or responsibilities would I get with the promotion? Am I going to be stretched and growing in meaningful ways? If it's just going to be more of the same work, even with a better title, that's less appealing.
3. Culture
Work culture is another huge consideration. If I'm not mixing well with the current culture or leadership, no amount of promotion is going to fix that. I'd discuss whether a new role would tangibly improve that aspect before committing longer tenure.
4. Growth
Ultimately, it comes down to growth opportunities. If I don't feel I'm being challenged or learning enough in my current scope, a promotion alone isn't going to change that. I'd likely need to make the tougher choice of exploring external options that could provide more developmental value, even if it means leaving money on the table in the short term.
If the external offer checks the boxes of better culture fit, growth, and working on new problems I'm passionate about - those can outweigh the option of an internal promotion that may be mostly just a title/comp adjustment.
But every situation is unique. The keys are being honest with yourself about your priorities, and not just defaulting to the good-looking promotion if it's not going to be materially different work you're truly excited about.
Evaluating both options through the lens of maximal growth tends to lead me in the right direction.
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?
1. Signs of burnout
I've experienced burnout before. For me, it happened when I was putting in a ton of effort on a project, but then realized it wasn't going to have much impact because the company overall wasn't doing well.
There was this feeling that no matter what I did differently or how much extra work I put in, it wouldn't move the needle for the business trajectory. That's when the burnout really set in - when I couldn't see my hard work translating into meaningful outcomes or forward progress.
2. Maintaining Work-Life Balance
A lot of it comes back to those basic habits that we often overlook. Having some kind of task management system to plan your days and weeks is key, so work doesn't just pile up at the last minute. Getting exercise, eating well, engaging with your social circle - they're simple things, but they make a big difference.
In my experience, having simple routines and being intentional about leaving space for personal time is crucial. It's so easy to let work gradually consume more and more of your time and energy if you're not careful.