CS Senior Spotlight: Marko Veljanovski
Continuing his passion for research, Veljanovski will begin a PhD in computer science at the University of Michigan this fall
During his time at Northwestern, Marko Veljanovski’s favorite extracurricular activity was competing in the University of Toronto’s five-month ProjectX 2023 machine learning competition focused on computational efficiency.

The five-member Northwestern team designed a more efficient transfer learning technique that can be applied to any large language model (LLM). The team obtained a 170-times speedup compared to the default method of fully-finetuning all model parameters and a 10 percent increase in accuracy and model performance against similarly efficient models.
Collaborating with like-minded students on significant research made the experience incredibly rewarding and memorable for Veljanovski, who is passionate about exploring how causal ideas can make machine learning (ML) models more robust, and in turn, how ML tools can improve causal estimation.
Advised by assistant professor of instruction Zach Wood-Doughty, Veljanovski conducted immersive research projects in invariant risk minimization, causal inference in natural language processing, and causal estimators. He earned honorable mentions in the Computer Research Association (CRA) 2023/24 and 2024/25 Outstanding Undergraduate Researcher Award competitions.
Veljanovski graduates this month with a bachelor’s degree in computer science through the Northwestern Engineering Undergraduate Honors Program and a double major in mathematics from Northwestern’s Weinberg College of Arts and Sciences.
We asked Veljanovski about his experiences at Northwestern Engineering, impactful collaborative experiences, and his advice for current students.
Why did you decide to pursue the CS major at McCormick?
McCormick offered a great engineering foundation, which aligned well with my early interests in other engineering subfields, like robotics and optimization. Also, a lesser-known fact is that Northwestern CS via McCormick is perfect for pursuing double majors in Weinberg (such as mine in mathematics) thanks to its flexible double-counting policy.
How did the McCormick curriculum help build a balanced, whole-brain ecosystem around your studies in CS
The Engineering Analysis (EA) sequence provided a great overview of several engineering disciplines and played a pivotal role in shaping my academic path. EA1, which focused on linear algebra and MATLAB, motivated me to take COMP_SCI 111: Fundamentals of Computer Programming I, which convinced me to pursue a major in computer science. During EA1, we were tasked with coding up a row reduction solver for any arbitrary matrix in MATLAB. After three hours of debugging, everything finally clicked. That exact “Aha!” moment felt exhilarating, and I continued chasing this feeling throughout my undergraduate studies.
How did interdisciplinary collaboration and teamwork shape your experience in the program
Interdisciplinary collaboration and teamwork have been one of the most enriching parts of my academic experience. Working with fellow peers, whether on research or class projects, often led to insights that I would not have otherwise learned on my own. Collaboration is a cornerstone of research, and learning to effectively collaborate has been crucial in my research journey.
What project or assignment are you most proud of from your time in the program?
I am most proud of my work on DoubleLingo, which was published in NAACL 2024 and conducted under the mentorship of Professor Wood-Doughty during the summer after my sophomore year. For this project, we developed a causal estimator that leverages LLMs as nuisance parameters within the double machine learning framework. In particular, we demonstrated that LLMs are not only useful for prediction, but they can actually improve causal estimation with text. Additionally, the work introduced me to the field of causal machine learning — an area I plan to focus on during my PhD.
How has your approach to problem-solving evolved during your studies?
Over the course of my studies, my approach to problem-solving has shifted more toward seeking a deeper theoretical understanding of computer science. This was largely due to my pursuit of a double major in mathematics, which equipped me with a more abstract and technical toolkit to tackle machine learning problems. This shift not only refined how I think but also made me realize that I want to focus more on theoretical research.
What role do creativity and design play in your approach to coding or building systems?
Creativity and design have played a central role in how I approach both research problems and system-building. Often, the most difficult aspects in both coding and theoretical work are the most creative ones. Whether I’m debugging some implementation issue or working through the proof of a theorem, progress usually hinges not on brute force, but on a clever insight or creative reframing of the problem.
How did you stay motivated during difficult times in your academic career?
I try to stay consistent and keep the same mindset as if it were an easier time. There will always be tough times and easy times, and the only way to really succeed is by working the same way through both. I also try to stay grounded by spending time with my friends, girlfriend, or calling my family. Having this support system always reminds me of my purpose and helps me push through.
What skills or knowledge did you learn in the undergraduate program that you think will stay with you for a lifetime?
The undergraduate program gave me a broad set of skills. On the technical side, I developed both a strong mathematical foundation and programming skills through coursework and research. Beyond this, I gained research experience that taught me both how to ask meaningful questions and iterate toward insight. Finally, I learned how to effectively collaborate and think creatively when faced with open-ended questions. All of these skills shape how I approach my research and will stay with me for life.
What's next? What are your short- and long-term plans/goals in terms of graduate studies and/or career path?
I will be pursuing a PhD in computer science at the University of Michigan, focusing on machine learning with specific interests in robustness, causality, and deep learning theory. Ultimately, my goal is to contribute meaningful research in machine learning, whether in academia or industry.
What advice would you give to current or incoming CS students?
Don’t be afraid to ask questions and explore beyond the classroom. Find people you love learning with — it will make your journey more fun and meaningful!