Prepsa began her career as an intern working with AngularJS. Today, she’s a senior Ruby developer at Gurzu, leading projects and mentoring new developers.
In this episode of Gurzu Insights, she shares her career journey, favorite resources, and thoughts on the future of Ruby development.
Can you tell us a bit about your background and how you got started in software engineering? What attracted you to Ruby on Rails development specifically?
My journey into software engineering started when I landed an internship co-op role, where I initially worked with AngularJS. However, as the project evolved, I got interested in the backend core logic and its implementation which brought me to Ruby on Rails.
As a newbie developer, RoR was easy and fun to learn. I quickly got the hang of it, which boosted my confidence and made development feel exciting and accessible. I worked on both the backend(RoR) and frontend(Angular), but backend became my strong suit, and I stuck with it.
What does your normal workday look like?
My typical workday starts with checking emails to stay updated on any overnight developments or important messages for the projects I’m involved with. Shortly after, my team and I have our daily standup meeting where we discuss the progress of our project, address any blockers, and prioritize tasks for the day.
Once the standup is done, I dive into my tasks, which could include writing and debugging code, reviewing pull requests, or collaborating with teammates on solutions. I usually have music playing in the background—it helps me stay focused and keeps my energy up.
During lunch, I sometimes like to go for walks with my colleagues to get some fresh air and reset for the afternoon. It’s a great way to recharge and connect outside of work.
The rest of the day is a mix of focused development work, occasional client communication to clarify requirements or provide updates, and team collaboration.
What are some best practices you follow for writing code? How do you approach testing and debugging in your projects?
When it comes to writing code, I believe in keeping it clean and keeping it simple—not just for myself but for future developers. While I sometimes can’t understand my own handwriting, I always try to make sure my code doesn’t suffer the same fate!
For testing, I adopt a “test often” mindset and write unit tests alongside development which may take some extra time upfront, but it helps ensure that changes do not break existing functionality and prevents future headaches.
Debugging, on the other hand, involves reviewing logs, replicating the issue in a controlled environment, and using tools like debuggers or print statements. I also rely on peer reviews, pair programming, and rubber duck debugging for fresh perspectives when I hit a roadblock.
Listen to Prepsa talk about rubber duck debugging in this video.
How do you stay updated with the latest trends and technologies in software engineering in general? Are there any resources (books, courses, websites) that you would recommend?
I rely on a mix of resources to stay updated. For daily tech articles and updates, I rely on daily.dev and Medium. To stay connected with Ruby-specific trends, I follow Ruby community through Slack and Twitter and I also browse Udemy and Coursera courses whenever I have some free time, as they help me explore new areas or sharpen my skills.
Attending tech events and meetups is something I value, though I haven’t had much time for them lately. The last event I attended was Data Talk 2.0, which was incredibly insightful. It gave me new perspectives on data-driven and AI technologies along with their real-world implementations.
Can you tell us more about some new practices that you have implemented / things you have learned at Gurzu?
Working at Gurzu has been a fantastic learning journey so far. I’ve had the opportunity to integrate tools like Uber, Braze, and Shopify apps into our projects, which has expanded my technical toolkit.
One of the biggest lessons has been improving client communication and requirement gathering. I’ve developed a habit of asking questions and clarifying expectations upfront, which has made the development process smoother and reduced rework.
Collaboration tools and techniques, like pair programming and code reviews, have also been instrumental in refining my skills.
How do you approach collaboration with other team members? How do you ensure effective communication and teamwork in your projects?
Collaboration and communication are essential to the success of any project. We use tools like Basecamp for communication and project management, Google Meet for virtual meetings, and GitHub for tracking progress and collaboration. These tools keep us aligned and ensure tasks are well-organized.
During standups and team meetings, all team members share updates and discuss any blockers so that we can find solutions as a team. As a team lead, I also make it a point to check in regularly with team members to ensure they’re on track and offer help when needed.
Peer reviews are another cornerstone of collaboration. Constructive feedback helps improve the quality of our codebase and fosters a culture of learning.
Have you had any mentors in your career? If so, how did they help you? Do you mentor others? What is your approach to mentoring?
Yes, I’ve been fortunate to have some amazing mentors. My first mentor was my team lead at my first job. His approach was incredibly supportive—he was always approachable, encouraging, and patient while offering assistance which helped me develop both my technical and problem-solving skills and played a big role in my growth as a developer.
As for mentoring others, I do take the opportunity to help junior developers and peers whenever I can. My approach is to be supportive and approachable, much like my own mentor was. I try to focus on listening, providing constructive feedback, and encouraging self-research and learning. I believe in empowering others to find their solutions while offering guidance and insight when needed.
What advice would you give to someone who is just starting out in software engineering? What are some common mistakes you see junior engineers make?
My advice is to take things one step at a time. Software engineering is vast, and it’s easy to feel overwhelmed. Focus on building a strong foundation and allow yourself time to absorb and apply what you learn. Be patient and consistent—it’s a marathon, not a sprint.
Also, remember that maintaining a correct balance between work and life is critical for long-term success.
Common mistakes I often see junior developers make are not properly testing and debugging, and also not asking for help when needed. Don’t be afraid to reach out to more experienced engineers or teammates for guidance—collaboration is a key part of growth, and everyone has something valuable to offer.
Can you talk about any challenging/memorable project that you have worked on? What did you learn from this experience?
I’ve had the chance to work on a few challenging and memorable projects that have really helped shape my development skills. One of them was developing a Shopify app. Before this, I had a limited knowledge of what Shopify was capable of. Working on the app, I gained an understanding of the Shopify ecosystem and how its apps integrate with stores.
Another challenging project involved building a web application with a unique requirement: syncing databases across servers. Ensuring that every record was synced accurately was complex, and it took weeks of continuous testing, fixing, and retesting. It actually tested and retested my patience, but it was incredibly rewarding to finally roll out the feature successfully.
I got to learn about working with multiple database shards due to this requirement. Understanding how to efficiently manage data across shards and ensure synchronization between them has been both challenging and rewarding.
Where do you see the future of Ruby on Rails heading in the next few years? Are there any emerging technologies or trends in software engineering that you’re particularly excited about?
One of the things I like about Ruby on Rails is its vibrant community that continuously evolves the framework. Features like Hotwire have already reshaped how we build applications, and I’m excited to see what’s next.
Outside of Rails, I’m fascinated by the potential of generative AI (GenAI) to revolutionize software development and the rise of Web3 applications. These technologies feel like the next big leap in the industry.
What are some of the unique aspects of working at Gurzu?
One of the remarkable aspects of Gurzu is its diversity of clients. I’ve had the opportunity to work with clients from around the world – Japan, Australia, Germany, and more! It’s been fascinating to experience different work cultures and ethics.
Another standout aspect is definitely the people. It’s easy to ask for help from anyone—no matter their role or experience—without feeling judged. This open, supportive environment has made me feel comfortable asking questions and learning from my peers.
Anything else that you want to add?
It’s been a rewarding journey so far, and I’m excited to see where this path takes me next. If there’s one takeaway I’d emphasize, it’s the importance of staying curious and open to learning—because there’s always something new to discover in this field.
Read More
Previous editions of Gurzu Insights:
Gurzu Insights with Kshtitiz Maskey
Gurzu Insights with Sony Tuladhar
Gurzu Insights with Prachanda Bajracharya
Gurzu is a software development company passionate about building software that solve real-life problems. Explore some of our awesome projects in our success stories.
Have a tech idea that you need help turning into reality? Book a free consulting session with us! Or simply, drop us a message.