6 Months Internship Experience at Fyle
From Novice to Nurtured: Unveiling the Transformative Journey of My 6-Month Internship at Fyle
Hello, I hope you are doing amazing!
I am Roshan Mhatre, a software geek and a recent graduate from VIT Bombay.
I recently completed a six-month internship journey with Fyle.
Want to know how I converted intern to PPO?
So fasten your seatbelts and get ready to join me on this exciting journey!
Interview Opportunity
It was July 2022 when I completed my internship at a previous startup. I was searching for a new internship in full-stack/backend engineering roles through Internshala.
That's when I discovered Fyle.
Fyle is a rapidly-growing SaaS startup that aims to create a world where you don't have to spend even a second on managing expenses.
If you wanna know about my interview experience in detail, you can check out my awesome blog!
Onboarding
On my first day at Fyle, I had the pleasure of meeting Yitzhak from the People Success team.
During our scheduled 45-minute call, he walked me through the impressive perks and benefits that Fyle extends to its interns. Some of these benefits include an Apple MacBook, food and internet reimbursements, and access to a vast selection of top Udemy courses 🤩.
He also shared links to essential security and professional training courses to complete within the first week.
During the onboarding process, I received a delightful swag pack with a Fyle T-Shirt and Hoodie (jitne swags mile utne kam hai 😁). I also got a subscription to LibraryWala, one of India’s largest book-rental libraries.
Fyle recognizes the importance of personal well-being in today's world. That's why they provide interns with their own health insurance coverage too.
And here's the best part: Fyle doesn't have an HR team, because they value people and don't see them as mere resources.
Isn't that awesome?
First Month
After an awesome onboarding, I got to meet my manager, Sumanth, who had been with Fyle for 7 months at that time. To aid in my onboarding journey, Sumanth shared an “Onboarding Doc” with me.
The doc was really cool because it provided a detailed breakdown of tasks and activities tailored specifically for me, for the first three weeks of my internship. This approach showcased Fyle's commitment to ensuring that all interns have a seamless and hassle-free first month.
Over the first 2 weeks, I met each of my teammates and chat about their experiences and favourite projects at Fyle.
Quick tip: Take the time to get to know your teammates early on, you won’t feel awkward later on when asking for help with a bug 😉.
I had read a few blogs from Fyle stories before joining, which gave me some talking points to discuss and made the chat more interesting.
Additionally, I had the privilege of connecting with Yash (CEO), Siva (CTO), and Abhishek (Engineering Director). As an intern, I was really excited to talk to them. To my delight, their humility and approachability instantly dissolved any nervousness I may have had.
This is how Fyle warmly welcomes you.
Buddy
Once you join Fyle, you will be assigned a buddy.
Buddy will be your go-to person for any issues or questions you may have.
Initially, understanding a new product can be confusing and can take time. Especially when you’re in Engineering, you need to understand it really well because you’ll be working on it.
To overcome this, I scheduled a 15 mins daily call with my buddy, Ashutosh Muley to resolve any doubts/queries I had.
He has been an awesome buddy! 🤟
First Bug
Entering the 2nd week of my internship, I received my first task: fixing a customer-facing bug.
Since it was a production-level issue, it made me nervous 🤯. However, I was also excited to take on the challenge.
To provide a brief overview of the bug, one of our customers was using our API to update an employee’s details in Fyle. However, due to an incorrect format in the value passed for a DateTime field, the API call was failing without showing any error. So, the customer got confused as to why the call was failing.
To understand the bug thoroughly, I created a Notion doc outlining its details, inputs, and expected outputs. After going through the code and some brainstorming, I documented potential solutions in the same doc and shared it with my manager.
Trust me, take the time to create a doc when working on a bug. Not only it shows your professionalism, but also saves a lot of valuable time later on.
Following team discussions and considering various options, I was ready to implement the solution.
But hold on!
There was one crucial step at Fyle - before diving into implementation, writing unit tests was a must!
TDD
Jacob Kaplan-Moss, co-creator of Django, once said,
Code without tests is broken by design.
Test-Driven Development (TDD), is an approach where developers write tests before diving into writing the actual code.
It involves mainly three steps: writing a failing test case, writing code to make the test pass, and refactoring the code as needed.
In my college days, the emphasis was often placed on competitive programming, where the primary goal was to solve problems quickly and efficiently. However, upon working with Fyle, I quickly realized that there's much more to software development than speed alone.
It is essential to approach development from a user's perspective. This means understanding their needs, empathizing with their experience while using our product, anticipating potential issues that could arise, and proactively addressing them. It's about considering how users would feel and ensuring that the product caters to their expectations and requirements.
TDD was a real game-changer in this sense.
It made me think more deeply about the various edge cases (and possible scenarios) that the code might encounter.
Just ask yourself this one question 👇
If your code breaks in production, how would it impact the customer’s experience?
You already know the answer.
While TDD doesn't guarantee a flawless outcome, it significantly reduces the chances of unexpected issues surfacing and enhances the overall reliability of the codebase.
Get the ball rolling: My First Major Initiative
After fixing 4-5 production-level bugs, I got my first solo initiative (a term we use for projects at Fyle).
The initiative was - "Good Engineering Practices for Notifications Backend”.
Notifications serve a crucial role in keeping users informed about important events and updates. Imagine waking up to a notification that someone debited money from your bank account, only to discover that it arrived a staggering 12 hours late. Such a delayed notification can be incredibly frustrating and worrisome.
At Fyle, though our notification service was very fast ( ~ 1-2 secs), we recognized that our existing notification service lacked essential components such as
tests
local development setup
CI/CD pipeline
pull-request checks
code linting
and contained a significant amount of dead code, making it risky for adding new features.
The goal of this initiative was to incorporate best practices into the service, ensuring stability, resilience, and developer-friendliness for future enhancements.
I had the privilege of successfully completing this initiative, marking a significant milestone for both the service and my own professional growth 🥳.
Reflecting on this experience, I've distilled a few key points that contributed to our success:
Understanding the product thoroughly before diving into the development process.
Breaking down complex tasks into smaller, more manageable logical tasks.
Focusing on one task at a time, ensuring attention to detail and quality.
As my manager wisely advised me, it's not just about completing the task but doing it well.
While I’d love to dive deep into this, I'm afraid it would make this story rather lengthy.
Rest assured, I will be publishing another detailed blog specifically on this soon🤞.
Crystal Clear Docs
Ah, documentation. The bane of every developer's existence. It's like going to the dentist – you know it's important, but you'd really rather not do it 🫣.
At Fyle, for every initiative, there is a Notion doc available that contains the rationale behind it as well as all the technical details regarding the initiative.
We use OpenAPI specifications for our documentation. Easy to understand and easy to use.
Here’s a small story:
Once, a developer went out sick for a week. When we had to update their code, we realized it was like reading hieroglyphics. If they had documented properly, we could have avoided feeling like we were deciphering an ancient language.
So, please don't skimp on the documentation. Your future self (and your teammates) will thank you 🙇.
Communication boosts Success
At Fyle, there is no differentiation between a full-time employee and an intern. This also includes daily standups.
I had four operational standups and one non-operational standup every week.
I personally don’t like daily meetings, but I would say differently about standups. They have not only improved my communication skills but also offered a safe space to share personal challenges.
These meetings foster a strong rapport with your manager, granting you the freedom to seek guidance and ask questions openly.
By keeping everyone informed and receiving regular feedback, everyone’s on the same page and there’s less chance for later surprises.
Found a nice youtube video on having effective 1X1s, highly recommended!
All Work No Fun?
No, this is not how Fyle works.
Fyle organizes 2 offsites per year. Offsites are a great way to connect with everyone + you get to travel by plane for free 😁.
Meeting people face-to-face and talking to them has a special vibe to it that I can’t explain in words.
Fyle also allows interns to come offsite (all expenses paid 🤩).
Sayonee (from the Marketing team) wrote an awesome blog about the recent offsite at Sakleshpur. Check it out here.
Transparent and Supportive Culture
In my previous 4 internships, I was limited to my specific project channel in Slack, missing out on learnings outside of my field.
At Fyle, however, I experienced 100% transparency. Everything was out in the open, and I was able to join any channel that interested me and see what was happening there. This level of transparency was new to me, and I had never seen it anywhere else.
You can learn about Product Marketing, Content Marketing, Sales, Frontend projects, Infra projects, and everything in between.
Moreover, we have two channels, #claps and #shoutout, specifically for acknowledging achievements, big or small (all matter).
Pranks
Internships are all about learning and growing, but at Fyle, we spice things up with a dash of mischief 😈.
From asking for a letter from the District Collector to being asked to explain the 7 layers of the OSI model in a Zoom meeting, we've got it all covered.
Pranks make for fun memories but spare the victim the details 🙈.
Want to join Fyle?
Check out Fyle’s careers page or reach out to Yitzhak directly.
After successfully completing the internship, I am now a full-time Engineer at Fyle 🥳.