Formal CV
A PDF of my real resume.
My assigned character
I was born a human and I’m supposed to live on the planet till my body gives up and it’s no longer suitable for sustaining the social construct that one would call “life”… or at least I am said so. I reserve my right to have speculations about this whole “dying”-thing. I popped into existence in the almost ex-soviet republic of Bulgaria where I’ve spent a good portion of my development into a fully-fledged and normally functioning carbon unit. After almost a fifth of a century there I’ve decided to change my location to the vicinity of central Europe. Germany to be more precise. Here I am currently studying Computer Science at the Karlsruer Institut für Technologie (KIT). I quite like it here as for now it’s the place that allows me to extend my skill set, knowledge base and general level of awesomeness through learning about how computers work, how to tell them what you want them to do and other fun things about the surrounding world.
Relevant interests of choice
As previously implied, the delusion I’ve chosen to believe in is that I’ll do CS (Computer Science) related things till the rest of my conscious earth-life. With the years (I am not that old, just obnoxious) I’ve developed an interest in some narrower areas in the computer world.
-
A special place in my heard is dedicated to Artificial Intelligence. No, not only the Machine Learning parts. The whole thing! The things in Artifcial Intelligence: A modern approach. Not only the parts that are rough and massive number-crunching by the CPU cores but also the parts that are plain old beauty. The parts that model the human brain. This quote summarises my views on AI nicely.
Algorithms, enabled by constraints, exposed by representations that support models, targeted at thinking, perception, and action. – Patrick Winston
I believe that this section deserves a subsection for its own! So, over the years I’ve acquired tastes for:
- Computer vision and image processing and evaluation - I’ve had several times to write my own computer vision/image processing library in java at the time (but then some horrible events happened to my codebase so sorry, can’t back this statement with code 😥 ).
- Machine Learning. Different types of perceptrons, neural networks, regression models, classification models, trees, support vector machines, deep networks… etc. Many of those I’ve implemented once for myself and the sake of learning and understanding how everything works
- Linear Programming - while most people hated the course where this thing is learned at UNI, I kinda loved it. Simplex can be quite the gem. Sadly, I am yet to implement it for myself.
- Generic Algorithms
- Natural Language Processing
- Autonomous agents and group behaviors - Man, this book (The nature of code) blew me away in unimaginable ways. Not exactly AI, but still!
- Statistical Inference - Probability theory can also be a beautiful thing if you manage to push past the “statistics”.
As much as I loved AI, I only had the opportunity to have the time and necessity to learn about all the cool tools that exist in the python ecosystem that enable you to make awesome machine learning and AI applications. Libraries and tool-kits as numpy, SciKit-learn, Tensorflow, Keras, Eward… etc.
-
Computer Graphics/Game engine design - as every naive young boy at one point in my life I wanted to make games for a living. Unfortunately, I was also kinda smart enough to start doing something even thou I had no idea what was I doing. The first engines that I’ve “used” were Unity, Unreal Engine 3 and… Macromedia Studio 8. Myeah, that last one is a thing that existed and it’s not game engine at all but hell, I was pretty much making a flash game on it. Over the years my focus shifted and transitioned to programming but my interest in games stayed. Thanks to that, at some point I picked up a little OpenGL, a little general 2D/3D Rendering and concepts and a good amount of making a rudimentary engine that can run a “game”. At university, I took a course in Computer Graphics where I learned a whole lot of other interesting topics such as ray tracing, realistic image generation, seep-up structures, colors, and others. I still find everything in the subject incredibly exciting. In 2020 I decided to work on a simple Game Engine project of mine where I delve a little bit deeper in game programming concepts like materials, animation systems, particle systems, instanced rendering, and entity component system among others.
-
EMACS! EMACS is everything. Emacs is an operating system, lacking a decent text editor. At my first job, I saw my supervisor using it and then a guy told me not to touch that thing ever. But I did! And I hated it! It was so difficult and unintuitive. Then I forced myself to use it because every other editor/IDE was a pain to use when programming in C++. I spend a good couple of days configuring Emacs and… I made it usable. Then I started investing more and more and it became second nature. An extension of my hands, if you will. And now I am writing this blog with Emacs. Be sure to check out my configuration file here.
-
Web Development - it’s one of the things where you learn even that you don’t want. I am not proud of myself with this one but hey, it impresses the employers. I have my fair share with AnuglarJS, VueJS, Bootstrap, Foundation, JQuery, ExpressJS, and other little and big JavaScript libraries. On the back-end side, a have a little bit of experience with Flask
-
Language design - the idea of creating my own programming language has stuck with me ever since I learned about the basics of compiler design in university. More recently, I was somewhat inspired by Jonathan Blow and his work on the Jai Programming language as well as the source code of Jason Turner’s ChaiScript. This has urged me to start working on Alisp, my biggest project so far and the thing I am most proud of. It is a lisp based programming language written in C++ and its development has helped me learn a ton on how interpreted languages work, what problems arise when you work on them, and how to use C++ effectively among many other things. You can checkout the Github repository or the website of the project for more information.
-
Some small interests I’ve picked in recent times
- Operating systems in general, Linux in general (Debian for life!) - It really help to know what is happening on OS-level when writing c++.
- CPU-Design and what happens in the computer of relatively low level - a lot of effects that happen on a transistor-ish level are exploitable in code, if you know they exist, of course.
- Functions optimization, Non-linear optimization, Computational linear algebra, Numerical analysis. In my defense being a bigger nerd doesn’t really hurt your career.
- Lambda calculus - a computational model that has a completely different way of reasoning about things. I love it. I fund the whole idea interesting, “fresh”, mind-boggling and…..just different and unconventional.
Supported Languages
- Java, C++, Python, HTML/CSS/JavaScript, ELisp, Go
- PHP, Scala, Processing
- Haskell, Prolog
Technologies
- Tensorflow, SciKit-learn, Pandas, Jupytor, PyTorch
- OpenGL 4, GLFW
- ROS, RabbitMQ
- Cmake, make, g++, Robot Operating System(ROS), RabbitMQ, OpenCV
- JavaFX/Java-Swing, JUnit, Maven
- Frontend(AngularJS, VueJS), Backend(NodeJS, Express, Flask), Websockets, Karma, Jasmine, SQL
- git, LaTeX, Emacs Org-mode, UML
Previous work
-
For three years I was working as a research assistant at Fraunhofer IOSB, Karlsruhe. I dealt mainly with “intelligent systems” with application in different production industries. During my time I worked on projects for Daimler, Bosch and Porsche.
-
In my second and third semester of my masters program I took part in a research-oriented practical course at my University. The goal was to write a research paper and publish it in two semesters. My work is dealing with the application of neural networks in the context of numerical simulations. The project can be found here
-
My Bachelor thesis had to do with Machine Learning, stochastic probability models (Bayesian Neural Networks and Mixture of Gaussian Process Experts) and data from pollution sensors. One of my supervisors is currently working in HITS. The project can be found here
-
At Uni I took a Practical Course in Computational Geometry about drawing curves (with BSplines) in the plane, doing tricks with them (finding a parallel curve, creating a closed curve, interpolating curve) and extending those to surfaces(tensor product surfaces).
-
A practical course in software development - I and five other students, developing a Software product (a Web App) following the waterfall methodology (waterfall can be the better choice when you are new to everything).
-
Algorithms Teaching assistant at KIT - teaching basic data structures, algorithms for sorting, graphs and spanning trees, complexity, algorithm analysis, and algorithm engineering. Also, again, checking homework.
-
Linear Algebra Teaching assistant at KIT - teaching a bunch of people about basic mathematical notation, group theory, rings, bodies, vector spaces, and some other things. Also checking the homework of said people.