Panel: Charles Max Wood
Guest: Rob Eisenberg
This week on My Angular Story, Charles speaks with Rob Eisenberg who is a principal software engineer at InVision, and is the creator of Caliburn.Micro, Durandal, and Aurelia. Today, they talk about Rob’s past and current projects among other things.
In particular, we dive pretty deep on:
2:36 – Rob: That was over the period of 4 years all of those podcasts. I am getting older.
2:50 – Chuck: Anything that you’ve done that you want to talk about?
3:04 – Rob: I am known for opensource work over the years. Maybe we can talk about my progression through that over the years.
3:25 – Chuck: How did you get into this field?
3:29 – Rob: When I was 8 years old my dad wanted to buy a computer. We went to Sears and we bought our first computer. You’d buy the disk drive and the keyboard looking unit. You could by a monitor, we didn’t, but we used a black and white TV for our monitor. Later we bought the colored monitor and printer. That’s where my fascination started. We set up the computer in my bedroom. We played games. I got intrigued that you could write code to make different games.
It was just magical for me. As being an adult engineer I am trying to go back to that moment to recapture that magical moment for me. It was a great creative outlet. That’s how I first started. I started learning about Q basic and other flavors of Basic. Then I heard about C! I remember you could do anything with C. I went to the library and there wasn’t the Internet, yet. There were 3 books about C and read it and re-read it. I didn’t have any connections nor a compiler. When I first learned C I didn’t have a compiler. I learned how to learn the codes on notebook paper, but as a kid this is what I first started doing. I actually saved some of this stuff and I have it lying around somewhere. I was big into adventure games. That’s when I moved on C++ and printed out my source code! It’s so crazy to talk about it but at the time that’s what I did as a kid. In JHS there was one other kid that geeked-out about it with me. It was a ton of fun.
Then it was an intense hobby of mine. Then at the end of HS I had 2 loves: computers and percussion. I was composing for music, too. I had to decide between music or coding. I decided to go with music. It was the best decision I ever made because I studied music composition. When you are composing for dozens of instruments to play one unified thing. Every pitch, every rhythm, and it all works together. Why this note and why that rhythm? There is an artistic side to this and academia, too. The end result is that music is enjoyed by humans; same for software.
I did 2 degrees in music and then started my Master’s in Music. I then realized I love computers, too, how can I put these two together? I read some things on audio programming, and it stepped me back into programming. At this time, I was working in music education and trying to compose music for gamming. Someone said look at this program called C#! I don’t know cause…how can you get any better than C++?!
In 2003 – I saw a book: teach yourself C# in 24 hours. I read it and I was enthralled with how neat this was! I was building some Windows applications through C#. I thought it was crazy that there was so much change from when I was in college.
17:00 – Chuck: You start making this transition to web? What roped you in?
17:25 – Rob: I realized the power of this, not completely roped in just, yet. Microsoft was working (around this time) with…
21:45 – Charles: Yeah, I remember when you worked with the router and stuff like that. You were on the core team.
21:53 – Rob: The work I did on that was inspired by screen activation patterns.
23:41 – Rob (continued): I work with InVision now.
24:14 – Charles: I remember you were on the Angular team and then you transitioned – what was that like?
24:33 – Rob comments.
25:28 – Rob (continued): I have been doing opensource for about 13 years. I almost burned myself a few times and almost went bankrupt a few times. The question is how to be involved, but run the race without getting burned-out. It’s a marathon not a sprint.
These libraries are huge assets. Thank God I didn’t go bankrupt but became very close.
The more popular something if there are more varieties and people not everyone is so pleasant. It’s okay to disagree. Now what are the different opinions and what works well for your team and project? It’s important to stay to your core and vision. Why would you pick THIS over THAT?
It’s a fun and exciting time if you are
28:41 – Charles: What are you
28:47 – Rob: InVision and InVision studio. It’s a tool for designing screens. I work on that during the day and during the night I work on Aurelia.
30:43 – Chuck: I am pretty sure that we have had people from InVision on a show before.
31:03 – Rob comments.
Rob: How we all work together.
31:20 – What is coming in with Aurelia next?
31:24 – Rob: We are trying to work with as much backwards compatibility as we can. So you don’t see a lot of the framework code in your app code. It’s less intrusive. We are trying next, can we keep the same language, the same levels, and such but change the implementation under the hood. You don’t learn anything new. You don’t have new things to learn. But how it’s implemented it’s smaller, faster, and more efficient. We have made the framework more pluggable to the compiler-level. It’s fully supported and super accessible.
Frameworks will come and go – this is my belief is that you invest in the standards of the web. We are taking that up a notch. Unobtrusiveness is the next thing we want to do.
We’ve always had great performance and now taking it to the next level. We are doing a lot around documentation. To help people understand what the architectural decisions are and why? We are taking it to the next level from our core. It’s coming along swimmingly so I am really excited. We’ve already got 90% test coverage and over 40,000 tests.
38:19 – Chuck: Where can people find you?
38:22 – Twitter, and everywhere else. Blog!
39:17 – Chuck: Picks?
39:23 – Rob dives in!
- Aurelia Blog by Rob
- Rob Eisenberg’s Twitter
- Rob’s Website
- Rob’s LinkedIn
- Rob’s GitHub
- Rob’s Episode 9
- Rob’s Episode 80
- Rob’s Episode 203