My Story

The following page contains a structured information about myself over the past a couple of years. The timeline is in descending order since I believe the recent facts might be more interesting to the reader.

For the sake of brevity, I've omitted a lot of important events, which happened over the years.

"Switching to Angular" got published

A day before my birthday, on 1st of November 2017, the third edition of my book "Switching to Angular" got published!

It incorporated the latest changes introduced by Angular version 5 and introduced additional improvements such as introduction to structural typing, alignment to the new `StaticInjector` API and many others.

I am very thankful to the Angular team for their assistence during the alignment to the latest changes introduced to the framework. They are constant inspiration!

Two awards from the President of the Republic of Bulgaria

On 10th of October, 2017, I became the first laureate, in the history of the award "John Atanasoff" of the President of the Republic of Bulgaria, who has been awarded in two different categories.

President Rumen Radev, awarded me with diploma for the award "John Atanasoff", which is given to young scientists with globally impactful contributions to the development of computer science and software engineering.

The second award, that the President awarded me with, is for the development of a project with wide social impact.

A few of the listed achievements are my contributions to open source software, books that I authored, presentations on major international conferences, and influential publications.

codelyzer with 1,000,000 monthly downloads

Early 2016, I started a project for static analysis of Angular applications. Some of my core motivations were automatic check of the assignments of my students in the class "Advanced JavaScript" at Sofia University, and automatic, static verification for the rules in the Angular style guide I developed.

Later, this tool got introduced in the Angular CLI. I implemented a few more crucial modules related to templates and styles analysis.

Late September 2016, codelyzer hit 1,000,000 monthly downloads!

Co-founder & CTO at Rhyme

In 2013, I got hired as a contractor to work on the web application for a Silicon Valley startup called Brownie Points. Since then, we built a few more MVPs and a new version of the Brownie Points app. Unfortunately, the business model of Brownie Points cracked because of restrictions set by policies of the Apple's App Store.

At that time, I got a few amazing offers from the best technological companies in the Valley. This put me into a cross road:

  • Work with the smartest people in the Valley having a safe job
  • ...or go into the unknown and work on a startup

After we stopped working on Brownie Points, we bootstrapped another idea we had over the years. Because of my high involvement from the beginning and the critical, high-quality modules of the product I developed, in both front end and back end, I got invited to join as a co-founder and CTO.

Organizer of Angular San Francisco

In 2016, I got asked if I want to help with the organization of Angular SF. During ng-conf 2017, the Angular team invited me to join as an organizer.

Since then I have the privilege to communicate with a lot of smart engineers and the developer relations teams of many terrific organizations who are hosting our events.

Presented "Mad Science with the Angular Compiler"

In the beginning of 2017, I applied for a talk on ng-conf, called "Mad Science with the Angular Compiler". At the time I wrote the proposal I didn't have a clear idea of what my presentation is going to be about. I had some blurry thoughts about transpilers, visual UI builders for VSCode, and others.

A few weeks before my talk I got a few fun ideas:

  • Tool for automatic migrations between Angular versions
  • Application for reverse engineering of Angular applications
  • VR visualizer of an Angular application

I implemented these ideas and presented them on the conference, together with an overview of how compilers works. The feedback from my talk was great and the tools got widely adopted by the community.

"Getting Started with Angular" got published

Because of the success of my book "Switching to Angular 2", Packt Publishing contacted me to work on a second edition, which incorporates the latest changes that the Angular team introduced into the framework.

In February 2017, the second edition of my book was released.


Presented "Scalable Application Architecture"

In the product that I was working on - Brownie Points, we decided to go...very bleeding edge. We developed the front end in 25k lines of TypeScript and Angular, while Angular was still in beta.

In the beginning of the product's development, I came up with a scalable architecture which allowed us to perform efficient and coherent state management.

The talk about my "Scalable Application Architecture" I presented on ng-be and FDConf.

Moved to the Silicon Valley

That was a big step. Especially after initial inconveniences regarding my bank account and accommodation, leaving everything back home kept me quite nostalgic.

On the other hand, I was looking forward for what North California has to offer.

Got H-1B Visa

Not long after I got my invitation to join the Angular team, I received my H-1B visa. This gave me work permission in the United States, so I headed up to the Silicon Valley!

Unfortunately, this blocked me from continuing my work with the Angular team because of administrative restrictions, however, it didn't stop me from supporting the Angular community as an external contributor.

Joined the Angular Team

Because of my implementation of a Service Worker for automatic generation of Application Shell and all other listed contributions above (book, blogging, speaking, open source contributions), I got invited from Google to join as a member of the Angular team.

There are no words capable of describing my excitement when I got the invitation...Thanks to this I got the opportunity to work with some of the smartest people I know.

Became Google Developer Expert

Because of my constant contributions to Angular and related projects, my frequent talks on international conferences, popular blog, published book and other achievements, Jeff Cross from the Angular team invited me to join as a Google Developer Expert.

I really appreciated the invitation and went through the process as quickly as possible. Although, that was an amazing recognition from Google, I got even more thrilled by the opportunity to join the Angular organization on GitHub as a member with write access to the mobile-toolkit repository. This gave me the opportunity to create value with bigger reach!

Got the Google Peer Bonus

Because of my contributions to Angular core, Angular mobile toolkit, Angular style guide and Angular CLI I got nominated for Google Peer Bonus.

This is a recognition from Google to people who have significant contributions on open source project with high social impact. I got the honor to be one of the two developers nominated for Angular.

Presented at ng-conf

After I joined the Angular style guide team and had the opportunity to work with Igor Minar, John Papa and Ward Bell, and codelyzer got traction in the community, I was invited to speak on ng-conf 2016.

