Profile Picture

Stefan Niculae


I am a Fulbright scholar, recently finished my Master's in Intelligent Robotics, at the University of Southern California, in Los Angeles.

I am interested in Machine Learning; Reinforcement Learning, Natural Language Processing and Learning Representations. Also Human-Computer Interaction, Programming Language Theory and Data Visualization.


Computer Science, Math, Artificial Intelligence and Machine Learning


MSc Machine Learning and Robotics

University of Southern California, USA

MSc Artificial Intelligence

University of Bucharest, Romania and

Leiden University, Netherlands

BSc Computer Science and Math

University of Bucharest, Romania


3+ years industry experience as a Data Scientist/Research Engineer


Software Engineer

Amazon, Seattle

ML Research Intern

Blizzard, California

Research Engineer

Bitdefender, Romania

Data Science Researcher

Adobe, Romania

Data Science Intern

Intel, Romania


Intervening in co-evolution

In a zero-sum RL game, learning stagnates when one side overpowers the other. To resume a balanced co-evolution, we hinder the winner's decision making process and/or help the loser by providing it external guidance.

Class project for Deep Learning, at USC

Team: Stefan Niculae, Alejandro Marin-Parra, Daniel Paul Pena, Allen Kim, Abel John


Transformer vs CNN encoders in RL

Especially in non-euclidian topologies, and settings with non-local interactions, transformer state preprocessors can perform better than Convolutional ones, due to their "global" perceptive field and permutation invariance.

Summer project at Blizzard

Mentor: Wayne Yang

Swearing and social media likes

On Twitter, women swear less, but swearing while it's raining, on a Saturday can improve audience engagement. We also predict which and where a swear word would impact engagement the most; and counterfactually explore celebrity scenarios.

Class project for Data Science for Social Systems at USC

Team: Stefan Niculae, Kendall Crouch, Jeffrey Stone, Santiago Carvajal, Timothy Rhodes


Biological cues for Game Flow

Games strive to be challenging — neither boring nor frustrating. Physiological (heart-rate, skin temperature, etc) and emotional (through facial expressions) signals can be used to adapt a game's difficulty in response to the user.

Class project for Affective Computing at USC

Authors: Stefan Niculae, Shao-Yen Tseng, Dillion Knox, Qinyi Liu


Patterns of Life tool

Aggregate multiple sources of data to generate a filterable population density estimation to prevent civilian casualties. Sponsored by the US Air Force and prototyped using the Lean startup methodology, focused on customer discovery.

Class project for Hacking for Defense, at USC

Team: Stefan Niculae, Brandon Wexler, Madhuri Jujare, Dubem Chukunwoji, Lauren Becker


Learning to hack

In a game-theoretic model of enterprise network penetration scenarios, older Genetic Algorithm methods trade speed for robustness, compared to modern Reinforcement Learning techniques.

Master's thesis, in collaboration with Bitdefender

Thesis advisor: Marius Popescu (Univ. Bucharest)

Paper version accepted at AAMAS 2019 workshop

Authors: Stefan Niculae, Daniel Dichiu and Razvan Prejbeanu (Bitdefender), Kaifeng Yang and Thomas Back (Leiden Univ.)


Detecting abnormal user behavior

Behavior anomalies, indicative of a compromised endpoint, are detected by processing raw system events using stages of clustering, and other unsupervized learning techniques, sensitive to the time-based sequentiality of the events.

Developed while at Bitdefender

US Patent Pending

Authors: Daniel Dichiu, Stefan Niculae, Elena Bosinceanu, Sorina Stoian, Andreea Dincu, Andrei Apostoae


Finding features that drive retention

Select which features of a software product make keep users coming back using an array of statistical and learning methods, and a meta-classifier aggregating multiple heterogenous models.

Bachelor's thesis, in collaboration with Adobe

Thesis advisor: Traian Serbanuta (Univ. Bucharest)

Technical lead: Paul Chirita (Adobe)


E-commerce recommender engine

Product recommender for platforms having up to tens of thousands of products and customers, with up to daily updates of purchase behavior. Collaborative Filtering, SVD and online updates.

Work done while at Adobe


Data Visualization workshop

