Vangelis Tsiatsianas
PERSONAL INTERESTS
My current interests mainly focus on mobile application security, compilers, debuggers and managed runtimes, however I'm generally fascinated by any kind of quality software and willing to explore new applications and programming languages.
WORK EXPERIENCE
- Working on LLVM-based obfuscating compilers for native and hybrid iOS apps (iXGuard), and native Android libraries (DexGuard NDK Add-On).
Graduate Research Assistant at ICS-FORTH
Mar 2018 – Dec 2019
Human-Computer Interaction (HCI) Laboratory
Heraklion, Greece
- Worked on my master's thesis, a POC for live reverse debugging in LLDB.
Undergraduate Trainee at ICS-FORTH
Mar 2017 – Feb 2018
Human-Computer Interaction (HCI) Laboratory
Heraklion, Greece
- Worked on my bachelor's thesis, i.e. a thread-safe event system that supports both synchronous and asynchronous events, based on the Blackboard design pattern, written in modern C++.
Undergraduate Trainee at ICS-FORTH
Jun 2014 – Feb 2017
Computer Architecture and VLSI Systems (CARV) Laboratory
Heraklion, Greece
- Created a location-aware memory allocator in C, which enables transparent allocation and migration of memory pages on local and remote memory based on real-time usage statistics as a part of the Euroserver project.
PROGRAMMING LANGUAGES
- Proficient knowledge: C++, C
- Adequate knowledge: Python, JavaScript
- Prior experience: Java
PROGRAMMING QUALITIES
- Looking for optimal balance between code readability and performance.
- Staying up to date with new language or library features.
- Making use of design patterns and appropriate coding practices where applicable.
DEVELOPER TOOLS
Indicative, non-exhaustive list of tools I use on every C++ project:
- Memory Error Detection and Profiling: Sanitizers, Instruments, Valgrind, Heaptrack
- Unit Testing: Catch2
- Version Control: Git
- Build System: CMake
PROJECTS
-
LLVM Pass for
printf()
Call Logging: LLVM pass implemented as a project for the Type Systems and Programming Languages course, that inserts a call tofprintf()
before eachcall
orinvoke
LLVM IR instruction toprintf()
, in order to log all arguments toprintf()
in a file before writing to the console.
Fall 2018
- Q*bert: The classic game Q*bert implemented from scratch in C++ with a custom game engine (design of the engine provided by the instructor) and SDL for the Development of Intelligent User Interfaces and Games course.
Fall 2017
- AlphaVM: Compiler and virtual machine for Alpha, a dynamic programming language designed for the needs of Languages and Compilers course, written in C/C++. Lexical and syntactic analysis were performed using Lex (Flex) and Yacc (Bison), respectively.
Spring 2015
EDUCATION
Master of Computer Science and Engineering
Feb 2018 – Jul 2020
Computer Science Department, University of Crete
Heraklion, Greece
Bachelor of Computer Science
Sep 2012 – Jan 2018
Computer Science Department, University of Crete
Heraklion, Greece
TEACHING ASSISTANCE
CS352 – Software Engineering
Fall 2018, 2019
Computer Science Department, University of Crete
Heraklion, Greece
CS340 – Languages and Compilers
Spring 2018, 2019
Computer Science Department, University of Crete
Heraklion, Greece
ADDITIONAL KNOWLEDGE
- Operating Systems (Systems and Kernel Programming)
- User Interface and User Experience Design (Balsamiq Mockups, Adobe XD, InVision)
NATURAL LANGUAGES
- Greek (native)
- English (professional working proficiency)