v/deardiary

Real-World Engineering 101: Lessons from my Vicarius Internship

October 15, 2025
In this article, Tomer Porat, Backend Intern at Vicarius, reflects on the transition from university theory to real-world software engineering. He shares how working on a live cybersecurity product reshaped his understanding of problem-solving, teamwork, and growth, and why the most valuable lessons of an internship often happen outside the code.

When I first joined the Java team at Vicarius as a Backend Intern, I expected to learn how to write better code.

What I didn’t expect was how much of that learning would come from everything except code, from communication, collaboration, and understanding how a product truly comes to life inside a growing cybersecurity startup.

Over the past few months, I’ve learned more than any tutorial or lecture could have taught me.

If you’re about to start your internship (or you’ve just begun), here’s what the transition from university to the real world really looks like, and what I wish someone had told me before day one.

University teaches you to solve problems, real work - to define them

At university, assignments come with a clear goal, a fixed dataset, and a grading rubric. There’s usually a right answer, or at least a predictable range of solutions that will earn you full credit.

In the real world, none of that structure exists.

At Vicarius, I quickly learned that most of the time, no one hands you the full problem to solve. You have to uncover it through reading legacy code, reviewing logs, and asking questions across teams.

In school, success depends on your ability to finish what you are given. In a real team, success depends on your ability to clarify what actually needs to be done, even when the question itself is still fuzzy.

Learning the flow is more important than knowing the syntax

When I joined, I already knew Java. I knew the frameworks, the patterns, the data structures. But the hardest part wasn’t writing code, it was understanding where the code fits in the bigger picture. In university, you write standalone projects that exist in isolation. In a company, you touch systems that have been evolving for years.

Every small change has ripple effects, and every “simple” bug might reveal dependencies across multiple services. That’s when you realize software engineering isn’t just about algorithms, it’s about navigating complexity, collaborating across roles, and making decisions with incomplete information.

Talk to everyone

It’s easy to stay within your own comfort zone, especially when everyone around you seems to speak a language you don’t. But the real growth begins when you start asking how things connect outside your immediate tasks.

Conversations with DevOps engineers taught me how our services reach production. Discussions with Product Managers helped me understand why features exist in the first place. Every person holds a piece of the bigger picture.

Ask questions, but not the same one twice

At university, asking a question is easy: you raise your hand, get an answer, and move on. In a company, questions cost context. When your teammates are deep in their own flow, you want to make sure your question is thoughtful and well-prepared.

Before reaching out, I try to read the related code, check the documentation, and test a few ideas. That way, when I finally ask, I can say: “I’ve tried A and B, but I’m not sure about C.”

This approach not only gets you better answers, but it also shows that you’re learning how to think independently, which is exactly what differentiates an intern from a junior engineer.

Initiative beats perfection: don’t hesitate to set up meetings or present ideas

In the first weeks, I hesitated to speak up in meetings, worried that my ideas might sound naive. Then I realized that no one expects interns to have perfect answers; they expect curiosity and initiative.

Taking small steps, like volunteering to handle a bug or organizing a code walkthrough, is how you accelerate both learning and confidence; it’s how you grow faster.

Stay humble, even when you start getting it

There’s a special moment during every internship when things finally “click.” You understand the system, you fix bugs without guidance, and your code gets approved faster. It’s a great feeling, but it’s also when humility becomes most important.

Even when you feel confident, there’s always more to learn, and someone who can teach you a new way to think. Humility doesn’t mean undervaluing yourself; it means staying open to infinite learning.

A good buddy is gold

When I look back at these months at Vicarius, I realize that what changed me most wasn’t just technical knowledge; it was learning how to be part of a team. From daily standups to spontaneous debugging sessions, you start to see how collaboration shapes everything we build.

Connect with the team not just professionally, but personally. You’ll gain the most from that relationship; it’s a human effort built on trust, curiosity, and teamwork. Connect with as many people as you can. Knowledge matters, but the people you learn from matter even more.

Internships aren’t the continuation of your studies; they’re the bridge to the real world.

At Vicarius, that bridge was built on mentorship, challenge, and the freedom to experiment, fail, and learn. It’s is an incredible journey, huge thanks to all the amazing people at Vicarius for helping me learn, grow, and challenge myself every single day 💙

If you’re starting your journey soon, my best advice is simple:

Be curious. Be brave. Be ready to unlearn half of what you think you know.

Tomer Porat

Backend Intern at vicarius

Subscribe for more

Get more infosec news and insights.
1000+ members

Turn security converstains into remediation actions