Python basics and the Jupyter environment; data wrangling using Numpy and Pandas; Data Visualization principles, best practices and case studies, illustrated using Matplotlib and Seaborn.

Presented to a cohort of 30 faculty and students at USC


Formal methods lab

Various types of Finite Automata and exercises involving them and Formal Languages. Diagrams and step-by-step solutions to help students understand both the intuition and the implementation details, in C++.

Taught two classes of 30 first-year CS students, at U. Bucharest

Professor: Adrian Paun


Functional programming lab

Explanations and exercises for Declarative Programming concepts, taught in Haskell. Supplemental lab materials, for the students to reference during class or at home.

Taught a class of 25 terminal-year CS students, at U. Bucharest

Professor: Traian Serbanuta


Smaller/older projects

Interactive neighborhood exploration

How does the amount of greenery, or liquor ads compare across neighborhoods? We compute these aspects and many more based on StreetView pictures, and explore them in an interactive story.

Created for the VKC Library of USC

Visual story

Self-driving model car

What happens when you end up with an extra part when you're "done"? You redo weeks of assembling and hope it doesn't happen again. What do you do when you end up with a different extra part afterwards? Just hope it wasn't essential.

For the Race-on competition, at USC

Team: Stefan Niculae, Alejandro Marin-Parra, Philipp Schauer, Adeem Abass

Combining DQN extensions

Putting together modern DQN techniques that target various aspects of the RL process. Benchmarked on a 2D environment from OpenAI's Gym.

Class project for Reinforcement Learning, at Leiden University


Evolving a network to flap

Browser implementation of a flappy-bird-like game, neural network and Genetic Algorithm optimizer that uses selection, mutation and crossover to breed the fittest (reaching highest score) genomes.

Class project for Soft Computing, at U. Bucharest


IoT performance dashboard

Visualize various performance metrics for Internet of Things devices and spike-detection algorithm to prevent running in a hazardous state.

Summer project at Intel

Team leads: Cristian Levcovici, Mircea Bardac

Image completion

Pure signal processing (no learning) method for inpainting — filling missing areas of an image through texture synthesis. Used for object removal, photo restoration, picture expansion.

Class project for Digital Signal Processing, at U. Bucharest


Abstract Machine

Syntactic parser for a custom grammar, with inspectable Abstract Syntax Tree, and evaluator for custom semantics offering step-by-step evaluation, for the program given as input.

Class project for Programming Languages Semantics, at U. Bucharest


Parallel training for Neural Networks

C++ implementation of feedforward network and optimizer, with MPI parallelism on CPU. Demo on handwritten digit classification, with an interactive front-end for drawing the digit yourself.

Class project for Parallel Computing, at U. Bucharest

Team: Stefan Niculae, Ionut Ciocoiu

Steganography demo

An area of cryptography, stegano, deals with hiding information in plain sight: from tattooing a secret on a messenger's scalp and letting the hair grow, to the kerning of letters, or encoding an image into the least significant bits of another.

Class project for Applied Cryptography, at U. Bucharest

Authors: Stefan Niculae, Alexandra Voda


Information Retrieval explainer

Textual search engine that highlighting why certain documents and terms were selected, featuring stemming, stop-word removal and accented letters conversion.

Class project for Information Retrieval, at U. Bucharest

Multiplayer tank game

"Fire Tracks!" is an online game in which you face off against three other tanks and chase, shoot each-other and make use of your special abilities in a bright, cartoony mayhem.

Class project for Software Development Methodologies, at U. Bucharest

Team: Stefan Niculae, Adrian Brojbeanu, Hung Trinh Xuan


Adventures of the modern man

Survive as long as you can by juggling your attention between working out (hitting the green spot), making money (move wallet left-right), hit the balls (move foot up-down) and maintaining the correct speed (press pedal).

First place Microsoft hackathon winner (2015)

Team: Stefan Niculae, Hung Trinh Xuan

Smart Vim tutor

Popularize the notorious Vim text editor. Tutorials gradually introduce and allow the practice of concepts, gamification aids motivation and smart hints subtly show how you could have done actions more efficiently.

Class project for Software Engineering, at U. Bucharest

Team: Stefan Niculae, Catalin Matei, Razvan Balint, Ionut Popa, Crosman Vlad