That was my first talk in front of more than 1,500 people and I was extremely excited by the opportunity.

During my presentation I officially announced codelyzer, for first time.

My first book got published

Because of my activities in the AngularJS community and my popular blog posts, Packt Publishing invited me to write a book about Angular. I was thrilled when they told me that Miško Hevery has agreed to be my technical reviewer. That was an amazing honor for me, since I'm following his work even before he created AngularJS.

March, 2016, we published "Switching to Angular 2". Later this year, "Switching to Angular 2" turned into one of the bestsellers of the Packt!


Graduated MSc software engineering

In 2015, I graduated my MSc in Software Engineering from Sofia University. I appreciated every subject we went through and found them practical applications in my day to day development process. For my last class I developed a programming language with distributed front end and call stack.

My thesis was on topic "Remote Access to Physical and Virtual Machines" and was related to modules of what we later called

Started "Angular Seed"

Because of my contributions in the AngularJS community, I was looking forward for trying Angular. I even included it as part of the program of "Advanced JavaScript" at Sofia University. I was looking for a reliable starter project which will help me handle the entire tooling overhead.

Unfortunately, such starter project didn't exist back then so I created it and called it Angular Seed. To the project joined an amazing contributor Ludvoic Henin, who did stunning job on the core architecture. Months after that, I used Angular Seed for "Advanced JavaScript" and my book "Switching to Angular 2".


Gave my first international talk

I did a research in the area of implementation of immutable data structures and their practical applications in the development of user interface. Later based on my results I published a few posts. Inspired by the posts, I applied for a talk at ng-vegas and I got accepted!

It was such a honor for me to travel all the way from Sofia to Las Vegas in order to present my findings! I felt quite awkward after the talk, presenting it in front of hundreds of people with a different native language.

Wrote "Angular in Patterns"

AngularJS was the most well designed JavaScript framework back in 2014 (well, now that's Angular). In my class for object-oriented design and design patterns, I worked on an article which explains the individual design patterns and their practical applications in AngularJS.

Later, my document got translated to French, Japanese, Russian and Chinese.


Wrote "AngularJS Style Guide"

In late 2013, I made the observation how mature the best practices for development in the different technologies were. Unfortunately, in JavaScript we had nothing but coding style.

A few hours after that, I wrote the first draft of the AngularJS style guide. Later, it got translated in 13 different languages and got 75 external contributors! Now the project has 5k stars on GitHub.

A few months after that a few more style guides were released.

Graduated my BSc

In 2013, I graduated my BSc degree from the Department of Mathematics and Computer Science at Sofia University. I got highest grade from my class and got highest score for my MSc admission examination.


TA and part-time Lecturer

My professors invited me to join as a teaching assistant in the classes "Analysis and Design of Software Projects", "Programming with ASP.NET" and later as part-time lecturer and expert in the class "Advanced JavaScript".

It was a great experience to explain in deep details the tools I was working with on a daily basis. I found it fascinating to connect concepts from the theoretical computer science with the wild JavaScript ecosystem.


Founded SofiaJS

In Sofia that time, there were user groups for Java and .NET but when I was looking for a JavaScript community I wasn't able to find one. I wanted to meet like-minded people who I can chat with.

That's why in October, 2012, I organized the first SofiaJS meetup at initLab, the local hacker space in Sofia. There were maybe...40 people? That was a huge success for me. I was so happy I can chat about what I do and exchange ideas with others.

Until then, I organized tens of events either by myself or with the help of the other co-organizers, especially Mihail Mateev who has been an amazing help!


Award in web programming

In high school I was taking a part in different National competitions in software development. According to the rules, students have to develop a complete software project on whatever topic we want to and present it in front of a jury from Sofia University.

For one of these competitions, I developed a CMS system from scratch (yes, not even jQuery) with intensive Ajax usage (yes, Ajax was a big thing back then...we used to do hidden frame for browsers which didn't have XMLHttpRequest support). My CMS system was awarded and was used as official website for my high school.

Graduated with honors

Later this year, I was awarded with a plaque and announced as leader of the course because of my achievements in information technologies, astronomy and physics, martial arts, tennis, and mathematics.

During my speech...that was the first time I had to talk in front of a few hundreds of people.


National champion in Karate

In 2008, just before I got my black belt in karate, I became the National champion of Bulgaria in kumite (sparing).

There is no better feeling than hearing "We Are The Champions" while getting my gold medal. This championship gave me the opportunity to train with the National Karate team as preparation for European championships.

University admission from a programming competition

As laureate of a National Programming competition I got grade 5.5 out of 6 as admission score for BSc degree at Sofia University.

From other competitions I got excellent grade for admission in 4 more universities.


My first web application

In 2007 I first got introduced to Web development from my high school teacher Svilen Dimitrov. He provided a tramendence support helping me understand the basics of JavaScript, MySQL, PHP and Flash.

A few weeks after that, I developed my first website for the TV show "Perfect Strangers". Later, I developed a few more web applications for collecting the data from observations of meteor showers and others.

About the same time I developed a few more games with Visual Basic and C++.


My first program

Well, although I developed my first "Space Invaders" game a bit earlier using different tools (drawing the graphics myself on MS Paint), I wrote my first real program on Pascal.

It was one of these simple "Hello World!" programs, however, I was amazed that I was able to write instructions to control a computer.


Physics and astronomy

I was amazed by the space. I had my old Russian telescope reflector with brand name "Alkor". I used to spend almost every clear night observing the sky, writing down my observations in a notebook.

That's how I got introduced to our local Astronomy school, in Troyan, where I met one of the most dedicated teachers I thought can exist - Nadka Dankova. She was helping me with the preparation for the National astronomy competitions I was participating in.