In the dynamic world of technology, where coding, debugging, and problem-solving often dominate the profession, finding time to support novices on their way to growth might seem almost like mission impossible. But for Jan Buc, Lead Software Engineer at EPAM Poland, with over seven years of IT experience, lecturing university students is more than just a side activity – it’s a fulfilling journey that has transformed the way he approaches both work and education.
Through his work as a lecturer at the joint course Advanced Programming Techniques by EPAM Campus and Politechnika Krakowska, Jan has gained insights into the art of teaching and discovered new sources of potential in students and himself alike. Here’s his inspiring story and how it’s impacting both his career and the next generation of engineers.
Fuelling passion through teaching
"To be honest, I always wanted to teach," Jan admits. "Even before starting as a software engineer, I thought about lecturing at a university. It’s an activity that makes me genuinely happy – it fulfils me in ways that coding alone cannot."
Teaching isn’t just a one-way exchange of knowledge. It’s always a dynamic dialogue. "It’s not about standing in front of a room and ‘delivering’ a lecture. It’s about helping students understand concepts, answering their questions thoughtfully, and sometimes, even realizing that their fresh take on a topic might change the way you look at it," explains Jan.
Lessons for the next generation
Through the lectures, Jan and other trainers provide students with more than just theoretical knowledge – they give them a glimpse behind the curtains of real-world software engineering practices. "Our goal is to build the bridge between fundamental knowledge they get at university and what they’ll need in the workplace," says Jan.
For example, Jan dives into Python best practices and the SOLID principles, helping students understand the importance of clean, maintainable code. During the lectures students also can learn essentials for real-world applications like AI or database management.
"These are the skills that professionals use daily," he says.
"We’re showing them how to think beyond code – why tests matter, how to communicate effectively with teammates, how to make systems scalable and understandable."
Jan sees these lessons as vital for preparing students for the highly demanding tech industry. "When students leave our classes, they’re equipped with tools and a mindset that puts them a step ahead when they start their careers," he shares.
Benefits of teaching: training for a trainer
Through teaching, Jan has experienced a wealth of professional and personal development. "One of the biggest benefits is that it greatly sharpens my communication skills," he says.
Teaching students with varying levels of experience requires him to break down complex technical concepts into smaller, relatable points. "Explaining abstract complex topics in simple terms has definitely improved how I deliver presentations to stakeholders and clients," Jan shares.
His experience with conducting student labs – where students build projects and apply theoretical knowledge – has also allowed Jan to validate his own understanding of core concepts. "There’s no better way to test your knowledge than teaching it to someone else," he notes. "If I can make a student understand, then I know I’ve grasped it well enough myself."
The impact of teaching goes beyond communication skills. The adaptability Jan builds in the classroom has a direct effect on his daily work.
"When mentoring junior colleagues or explaining complex systems to stakeholders, I apply the same strategies I use with students – contextualizing information and guiding discussions. This is really helpful."
Additionally, Jan emphasizes how interacting with students has shaped his problem-solving approach. "Students often think differently – sometimes they’ll come up with unconventional ideas or solutions that make me rethink my approach to regular and common tasks at work," he explains. "This fresh thinking is something I bring back to my own projects, enhancing creativity and innovation."
Teaching as a well-planned approach
Combining a demanding software engineering career with teaching responsibilities might seem challenging, but Jan has discovered that it’s entirely manageable with proper planning. "The key is organization," he explains. "Teaching programs, like the one we have with Politechnika Krakowska, are well-structured. Dates for lectures, labs, and workshops are set far in advance, so there are no surprises. Everything is predictable and goes as planned."
Teaching isn’t a burdensome commitment – it’s a perfectly balanced valuable addition to trainer’s schedule. "You don’t have to jump all in at once," he shares. "Some of my colleagues start by conducting just one class to see how it feels. It’s a low-risk way to explore teaching while keeping your workload sustainable.
More than just knowledge-sharing
"We’re not just teaching students, we’re shaping the future talents who will be pushing the industry even further," he says. By exposing students to the demands and workflows of the tech industry, EPAM Campus educational programs help them transition smoothly into their careers.
For Jan, teaching is a cycle of giving back and moving forward. "I had mentors who guided me when I was starting out. Now, it feels good to pass on that knowledge and help others grow. It’s not just about teaching – it’s about building a stronger, smarter community of engineers,” summarizes Jan.