Adopting Angular for Non-Front-End Developers: Kirk Graves with 1800 Contacts
Today, we have Kirk Graves on the show. Kirk is a Senior Software Engineer over at 1800 Contacts. He has over 20 years of experience leading software teams and has quite the story to share with us. We are going to be chatting about Kirk’s experience working with Angular 2.0 project. We will discuss some of the lessons learned and how you might learn from his experience.
Well, without further ado let’s welcome Kirk.
Carlos: Hello everybody, and welcome to another episode. Today, we have Kirk Graves on the show. Kirk is a Senior Software Engineer over at 1800 Contacts. He has over 20 years of experience leading software teams and has quite the story to share with us. We are going to be chatting about Kirk?s experience working with Angular 2.0 project. We will discuss some of the lessons learned and how you might learn from his experience. Also, if you enjoyed this podcast please make sure to subscribe and give us an honest review. It makes all the difference to hear your feedback. And also maybe you can go to some interesting people that we could have on the show. Also, if you have any questions over anything you want to communicate with me for you can email me at email@example.com. That is carlos@, G-I-S-T-I-A, .com. Well, without further ado let’s welcome Kirk. Kirk it’s a pleasure to have you in the show. How are you doing today?Kirk: Excellent! Thank you.
Carlos: So Kirk, for those who don’t know you give me a little bit information about yourself of how did you get into software, and maybe a little bit of your background.
Kirk: This is kind of a funny story so I’ll share it with you. I was actually a theater arts guy in college. I have some computer experience when I was younger but theater was my passion. However, about a year into college I came to the realization, ?Well, theater is a lot of fun there’s no money there.? So I went to my second love which was computers and kind of just started off writing reports for a company in the Salt Lake City, Utah area. And eventually that grew up into me developing in Visual Basic, and then eventually .NET when that came out. And I’ve been a C# guy for the last 15 years, 16 years.
Carlos: So given that you have, you know, a very senior career. You’ve been in the tech world for a couple of years now and you’ve got a lot of experience under your belt and I say that in a good way by the way. I want to make sure that I’m positioning questions to you around your point of view, right? Like there are times younger people that don’t have any idea of how things have evolved, and whether it’s good or bad. So I guess the first question for you is, based on your experience, do you think the evolution of software engineer has gone in the right way?
Kirk: Interesting question. My answer is, that’s the way it has gone. Therefore, it must be the right way.
Kirk: Is it necessary with the way we predicted 20, 30 years ago? I would say no, not at all. I remember in my first real IT job there was a group of about 10 developers. I was one. I worked in a client environment and the other guys they were all in an AS/400. And to them that was programming. And you weren’t a real programmer unless you’re on a mainframe or a small thing like an AS/400. It’s funny to watch how things have developed. We are really coming back to that world, kind of that really thin client talking to a server on the backend. Architecturally, it’s not that different from what those AS/400 guys were doing 20 odd years ago.
Carlos: So before we jump into your particular project with Angular 2.0 and kind of some other work that you’ve been doing. Can you give us a little bit of an intro of your role at 1800 Contacts, and maybe before that, what is 1800 Contacts? And if you could give us an overview of how it does the business that it does. I know that there’s a lot of automation maybe you can add a little bit of context to that.
Kirk: Sure, so 1800 Contacts is the largest internet retailer in the world. We are primarily web-internet based. We have some amazing tools in the mobile sphere. We do quite a bit of our business as kind of developing in the direction of fulfilling for other companies. By the 1800 Contacts brand itself has grown really out of this idea that we serve the customer better than anybody else can possibly serve the customer in the area of selling context. Very focused business as you can imagine. And that focus has given us some abilities that a lot of companies don’t have. When, you’re focused in on a product that is so specific. We can tailor our applications to be really really good at that one product. We can tailor our customer service around just selling that one product, and so 1800 Contacts has really done well just by becoming highly automated without taking the person out of the experience. It’s an interesting culture.
Carlos: So, how does your team support and impact the actual business? How do you guys help 1800 Contacts perform, you know, do the business that it does? Where does your team fit in?
Kirk: So my team supports our distribution center. Everything from receiving products, to shipping it back out the door, managing inventory. All the tools that are used to deal with product, that’s my team. But that’s just what we do. The way that we actually support our clients is really an area of what can we do to blow them away every day. How can we make our systems better? How can we support their needs in ways that they haven’t thought about yet. And we’ve got some guys on my team that are just phenomenal with that.
Carlos: So, I guess the core of our podcast today is discuss your experience with Angular 2.0. Particularly with one project that I know that you guys did in a very short amount of time. What was the overarching reason for that project? And I know you can’t go into detail, into many details but just give us a little bit of context as to how did that help the company overall.
Kirk: Sure, so uhm, yeah, you’re right. Unfortunately, I can’t go into a ton of details. There’s some politics internally related to the project. But the DC Team, the leadership team of the DC really wanted a particular application. The goal was to try and make it faster and more efficient for the employees there at the distribution center to be able to ship product out so that we could meet this amazing targets for ship dates. And some of our orders had grown in size dramatically so that process had gotten more and more difficult. We have a certain skill set and it’s kind of important to know. My team is more services in Windows App. So that’s really all we do, and we work primarily in the realm of C#, so Microsoft environment, .NET Framework, that’s us. What they want to do is something that would run on a tablet, and they we’re looking at Android and iOS. So they didn’t even think about coming to my team. They went instead to a third party vendor for the product. And they, you know, as these things go it takes for awhile to get the whole product moving, and they customize for what we need. We heard about it as a team about a month before the official deployment day was going to happen. And the pride kicks in. And we said, ?Well, this is our job, right? We support you guys. And we want to blow you away not some third party vendor.? So we saw what they were doing and we saw lots of flaws in the product. We really didn’t like it both from the UI perspective and the experience perspective, and then the technology as well. So as a team we sat down and talk through this and decided that we could produce exactly what our distribution center needed that would make the process as easy as possible for the employees that would be affected by it. And we could do it quick. And it may not be the greatest behind the scenes but the users would never do that. Right all they would know is great product, works really off for them. Unfortunately, none of us have any experience doing anything with mobile and the entire team combined has some experience with web but it is limited. So what we did was we sat down, decided what technologies we would need. We kind of architected out the solution. We designed it for a very specific platform that we knew that they already had. It was an iPad that we knew would be out there that they could use. And then we started working on the technology. Now, the backend side, no problem that’s us totally.We had no problem right in the service, the data services. But the frontend we started working at a variety of web interfaces rather than writing in a native app. And we decided that we really liked the idea of where Angular 2.0 is going so we decided to go with that. And over the next, about two weeks nearing up to our date we are really going to do the project. We spent all of our lunch breaks just going through, discussing, doing some tutorials and we bought the ng-book 2 which helped a ton. We were able to used that as kind of a guide for how to do the development. This was all in beta, right?
Kirk: This was November last year.
Carlos: And what made you pick Angular 2.0 versus some of the other options? I know there were so many options out there. What was stick out for you for you?
Carlos: What are your thoughts on TypeScript? Actually that’s a question I had in my mind I wanted to ask you.
Carlos: You know, kind of following the same line, do you think that, it’s good practice though to, and this is now probably something that is happening to you by probably in some other companies where engineers or more engineers are being forced to learn a new language in a new framework every, I mean not a couple of times a year but maybe every two years, right? Like, oh, Angular is now, like a lot of people don’t like Angular, what Angular 2.0 is doing so they’re mad at Angular so now they’re doing React which we love by the way. I mean we do a lot of work in React but I feel that there’s, you know, I think there’s a tool for every occasion. But what do you think about the, is it good company practice to have people evolve so quickly, uhm so much, just to use the latest and kind of shiniest toy out there?
Kirk: My team, so I’m going to talk about them a little bit. I’ve got a guy in my team who has been working on the same tools for 7 or 8 years. He is amazing at these tools, and by tools I mean the stuff that we develop. Not necessarily the underlying tools that he uses to do development. But he gets a little bored. He’s really good at any one piece that he is asked to work on but after a while he just really want something different. I got another guy who’s been with us for about a year and a half, two years now, that is constantly finding ways of improving the tools we’ve got because he comes from a different background, language-wise. And it’s really fun to see those changes being introduced. I think if you’re a developer you should expect and even desire to kind of change it up a little bit to keep your job fresh. It’s not just an issue of keeping yourself marketable, although that’s an issue, but it can get pretty boring writing the exact same code year after year.
Carlos: Yeah, I can imagine. Especially once, when you have, you don’t have a say to what’s being used. So, and I don’t want you to get me wrong though. I am 100% for evolution of the languages. That’s kind of the, that’s kind of it, right? That’s why we’ve made so much progress. I always think though that we want to make sure that we’re making progress, for progress, not for just saying that we’re making progress. Does that make sense? Like that there has to be real progress being made. Not just some vanity type of metric.
Carlos: So, as far as your Angular 2.0 work. Given that it’s a platform, the framework that you guys picked. Where do you see Angular 2.0 going as far as 1800 Contacts is concerned?
Kirk: Uhm, actually it’s interesting since our project. We just did one small project. I’ve talked to a few of the other teams and there are three other teams now at the company who have implemented at least one project each that are Angular 2.0. Some of those are brand new projects. Some of that is just upgrades and enhancements to existing.
Carlos: Wow, that’s pretty interesting. Even at RC level?
Kirk: Even at RC level. Shocking huh?
Carlos: That’s impressive! Oh, very cool, very cool. That’s a, it’s good to hear that, that you guys are taking this sort of jump in the right direction. It’s a big leap of faith.
Kirk: Yeah, yeah. And I’ll admit part of it is we love to try new things to keep ourselves having fun. And so not every time was it necessary to use Angular 2.0 but it was something that the developers thought, ?Hey, I’ve got the freedom here and it would be a lot of fun to kind of figure this one out. Let’s try it. See what happens.?
Carlos: If you have to do it all over again, what would you guys change in terms of what would you do to make it easier? Or maybe on a technical perspective what things did you do wrong technically that you could have go back now and say, ?If I could start from scratch I would have done this differently.?
Kirk: Oh, the single biggest frustration we had was we tried to implement everything back then in the development environment we weren’t familiar with, which at that time and still is today Visual Studio. And it was okay. But I think I would have rather use some open source tools that are more conducive to Angular 2.0, things that Angular 2.0 is really, that are more supportive of the Angular 2.0 environment right now. Visual Studio is going to get there, I’m pretty sure of that, but it was a little bit of a struggle to use that tool.
Kirk: Well, I would probably start off with get to know the tools better before I start using them. Most of the big hiccups that I’ve had in my career had been from diving in too early to a language or a development tool that I just didn’t know and the mistakes that came out of that. Be more aware of the industry best practices. Kind of related to that, took me a while to get on board with unit testing, and boy that would have save me a lot of pain.
Carlos: What would be a book that you would recommend on? I know that you bought our book, ng-book. But what other resources did you, were important for you throughout this process?
Kirk: That’s about it, that’s all we needed.
Carlos: Alright. And Kirk, how can people find you? Let’s say somebody is curious about applying 1800 Contacts. How can we get in touch if they have any questions and so forth?
Kirk: The best thing to do is go to www.1800Contacts.com/careers. That will get you to any open positions. I’ll even give you my email address for people that are interested in kind of a direct contact to find out what’s going on with me, and my team, and 1800 Contacts, and that is kgraves -at- 1800Contacts.com.
Carlos: My friend, I want to thank you so much for being part of the show, and I look forward to seeing you soon.
Kirk: Thanks a ton. It’s been fun.
Carlos: Thank you!